工具框架与执行管线
内置 45+ 工具 与 MCP 映射工具 共用 Tool 接口:描述 schema、校验、权限、hooks、执行、结果格式化。
1. Tool 抽象
| 环节 | 说明 |
|---|---|
name / description | 给模型选型 |
inputSchema | 参数校验 |
validateInput | 业务规则 |
call | 实际副作用(读写文件、bash 等) |
render | 终端展示(可选) |
buildTool() 工厂提供 fail-closed 默认(缺字段则拒绝)。
2. ToolUseContext
执行期上下文:工作目录、会话 id、权限模式、abort signal、父 Task 等,工具只读 context 不碰全局单例。
3. 注册表
- 启动时注册核心工具,插件/MCP 动态追加。
- 按 feature、权限模式 过滤 对模型可见的工具列表。
4. 权限(衔接 11)
规则匹配 → hooks 否决/放行 → Auto 分类器 → UI 确认。任一环节 deny 则工具不执行。
5. Hooks
| 时机 | 用途 |
|---|---|
| PreToolUse | 审计、改写参数、阻断 |
| PostToolUse | 日志、自动格式化 |
插件与项目 .claude 可注册 hook。
6. 延迟加载
重量级工具(LSP、大依赖)首次使用时加载,缩短冷启动。
7. 总结
改工具行为 = 改 Tool 定义 + 权限规则 + hooks;MCP 工具在注册后与普通工具无差别进入管线。