快速导读:Anthropic内部团队披露了构建Claude Code的真实过程——他们用了三个月才想清楚“怎么让AI提问”,又花了一年时间意识到:模型越来越聪明之后,原来为它设计的工具,正在变成它的枷锁。
---
有个问题,Claude Code的工程团队想了很久:怎么让AI在动手之前,好好问几个问题。
第一个方案,改了个已有的工具,在里面加了个“问题列表”参数。结果Claude直接懵了——我到底是该先问问题,还是先做计划?如果用户的回答和我的计划矛盾,我要重新跑一遍吗?方案废弃。
第二个方案,在提示词里规定一种特殊的markdown格式,让Claude用这个格式输出问题选项,然后解析成UI展示给用户。效果是:Claude大概率不按格式来。它要么多写几句话,要么少给几个选项,要么直接用另一种格式。
第三个方案,单独做了一个工具,AskUserQuestion。Claude随时都能调用它,触发之后会弹出一个对话框,锁住整个运行循环,等用户回答完才继续。这个工具的价值不在于技术,在于:Claude好像真的“喜欢”用它。
这句话值得停下来想一下。工具不是越多越好,也不是设计越精妙越好。如果模型不理解怎么用,或者不倾向于用,再好的工具也是死的。
团队把这种思路叫做“like an agent”——要像模型一样思考。他们用了一个直观的类比:给你一道难数学题,你想要什么工具?要看你自己会什么。纸笔可以,但只能算手算的;计算器更好,前提是你会用高级功能;电脑最强,但你得会写代码。工具的设计,必须适配能力的边界。
但更反常识的发现在后面。Claude Code刚上线的时候,模型经常忘记自己在做什么,团队给它加了一个Todo List工具,每隔5轮对话还会自动提醒一次。这个方案有效,直到模型变得更强——Opus 4.5开始觉得Todo提醒是一种干扰,它不是在被帮助,而是被限制。“我只能按照清单走,不能自主修改方向。”团队最终把Todo工具整体替换掉了。
工具设计有个隐含假设:模型是固定的,工具是适配它的。但现实是,模型在变,而且变得很快。上个季度设计的工具,可能在这个季度变成了瓶颈。
Claude Code现在有大约20个工具,团队说他们一直在问自己:真的需要这些吗?加一个新工具,就是给模型增加一个需要思考的选项。他们最近想解决的问题是:Claude不太了解Claude Code自己的功能,但又不想把文档全塞进系统提示词里——那会干扰模型做它真正该做的事。最后的方案不是加工具,是给它一个“子智能体”,专门负责搜文档。
如果你在做任何形式的Agent产品,有一个问题可能值得想一想:你现在给模型加的那些工具,是为了上个版本的模型设计的,还是为了现在的?
---
简评:
这篇的核心洞察其实比“工具设计方法论”更深一层——它说的是,当你的工具使用者本身在持续进化,“好的设计”就没有终态。大多数工程经验分享讲的是“怎么做对”,而这篇讲的是“怎么发现自己做的事已经做错了”。这种反思能力,才是真正难复制的东西。
---
ref: x.com/trq212/status/2027463795355095314