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
This commit is contained in:
qing committed 2026-08-13 16:09:31 +08:00
1 parent b9f8abdfeb
commit 791fac0efd
10 files changed
+2340 -1745

No files matched your search

+40 -4
View File
@@ -3,10 +3,16 @@ tools - aibox 工具系统基础模块(包)
抽离自 aibox.py 的工具基类与注册器,供 aibox.py 及后续迁移的
工具子类导入。当前包含:
- base.py : Tool 抽象基类
- registry.py : ToolRegistry 工具注册器
- basic_tools.py : 基础工具集(A 批:文件/网页/时间/计算器,无外部子系统依赖)
形成单向依赖:common <- tools <- aibox。
- base.py : Tool 抽象基类
- registry.py : ToolRegistry 工具注册器
- basic_tools.py : 基础工具集(A 批:文件/网页/时间/计算器,无外部子系统依赖)
- command_tool.py : CommandLineTool 命令行执行工具(B 批)
- skill_tools.py : 技能搜索/重载/安装/创建 4 个工具(B 批)
- db_tools.py : MemoryTool/MemoTool 数据库工具(B 批)
- prompt_tools.py : 身份/灵魂更新 + 结束对话 3 个工具(B 批)
- proxy_tools.py : SetProxy/GetProxy 代理工具(B 批)
- misc_tools.py : AskUserTool 询问工具(B 批)
形成单向依赖:common <- subsystems <- tools <- aibox。
采用"重导出"策略:外部统一用 `from tools import Tool, ToolRegistry`,
调用点无需关心具体子模块所在文件。
@@ -23,6 +29,22 @@ from .basic_tools import (
GetCurrentTimeTool,
CalculatorTool,
)
# B 批工具
from .command_tool import CommandLineTool
from .skill_tools import (
SearchSkillsTool,
ReloadSkillsTool,
InstallSkillTool,
CreateSkillTool,
)
from .db_tools import MemoryTool, MemoTool
from .prompt_tools import (
UpdateIdentityTool,
UpdateSoulTool,
SaveMemoryAndEndConversationTool,
)
from .proxy_tools import SetProxyTool, GetProxyTool
from .misc_tools import AskUserTool
__all__ = [
"Tool",
@@ -35,4 +57,18 @@ __all__ = [
"SimpleWebCrawlerTool",
"GetCurrentTimeTool",
"CalculatorTool",
# B 批工具
"CommandLineTool",
"SearchSkillsTool",
"ReloadSkillsTool",
"InstallSkillTool",
"CreateSkillTool",
"MemoryTool",
"MemoTool",
"UpdateIdentityTool",
"UpdateSoulTool",
"SaveMemoryAndEndConversationTool",
"SetProxyTool",
"GetProxyTool",
"AskUserTool",
]