s02
工具系统
核心引擎层40+ 工具的统一注册与执行框架
每个工具自包含 Schema + 权限模型 + UI 组件Feature Flag 条件编译实现死代码消除,未启用的工具在 bundle 中完全不存在
40+ 工具的统一注册与执行框架
每个工具自包含 Schema + 权限模型 + UI 组件Feature Flag 条件编译实现死代码消除,未启用的工具在 bundle 中完全不存在
Claude Code 需要让 LLM 执行 40+ 种操作(文件读写、Shell 命令、代码搜索、网页抓取等),每种工具有不同的输入 Schema、权限模型和 UI 展示。同时还要支持 MCP 协议动态注册外部工具。工具系统必须统一、可扩展,同时保证安全性。
工具注册表 — 42 个内置工具按功能分类
// ── 文件操作(6 个)──
// FileReadTool 读取文件内容(支持图片、PDF、Jupyter)
// FileWriteTool 创建/覆写文件
// FileEditTool 精确字符串替换编辑
// GlobTool 文件模式匹配搜索
// GrepTool 基于 ripgrep 的内容搜索
// NotebookEditTool Jupyter Notebook 单元格编辑
// ── Shell 执行(3 个)──
// BashTool Bash 命令执行(最复杂工具,14 个子文件)
// PowerShellTool Windows PowerShell 命令
// REPLTool 交互式 REPL(Node/Python 等)
// ── 网络(2 个)──
// WebFetchTool URL 内容抓取 + AI 摘要
// WebSearchTool 网页搜索(返回结构化结果)
// ── Agent 编排(4 个)──
// AgentTool 创建子 Agent(独立上下文 + 工具子集)
// SendMessageTool 向已有 Agent 发送消息
// TeamCreateTool 创建并行 Agent 团队
// TeamDeleteTool 销毁 Agent 团队
// ── 任务管理(6 个)──
// TaskCreateTool 创建任务
// TaskGetTool 获取任务详情
// TaskListTool 列出所有任务
// TaskUpdateTool 更新任务状态
// TaskOutputTool 获取后台任务输出
// TaskStopTool 停止后台任务
// TodoWriteTool 写入待办事项列表
// ── MCP 集成(4 个)──
// MCPTool MCP 工具动态包装器
// McpAuthTool MCP OAuth 认证流程
// ListMcpResourcesTool 列出 MCP 资源
// ReadMcpResourceTool 读取 MCP 资源内容
// ── 规划 & 导航(4 个)──
// EnterPlanModeTool 进入计划模式
// ExitPlanModeTool 退出计划模式(提交计划)
// EnterWorktreeTool 创建 Git Worktree 隔离环境
// ExitWorktreeTool 退出 Worktree
// ── 交互 & 配置(5 个)──
// AskUserQuestionTool 向用户提问(结构化选项)
// SkillTool 调用斜杠命令 / Skill
// ConfigTool 查看和修改配置
// BriefTool 生成简报摘要
// ScheduleCronTool 创建定时任务
// ── 高级(4 个)──
// ToolSearchTool 运行时搜索可用工具
// LSPTool 语言服务器协议集成
// SleepTool 等待指定时间
// RemoteTriggerTool 远程触发操作Tool 类型定义 — 每个工具的统一接口契约
export type ToolInputJSONSchema = {
[x: string]: unknown;
type: 'object';
properties?: { [x: string]: unknown };
};
// Tool 类型包含:
// - name: 工具名称(LLM 调用时使用)
// - inputSchema: Zod schema 定义输入参数
// - execute: 执行函数
// - prompt: 系统提示词中的工具描述
// - UI: React 组件用于渲染执行状态
// - permissionMode: 权限检查模式