Anthropic 团队成员 Thariq 的一篇分享刷屏 AI 圈,300 万围观者从中窥见了 Claude Code 的炼成密码。这篇聚焦 Agent 工具设计的深度复盘,核心观点直击要害:给模型设计工具既是科学也是艺术,没有僵化规则,关键是学会切换到 Agent 的视角思考。从提问优化到工具进化,从上下文构建到避免工具膨胀,Claude Code 的四大实战经验,为所有 Agent 开发者提供了可落地的行动指南。
一、信息获取:三次迭代,打造高效提问工具
Agent 与用户的沟通效率,直接决定任务推进速度。Claude Code 团队为优化提问能力(elicit),历经三次尝试才找到最优解,核心目标是降低交互摩擦、提升沟通带宽:
1. 失败尝试 1:依附现有工具,逻辑冲突
最初在 ExitPlanTool 中添加参数,让工具同时输出计划和问题列表。这种方案实现最简单,但直接让 Claude 陷入困惑 —— 当用户回答与计划冲突时,模型无法判断是否需要重复调用工具,逻辑闭环断裂,被迫放弃。
2. 失败尝试 2:修改输出格式,稳定性不足
转而要求 Claude 用变体 Markdown 格式输出带选项的问题列表,前端解析后渲染 UI。虽然改动范围小,但模型输出极不稳定:频繁出现多追加语句、漏掉选项或擅自变更格式的情况,无法保证用户体验一致性。
3. 成功方案:独立工具 AskUserQuestion,双向适配
最终打造独立工具,核心设计亮点十足:
-
触发机制:Claude 可随时调用,优先在 plan 模式下使用,工具激活后弹出模态框展示问题,阻塞 Agent 循环直至用户回应,避免任务中断;
-
输出规范:强制要求结构化内容,确保给用户提供多个选项,同时支持用户在 Agent SDK 或 Skills 中组合调用;
-
关键优势:模型 “愿意使用” 且输出效果优异 —— 设计再精妙的工具,若模型无法理解或不愿调用,终将沦为摆设。
这一工具的成功,印证了 Agent 工具设计的核心原则:既要适配用户需求,更要贴合模型的使用习惯。
二、工具进化:跟着模型能力动态调整
模型的成长速度远超预期,曾经的辅助工具可能变成新的束缚。Claude Code 从 Todo 到 Task 的工具迭代,完美诠释了 “工具需与模型共进化” 的道理:
1. 初期:TodoWrite 工具,解决 “记不住” 问题
Claude Code 刚上线时,模型需要明确指引才能保持专注,于是推出 TodoWrite 工具,让模型创建、更新待办列表并展示给用户。即便如此,模型仍频繁忘事,团队不得不每 5 轮对话插入系统提醒,强化目标记忆。
2. 迭代:Task 工具,适配 “强协作” 需求
随着模型能力升级,原有工具逐渐暴露短板:
-
束缚灵活性:更强的模型无需提醒,反而会因 Todo 列表陷入 “死守计划” 的误区,不敢灵活调整;
-
协作短板:Opus 4.5 的子 Agent 协作能力大幅提升,但多个子 Agent 无法共享 Todo 列表,信息割裂严重。
为此,团队将 TodoWrite 升级为 Task 工具,核心差异显著:
| 特性 | TodoWrite(早期) | Task(当前) |
|---|---|---|
| 核心目标 | 让单个 Agent 保持专注 | 支持多 Agent 协同协作 |
| 功能支持 | 简单待办创建与勾选 | 任务依赖关系、跨 Agent 同步、自由增删改 |
| 适用场景 | 单一模型执行简单任务 | 多子 Agent 联动完成复杂任务 |
这一迭代带来关键启示:模型能力提升后,需定期重审工具设计的前提假设,避免用过去的辅助手段限制未来的能力发挥。同时建议尽量聚焦少量能力相近的模型,避免工具设计陷入 “众口难调” 的困境。
三、上下文构建:让 Agent 自主探索,而非被动接收
上下文是 Agent 的核心资源,Claude Code 团队彻底重构了上下文获取方式,从 “被动投喂” 升级为 “主动构建”,关键在于渐进式披露(Progressive Disclosure)策略:
1. 初期:RAG 向量数据库,局限明显
Claude Code 刚发布时,依赖 RAG 向量数据库提供代码上下文。虽然 RAG 速度快,但存在致命问题:需要手动建索引、配置复杂,在不同环境下稳定性差,更重要的是 —— 上下文是 “塞给” 模型的,而非 Agent 自主获取,无法适配复杂场景的动态需求。
2. 升级:赋予搜索能力,自主构建
团队转换思路:既然 Claude 能搜索网页,为何不能搜索代码库?给模型配备 Grep 工具后,Agent 可自主搜索文件、筛选信息,按需构建上下文。这一改变印证了核心规律:模型越智能,越擅长利用工具自主构建上下文。
3. 进阶:渐进式披露,深度探索
推出 Agent Skills 后,团队将这一策略正式化:
-
递归探索:Claude 可读取 Skill 文件,而 Skill 文件可引用其他文件,模型能像剥洋葱一样,跨多层文件嵌套搜索,精准定位所需上下文;
-
能力延伸:Skills 的常见用法之一,就是为 Claude 添加专属搜索能力,例如教模型如何调用特定 API、查询数据库,无需额外开发新工具。
一年时间里,Claude 从 “完全不会自主构建上下文”,进化为 “能精准嵌套搜索多层文件”,证明了 Agent 自主探索能力的巨大潜力。
四、能力扩展:避免工具膨胀,用子 Agent 分流
工具数量并非越多越好 —— 每增加一个工具,模型就需多一层思考成本,反而降低决策效率。Claude Code 目前仅保留约 20 个工具,核心通过 “功能复用 + 子 Agent 分流” 实现能力扩展:
1. 痛点:基础信息与核心任务冲突
团队发现 Claude 对自身使用问题(如 “如何添加 MCP”“斜杠命令用途”)回答乏力。若将所有相关信息塞进系统 Prompt,会产生大量上下文噪音,严重干扰模型的核心任务 —— 写代码。
2. 方案:Claude Code Guide 子 Agent,精准分流
设计专用子 Agent,实现 “不加工具也扩展能力”:
-
触发条件:当用户询问关于 Claude Code 自身的问题时,主 Agent 会自动调用该子 Agent;
-
核心优势:子 Agent 内置详细指令,知道如何高效搜索文档、筛选关键信息、组织回应内容,避免主 Agent 分心;
-
实际效果:虽未达到完美(复杂配置问题仍会困惑),但大幅提升了回应准确性,同时保持了主工具集的精简。
这一策略的核心价值在于:通过功能模块化拆分,在不增加主 Agent 工具负担的前提下,实现能力边界的扩展,为 Agent 工具设计提供了 “轻量化扩展” 的新路径。
核心启示:Agent 工具设计的底层逻辑
Claude Code 的四大经验,本质围绕一个核心 ——“以 Agent 为中心”,而非 “以功能为中心”:
1. 工具要 “合手”:匹配模型能力边界
设计工具前,先通过观察模型输出、反复实验,摸清其真实能力水平。就像解数学题,纸笔、计算器、电脑的选择需适配使用者能力,Agent 工具也需贴合模型的 “能力天花板”,既不高估也不低估。
2. 迭代要 “灵活”:动态适配模型成长
模型能力的进化是持续的,工具设计不能一成不变。定期复盘原有假设是否成立,及时淘汰过时工具、升级适配新能力,避免 “曾经的帮手变成现在的束缚”。
3. 能力要 “内生”:赋能自主探索
优秀的 Agent 工具,不是替模型完成任务,而是赋予其自主完成任务的能力。让 Agent 学会自己构建上下文、自己解决问题,远比直接提供答案更有价值。
4. 扩展要 “克制”:拒绝无意义堆砌
工具膨胀会增加模型的决策成本,精简工具集反而能提升效率。通过子 Agent 分流、渐进式披露等策略,在保持工具精简的同时扩展能力边界,才是可持续的设计思路。
最终,所有经验都指向 Thariq 强调的核心:多做实验、多读模型输出、多尝试新方案,真正学会像 Agent 一样思考。在 AI 快速迭代的时代,这种 “以模型为用户” 的设计思维,正是打造优秀 Agent 的关键密码。


