Files
blackbird/aibox/tools/misc_tools.py
T
qing 791fac0efd refactor(aibox): 抽离B批12个工具类至tools包,附58个单测
B批(tools/):迁移依赖子系统的12个工具类(CommandLineTool/SearchSkills/ReloadSkills/InstallSkill/CreateSkill/MemoryTool/MemoTool/UpdateIdentity/UpdateSoul/SaveMemoryAndEndConversation/SetProxy/GetProxy/AskUser),aibox.py减少~1739行

修复MemoryDatabase.get_recent_memories(limit=None)的SQL错误(既有bug,None传给LIMIT ?导致datatype mismatch)

171个单测全绿,循环依赖障碍消除:B批工具直接依赖subsystems而非反向依赖aibox.py
2026-08-13 16:09:31 +08:00

49 lines
1.5 KiB
Python

#!/usr/bin/env python3
"""
tools.misc_tools - 杂项工具
抽离自 aibox.py,包含不依赖任何子系统的独立工具:
- AskUserTool : 主动向用户提问
依赖:tools.base.Tool
不反向依赖 aibox 任何符号。
"""
from typing import Dict
from .base import Tool
class AskUserTool(Tool):
"""智能体遇到了麻烦,主动向用户问一个问题"""
def get_name(self) -> str:
return "ask_user"
def get_description(self) -> str:
return (
"主动向用户提问的工具。你是用户的专属助手,应当主动关心用户、澄清需求、确认意图,"
"而不是被动等待指令。适用场景:指令模糊需要澄清、任务完成后追问后续需求、"
"关心用户近况、主动发现用户可能需要的帮助。请积极使用此工具与用户互动。"
)
def get_parameters(self) -> Dict:
''' TODO: 调用子代理生成提示词 '''
return {
"type": "object",
"properties": {
"question": {
"type": "string",
"description": (
"你现在遇到一个问题,你想询问用户,现在提供你的问题。"
)
}
},
"required": []
}
def execute(self, question: str, **kwargs) -> str:
return (
"你遇到了想搞清楚的事情: " + question + "\n你现在可以询问用户。"
)