Skip to content

3.1.0

Choose a tag to compare

@Ruqiehou Ruqiehou released this 18 May 04:11
· 92 commits to main since this release

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 自动发现兼容新旧两种目录格式