工具系统

Claude Code 拥有 54 个内置工具,每个工具都有独立的目录、输入 Schema、执行逻辑和可选的 React 渲染组件。

工具系统概览

54
内置工具
8
工具分类
25+
Feature 门控

Tool 接口定义

每个工具都实现 Tool 接口(src/Tool.ts):

interface Tool {
  name: string                        // 唯一标识 (如 "Bash", "Read")
  searchHint: string                  // 工具搜索描述
  description: string                 // 发送给模型的工具描述
  inputSchema: JSONSchema              // Zod 验证的 JSON Schema

  call(input, context): ToolResult   // 执行逻辑
  userFacingName(): string           // UI 显示名称
  getToolUseSummary(): string        // 活动描述

  isReadOnly(): boolean              // 只读操作?
  isConcurrencySafe(): boolean       // 线程安全?
  isEnabled(): boolean              // 运行时启用/禁用
  shouldDefer: boolean               // 延迟加载 (ToolSearch)

  maxResultSizeChars: number         // 结果截断阈值 (~100,000)

  // 可选:React 渲染组件
  renderResult?(result): JSX.Element
}
    

工具注册 & 条件加载

工具在 src/tools.ts 中注册,部分工具根据 feature flag 或环境条件有选择地加载:

// src/tools.ts — 工具组装
function assembleToolPool(): Tool[] {
  const tools = [
    // 始终可用
    AgentTool, BashTool, FileReadTool, FileEditTool, FileWriteTool,
    WebFetchTool, WebSearchTool, SkillTool, AskUserQuestionTool, ...

    // 条件加载
    ...(!hasEmbeddedSearchTools() ? [GlobTool, GrepTool] : []),
    ...(feature('AGENT_TRIGGERS') ? [CronCreateTool, ...] : []),
    ...(USER_TYPE === 'ant' ? [ConfigTool, REPLTool] : []),
    ...(isTodoV2Enabled() ? [TaskCreateTool, ...] : [TodoWriteTool]),
  ];
  return tools;
}
    

完整工具目录

工具名称 分类 描述 关键参数
FileReadTool 文件 读取文件内容,支持 PDF、图片、Jupyter Notebook file_path, limit, offset, pages
FileEditTool 文件 字符串替换编辑文件,保留缩进和引号风格 file_path, old_string, new_string, replace_all
FileWriteTool 文件 创建或完整覆盖文件 file_path, content
NotebookEditTool 文件 编辑 Jupyter Notebook 单元格 notebook_path, cell_id, new_source, edit_mode
GlobTool 搜索 文件名模式匹配,支持 glob 通配符 pattern, path
GrepTool 搜索 基于 ripgrep 的文件内容正则搜索 pattern, path, glob, output_mode, -A/-B/-C
LSPTool 搜索 Language Server Protocol 操作 (定义跳转、引用查找等) operation, filePath, line, character
ToolSearchTool 搜索 搜索延迟加载的工具 query, max_results
BashTool Shell 执行 Bash 命令,支持后台运行、超时控制 command, timeout_ms, continue_on_error
PowerShellTool Shell Windows PowerShell 命令执行 command, timeout_ms
WebFetchTool Web 抓取 URL 内容并用 AI 处理,HTML 转 Markdown url, prompt
WebSearchTool Web 执行网络搜索,返回结构化结果 query, allowed_domains, blocked_domains
AgentTool Agent 生成专用子 Agent 处理复杂任务 prompt, description, subagent_type, model, isolation
SkillTool Agent 执行技能/命令 (如 /commit, /review-pr) skill, args
SendMessageTool Agent 向队友或广播发送消息 to, message, summary
TeamCreateTool Agent 创建多 Agent 协作团队 team_name, description, agent_type
EnterPlanModeTool Agent 进入计划模式,规划复杂任务 (无参数)
ExitPlanModeTool Agent 退出计划模式并执行 allowed_prompts, plan_overrides
TaskCreateTool 任务 创建任务 subject, description, activeForm, metadata
TaskListTool 任务 列出所有任务及状态 (无参数)
TaskUpdateTool 任务 更新任务状态和依赖关系 taskId, status, addBlocks, addBlockedBy
TaskOutputTool 任务 获取任务输出(支持阻塞等待) task_id, block, timeout
TaskStopTool 任务 终止后台运行的任务 task_id
ListMcpResourcesTool MCP 列出 MCP Server 可用资源 server
ReadMcpResourceTool MCP 读取 MCP 资源内容 server, uri
MCPTool MCP MCP 工具代理(透传执行 MCP 工具) (透传 MCP 工具的 schema)
AskUserQuestionTool 交互 向用户提问(支持多选、预览) questions, answers, annotations
BriefTool 交互 向用户发送消息(支持附件) message, attachments, status
EnterWorktreeTool 隔离 创建 Git Worktree 隔离环境 name
ExitWorktreeTool 隔离 退出 Worktree 会话 action (keep/remove), discard_changes
CronCreateTool 调度 创建定时任务(cron 表达式) cron, prompt, recurring, durable
RemoteTriggerTool 调度 管理远程 Agent 触发器 action, trigger_id, body
SleepTool Agent 暂停执行指定时间 duration_ms
MonitorTool Agent 系统监控和进程检查 (feature-gated)
WebBrowserTool Web 浏览器自动化导航 (feature-gated)
ConfigTool 配置 读取/设置 Claude Code 配置 setting, value
REPLTool Shell 交互式 REPL 环境 (ant-only)
TodoWriteTool 任务 Legacy 任务清单管理 todos (array)
TeamDeleteTool Agent 删除多 Agent 协作团队 team_name
DiscoverSkillsTool Agent 发现可用技能/命令 (无参数)
ReviewArtifactTool Agent 审查生成的产物 (artifact info)
VerifyPlanExecutionTool Agent 验证计划执行完成度 (env-gated)
WorkflowTool Agent 执行工作流脚本 (feature-gated)
SnipTool 交互 剪切/管理对话历史 (feature-gated)
TerminalCaptureTool Shell 捕获终端输出 (feature-gated)
PushNotificationTool 通知 发送推送通知 (KAIROS feature-gated)
TestingPermissionTool 测试 测试环境权限工具 (NODE_ENV=test only)

条件加载矩阵

工具的加载受多种条件控制:

条件类型 工具 说明
始终可用 BashTool, FileReadTool, FileEditTool, FileWriteTool, AgentTool, WebFetchTool, WebSearchTool, SkillTool 核心工具,无条件加载
Feature Flag CronTool, SleepTool, MonitorTool, WebBrowserTool, TerminalCaptureTool 由 feature() 控制,当前全部禁用
用户类型 ConfigTool, REPLTool, TungstenTool, SuggestBackgroundPRTool 仅 Anthropic 内部员工 (USER_TYPE === 'ant')
运行时检查 TaskCreateTool, GlobTool, GrepTool, LSPTool, WorktreeTool 取决于运行时配置和环境变量
平台限制 PowerShellTool 仅 Windows 平台