Claude Code 工具清单

在这里插入图片描述

你好,我是司沐。

从CC源码泄露到现在,已经差不多有两个月的时间了。Github上从原始代码到重写项目,再到出教程,已经积累了许多很不错的仓库。
由于我自己目前的主要工作就是Agent Harness,所以过去的两个月里也将CC的代码翻来覆去反复读。
在这个过程中,我发现目前许多对CC代码与设计的解析,看起来好像并非出自一个Agent工程师之手,而更像是一个转行到Agent,但同时保留了一些老行业思维的人,与并不是很懂Agent的AI一起协作出来的。这样当然也有许多可圈可点的地方,但总归少了点意思,并不能聚焦到CC真正的核心设计上。

所以,我计划在CC源码泄露已经过了两个月之后的当下,重新整理并发出一份我自己对CC中Harness工程设计的理解。
这个系列大概会出10篇左右,涵盖工具设计,上下文压缩策略,提示词编排策略,记忆策略,数据实体分层结构等等内容。
希望对读到文章的你有帮助。

本文列出系统中所有内置工具,按功能分类,并标注各工具在不同 Agent 上下文中的可用情况。

可用性说明

  • 主线程:主 Agent 完整工具集
  • 子 Agent:普通同步子 Agent(Task 工具启动的)
  • 异步 Agent:后台异步运行的子 Agent
  • 协调者:协调者模式(仅管理任务,不做实际操作)
  • 可用, 不可用,条件 需满足特定条件

文件操作

工具 作用 主线程 子 Agent 异步 Agent 协调者
Read 读取文件内容,支持图像等多种格式
Write 创建或覆盖写入文件
Edit 对文件做补丁式局部编辑
NotebookEdit 编辑 Jupyter Notebook 的单元格
EnterWorktree 切换到指定的 git worktree 目录 条件①
ExitWorktree 退出当前 worktree,回到主工作区 条件①

① 需要 worktree 模式功能开关启用。


搜索

工具 作用 主线程 子 Agent 异步 Agent 协调者
Glob 按文件名模式列出文件 条件②
Grep 在文件内容中搜索文本 条件②
ToolSearch 按名称查询 MCP 工具的完整 schema(延迟加载) 条件③

② Ant 内部构建使用嵌入式搜索时这两个工具不挂载。
③ 工具搜索功能开关启用时可用(auto 模式下自动判断是否需要)。


代码执行

工具 作用 主线程 子 Agent 异步 Agent 协调者
Bash 执行 Bash/Shell 命令
PowerShell 执行 PowerShell 命令(Windows) 条件④
REPL 批量虚拟机式 REPL 包装,挂载后会隐藏 Bash 等原始工具 条件⑤

④ 仅在 Windows 且环境变量明确启用时可用。
⑤ 仅 Ant 内部构建。挂载后 BashReadWriteEdit 等工具从直接工具列表隐藏,统一通过 REPL 包装层访问。


网络

工具 作用 主线程 子 Agent 异步 Agent 协调者
WebSearch 用搜索引擎查询网页信息
WebFetch 拉取指定 URL 的页面内容
WebBrowser 打开内嵌浏览器面板(可交互) 条件⑥

⑥ 需要 WEB_BROWSER_TOOL feature flag 开启。


Agent 与任务编排

工具 作用 主线程 子 Agent 异步 Agent 协调者
Agent 派生子 Agent,把多步任务委托出去 条件⑦
TaskOutput 读取某个后台任务的输出,可阻塞等待
TaskStop 停止指定的后台任务
SendMessage 向特定 Agent 或队友发消息(P2P) 条件⑧ 条件⑧
Skill 加载并执行一段 Skill 指令文件
Workflow 执行预定义的 Workflow 脚本 条件⑨
Sleep 可中断的休眠(用于等待外部事件) 条件⑩

⑦ 默认禁止(防止无限嵌套);仅 Ant 内部构建允许子 Agent 再创建子 Agent。
⑧ 仅在 in-process 队友模式(Agent swarm)的异步路径下额外放行。
⑨ 需要 WORKFLOW_SCRIPTS feature flag。
⑩ 需要 PROACTIVEKAIROS 功能开启。


待办任务管理

