Anthropic工程师亲述:打造Claude Code,我学会了“像Agent一样思考”
大家好今天分享一篇AI圈近期很火的实战干货——来自Anthropic核心工程师Thariq Shihipartrq212的深度复盘主题是《Lessons from Building Claude Code: Seeing like an Agent》《构建Claude Code的经验像Agent一样看世界》。作为Claude Code的核心开发者Thariq没有讲空泛的理论而是把团队在搭建Agent工具过程中踩过的坑、迭代的思路拆成了4个真实案例每一个都能直接复用在我们自己的Agent设计中。0 核心前提Agent设计最难的不是“加工具”而是“选对工具”在开始分享案例前先明确一个核心观点——构建Agent框架最关键的不是“工具越多越好”而是“工具要匹配模型的能力”。Thariq用一个很形象的比喻帮我们理解这个逻辑假设你被困在一道复杂数学题里需要什么工具答案完全取决于你自身的能力纸笔是最低配但会被手动计算限制效率计算器更高效但你得会用它的高级功能电脑最快最强但你必须懂代码、会执行。Agent的工具设计也是如此给模型的工具既不能太简单限制能力也不能太复杂模型不会用。而要找到这个平衡点唯一的方法就是——仔细观察模型的行为学会“像Agent一样思考”。下面就是Thariq团队在打造Claude Code时通过真实实践总结的4个核心经验每一个都带着具体的迭代过程干货拉满。1 案例1从“混乱提问”到“高效交互”AskUserQuestion工具的3次迭代核心目标让Claude能更自然、更低成本地向用户提问比如确认需求、补充信息提升双方的沟通效率。一开始团队走了不少弯路最终才找到最优解整个过程分为3个阶段尝试1在现有工具里“凑数”语义混乱最开始图省事直接给现有工具ExitPlanTool加了一个参数让模型在提交计划时顺便带上要问用户的问题。结果很糟糕模型一边要做计划一边要提问逻辑混乱如果用户的回答和计划冲突系统不知道该优先信哪一个甚至会出现模型反复调用工具、陷入循环的情况。结论工程上最简单但语义不清晰完全不可行。尝试2修改输出格式稳定性差接着团队尝试让Claude用固定的Markdown格式提问比如带选项的项目符号再由前端解析成可视化UI。这个思路没问题但实际用起来发现模型根本“不听话”有时会多写无关内容有时会漏了选项有时直接自己换了格式。这里藏着一个关键教训让模型“模仿结构化输出”和让模型“真正调用结构化接口”可靠性完全不是一个等级。尝试3专门做工具完美适配最终团队开发了专门的AskUserQuestion工具Claude可以在任何需要的时候调用它工具触发后UI会弹出规范的问题列表并且暂停Agent的运行直到用户完成回答。这个工具的优势很明显输出结构稳定、可以强制包含选项、交互顺滑还能在不同场景下复用。最关键的是——Claude喜欢用而且能用对。毕竟一个再强大的工具如果模型不会用、不知道什么时候用也是白费功夫。2 案例2随模型进化而迭代从Todo到Task的升级这个案例告诉我们工具不是一成不变的随着模型能力的提升曾经的“帮手”可能会变成“枷锁”。早期Todo工具只为“不跑偏”Claude Code刚推出时模型的能力还不够强很容易忘记自己的目标。于是团队给了它一个TodoWrite工具让它创建待办列表并且在工作中逐项勾选。即便如此模型还是经常忘事团队只能每5轮就插入一次系统提醒反复强调目标。后期Task工具适配更强模型随着模型不断升级副作用出现了模型不再需要频繁提醒固定的Todo列表反而限制了它的灵活调整而且不同子代理之间也无法共享和协同Todo状态。于是团队用Task工具替换了TodoWrite工具——两者的核心区别的是Todo只是简单的待办列表目的是“让模型别跑偏”Task更像一个可共享的任务载体支持子任务、依赖关系还能跨代理同步更新、修改、重组。关键教训做Agent工具设计一定要不断重新审视“我们需要什么工具”跟着模型的能力一起迭代不能一成不变。3 案例3范式转变让模型“自己找上下文”对Claude来说“找到正确的上下文”比如代码库、文档是很重要的能力。早期团队用的是大家熟悉的RAG向量数据库帮模型提前找好上下文再喂进去。RAG很快但有三个致命问题需要预先索引和维护在不同环境下容易出问题更重要的是——上下文是系统“替”模型找的不是模型自己找到的剥夺了模型的主动性。既然Claude能自己上网搜索为什么不能让它自己搜索代码库于是团队给了Claude一个Grep工具让它自己搜索文件、自己探索、自己构建上下文。这是一个核心的范式转变过去系统替模型准备好所有上下文现在给模型探索上下文的能力让它自己找。后来团队又引入了“渐进式披露”的思路让Agent通过探索逐步发现相关的上下文——比如Claude可以读取技能文件这些文件又能引用其他文件模型可以递归读取慢慢找到自己需要的信息。经过一年多的优化Claude已经从“几乎无法自己构建上下文”进化到能在多层文件中嵌套搜索精准找到需要的内容。4 案例4少即是多不新增工具也能扩展能力目前Claude Code只保留了约20个核心工具团队对新增工具的门槛要求很高——因为每多一个工具模型就多一个决策点反而会降低效率。举个例子团队发现Claude对“如何使用Claude Code本身”了解不够比如用户问“怎么配置MCP”“斜杠命令是什么”它经常答不好。如果把所有相关文档都塞进系统提示会让上下文变得臃肿还会干扰Claude的主任务——写代码。于是团队又用了“渐进式披露”的思路没有新增工具而是做了一个“Claude Code指南子代理”当用户问的是关于Claude Code自身的问题时提示Claude调用这个子代理而这个子代理专门负责搜索相关文档、返回精准答案。虽然不是完美解决方案但比之前好太多——关键是在不新增工具、不增加模型决策负担的前提下成功扩展了Claude的能力。最后Agent工具设计是艺术也是科学Thariq在文章结尾强调如果你想找一套“构建Agent工具”的严格规则很遗憾没有这样的规则。为模型设计工具既是一门科学需要遵循技术逻辑也是一门艺术需要结合模型能力、Agent目标、运行环境灵活调整。而最核心的方法论只有一句话多实验、读输出、尝新方法。像Agent一样看世界。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2430126.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!