Repository navigation
3.1.0
Joha v3.1.0 — 工具模块子目录化重构
🎯 概述
3.1.0 对 joha/tools/ 下散落的 flat 文件按工具拆分为独立子目录,每个工具一个文件夹(core.py + tool.py),结构更清晰、易维护。同步更新 ToolRegistry 自动发现逻辑以支持新目录格式。
🔥 核心变更
1. tools 子目录化
旧:
joha/tools/
├── search.py (133行)
├── webpage.py (95行)
├── link_preview.py (145行)
├── knowledge_search.py (177行)
└── knowledge/base.py (813行)
新:
joha/tools/
├── search/ → core.py + tool.py
├── webpage/ → core.py + tool.py
├── link_preview/ → core.py + tool.py
└── knowledge/ → core.py + tool.py (base→core, 合并KnowledgeBaseSearchTool)
每个子目录:
core.py— 实现类(SearchTool / WebpageTool / LinkPreviewTool / KnowledgeBase + KnowledgeBaseSearchTool)tool.py—TOOL_META+execute()函数式入口
2. ToolRegistry 适配
auto_discover() 改为优先扫描 tools/*/tool.py 子目录格式,保留 *_tool.py 旧格式兼容。
3. 文件变更统计
| 类型 | 数量 |
|---|---|
| 新增文件 | 12 个 |
| 删除旧文件 | 5 个 |
| 修改文件 | 4 个 |
✅ 兼容性
- 外部导入
from joha.tools import xxx不受影响(__init__.py统一导出) - 全局实例
search_tool/webpage_tool/link_preview_tool/kb_search_tool不变 - 运行时命令
/search//webpage//preview//knowledge行为不变 ToolRegistry自动发现兼容新旧两种目录格式