工具系统
CountBot 的工具子系统,为 Agent 提供文件操作、Shell 命令、Web 抓取、记忆读写、截图、文件搜索等能力。
目录
设计理念
- 统一接口 — 所有工具继承
Tool基类,实现name、description、parameters、execute - JSON Schema 参数 — 参数定义使用 JSON Schema,与 OpenAI Function Calling 兼容
- 自动验证 — 执行前自动验证参数类型和 约束
- 审计追踪 — 每次工具调用记录到文件审计日志
- 安全隔离 — 文件操作限制在工作空间内,Shell 命令有白名单/黑名单
说明:当前工具集合是动态注册的,是否出现 spawn、workflow_run、send_media、send_message 等工具,取决于当前会话上下文、渠道状态和共享组件是否已初始化。
架构概览
┌─────────────────────────────────────────────────────────┐
│ ToolRegistry │
│ │
│ register() → _tools: dict[name, Tool] │
│ get_definitions() → [{"type": "function", ...}] │