工具 作用 主线程 子 Agent 异步 Agent 协调者
TodoWrite 写入/更新内部 todo 列表(轻量版)
TaskCreate 创建结构化任务条目(V2 todo) 条件⑪ 条件⑧
TaskGet 读取指定任务详情 条件⑪ 条件⑧
TaskList 列出所有任务 条件⑪ 条件⑧
TaskUpdate 更新任务状态或内容 条件⑪ 条件⑧

⑪ 需要 Todo V2 功能开关启用。


定时与触发

工具 作用 主线程 子 Agent 异步 Agent 协调者
CronCreate 创建定时触发任务 条件⑫ 条件⑧
CronDelete 删除定时任务 条件⑫ 条件⑧
CronList 列出所有定时任务 条件⑫ 条件⑧
RemoteTrigger 向远程端点发送触发事件 条件⑬

⑫ 需要 AGENT_TRIGGERS feature flag。
⑬ 需要 AGENT_TRIGGERS_REMOTE feature flag。


Agent Swarm(多 Agent 协作)

工具 作用 主线程 子 Agent 异步 Agent 协调者
TeamCreate 创建一个 Agent 团队(swarm) 条件⑭
TeamDelete 解散 Agent 团队 条件⑭

⑭ 需要 AGENT_SWARMS feature flag。


MCP 动态工具

MCP(Model Context Protocol)服务器连接后,注入的工具名格式为 mcp__服务器名__工具名。这类工具在所有子 Agent(包括异步)里默认可用,不受内置工具禁用列表的约束。

另有两个辅助工具在 MCP 服务器声明了 resources 能力时自动注入:

工具 作用
ListMcpResourcesTool 列出 MCP 服务器提供的 resource 列表
ReadMcpResourceTool 读取指定 MCP resource 的内容

UI 与交互流程

工具 作用 主线程 子 Agent 异步 Agent 协调者
AskUserQuestion 向用户展示选择题或询问
EnterPlanMode 进入计划模式(展示计划供用户审批)
ExitPlanMode 提交并退出计划模式 条件⑮
Config 交互式修改 settings 配置 条件⑯
SendUserMessage 向用户发送一条简短消息(Brief 模式)

⑮ 仅当子 Agent 本身处于 plan 权限模式时允许使用。
⑯ 仅 Ant 内部构建。


内部与系统工具

这些工具不由模型主动调用,或仅在特定内部场景使用:

工具 作用 说明
StructuredOutput 按 JSON Schema 输出结构化结果 从常规工具池剔除,在需要结构化输出的路径(Hook、QueryEngine 等)动态注入
LSP 语言服务器协议:跳转定义、引用查找等 需要 ENABLE_LSP_TOOL 环境变量,子 Agent 中不可用
Snip 将旧历史内容标记为可剪切 需要 HISTORY_SNIP feature flag,配合上下文压缩使用
CtxInspect 检查当前上下文折叠状态 需要 CONTEXT_COLLAPSE feature flag,内部调试用
ListPeers 枚举同一机器上通过 UDS 连接的 Agent 需要 UDS_INBOX feature flag
TestingPermission 始终触发权限提示(用于测试权限流程) NODE_ENV === 'test' 时挂载

简单模式(CLAUDE_CODE_SIMPLE)

设置 CLAUDE_CODE_SIMPLE=1 时,工具集大幅缩减:

  • 普通模式:仅保留 BashReadEdit
  • 协调者模式下额外保留:AgentTaskStopSendMessage
  • REPL 模式下用 REPL 替代 Bash

子 Agent 禁用总结

以下工具在默认子 Agent 中不可用(无论同步还是异步),因为它们需要面向用户的界面或主会话特权:

TaskOutputExitPlanMode(计划模式例外)、EnterPlanModeAskUserQuestionTaskStopAgent(Ant 构建除外)

异步子 Agent 额外受限——只有以下内置工具可用:
ReadWriteEditNotebookEditBashPowerShellGlobGrepWebSearchWebFetchTodoWriteSkillToolSearchStructuredOutputEnterWorktreeExitWorktree,加上所有 mcp__ 前缀工具。

协调者只有 4 个工具:AgentTaskStopSendMessageStructuredOutput(加特定 MCP PR 订阅工具)。


如果您认为内容不错,还可以订阅本合集,更快获取后续更新。
还可以加入矢量起源Agent交流群,与大家一起讨论~

在这里插入图片描述

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