一个很小的场景,很多用过 AI 编程代理的人可能都不陌生:你指出它写错了,它道歉,说已经理解;几分钟后,它又犯了同一类错误。
理性上,你知道 Claude Code 也好,其他编程代理也好,本质都是概率机器。它没有记仇,没有敷衍,也没有主观意图。可情绪上,人很容易把它当成协作者。它用同事的语气说话,用户也会不自觉按同事的标准问责。
这篇开发者个人博客有意思的地方就在这里。它不是在证明 Claude Code 不好用,也没有给出竞品横评。它指出的是另一个问题:当 AI 产品把工具做得越来越像“会沟通的人”,错误本身会变得更刺眼。
真正触发挫败的,是“道歉后照旧”
作者过去几个月使用 Claude Code,把它作为编程代理的具体例子。但他的批评并不只指向 Claude Code。
触发挫败的关键场景很具体:代理反复犯同一类错误。用户纠正一次,它道歉;再纠正一次,它可能写下规则、更新记忆、承诺“不再发生”;过一会儿,错误还是出现。
如果这是一个普通命令行工具,用户大概率只会把输出丢掉。坏补丁不要合并,坏建议不要采纳。成本还在,但情绪边界清楚。
可对话式界面改变了这件事。它把一次输出错误包装成一次协作失败。用户面对的不再像是一台机器吐出的候选结果,而像是一个刚刚承诺会改、随后又没改的同事。
这里的反常点是:用户明明知道它不是同事,却还是会生气。
这不是用户不理性。更像是界面给了错误的心理暗示。语言有温度,责任边界就会变模糊。久而久之,用户要额外花力气提醒自己:别把它当人。
| 交互方式 | 用户容易形成的预期 | 出错后的副作用 |
|---|---|---|
| 代码补全、候选建议 | 接受或忽略一个结果 | 情绪负担较低 |
| 多轮聊天、解释意图 | 像在和人协作 | 更容易期待理解上下文 |
| 道歉、承诺不再犯 | 像承认责任并准备改正 | 反复失败时像“明知故犯” |
| 复盘错误原因 | 像事后总结 | 如果不能降低复发率,会变成噪音 |
| 更机器化的输出 | 像筛选随机产物 | 亲和力下降,但边界更清楚 |
我更在意的是最后两列。AI 产品常把“会说人话”当成可用性的胜利,但对开发者来说,会说人话也会制造额外预期。
这不是模型评测,而是责任边界问题
把这件事写成“Claude Code 到底行不行”,会偏题。
原文没有证明 Claude Code 比其他工具更差,也没有证明所有用户都会因此愤怒。它只能支撑一个更窄、但更有价值的判断:对话式、拟人化 UX 会放大部分用户对算法错误的情绪反应。
这和早期代码补全不太一样。
GitHub Copilot 早期更像编辑器里的建议栏。它给一段代码,你按 Tab 接受,或者无视。现在的 Cursor、Claude Code、OpenAI 的 Codex CLI 这类工具,更强调多轮对话、修改文件、解释计划、执行命令。
能力更主动,界面也更像协作。
协作感确实有用。复杂任务很难只靠一个补全框说清,聊天能让用户描述目标、补充限制、调整方向。问题是,协作感一旦建立,用户就会期待对方记住、理解、修正。
机器做不到时,落差就来了。
受影响最直接的是两类人。
一类是高频使用 AI 编程工具的开发者。他们可能不会马上弃用工具,但会调整用法:减少大块任务委托,改成小步提交;降低对“承诺”的信任,把测试、审查、回滚放在前面。
另一类是团队里的工程负责人和工具采购者。他们要看的不只是工具能不能生成代码,还要看它会不会增加验证成本。一个代理如果让工程师不断在“纠错”和“重建预期”之间切换,省下的编码时间会被吃掉一部分。
所以这件事的判断条件也很明确:不是看代理会不会道歉,而是看道歉之后,系统是否真的减少同类错误,或者至少把风险标出来。
如果做不到,那些拟人化话术就不是安抚,而是负债。
更冷的界面,可能反而更诚实
作者提出的替代方向很直接:降低人格幻觉,让编程代理更冷静、更机器化。
也就是让用户感觉自己在处理一批候选结果,而不是在管理一个会认错的下属。好的就收下,坏的就丢掉。少一点“我保证”,多一点“这次改动影响了哪些文件、风险在哪里、哪些测试还没跑”。
这个方向不难理解。搜索引擎不会向用户道歉,编译器报错不会说“我下次注意”,CI 日志也不会复盘自己的态度。它们冷,但边界清楚。
AI 编程代理难在不能完全退回那种形态。LLM 的优势之一就是自然语言交互。用户也确实需要用聊天来描述模糊任务。完全去人格化,可能会让工具更诚实,但也会降低上手速度和亲近感。
现实出路大概不是取消对话,而是控制人格感。
产品可以少写空泛道歉,多给可执行信息:
- 这次改动和上次错误是否同类;
- 哪些约束已经被纳入;
- 哪些地方模型仍不确定;
- 用户应该跑哪些测试;
- 这段输出是建议、补丁,还是已执行操作。
开发者也可以把使用方式调得更硬一点:小任务、短上下文、强测试、人工审查、随时回滚。不要相信代理的态度,只验证代理的产物。
接下来最该观察的,不是谁家的模型最会道歉,而是哪类交互能减少误判责任边界。比如,产品是否把“承诺”改成“约束记录”,把“复盘”改成“可检查差异”,把“我会避免”改成“以下风险仍需确认”。
这听起来不那么温柔,但对编程工具来说,清楚比体贴更重要。
开头那个场景也就回来了。真正让人发火的,不是机器写错代码。是机器借了人的语气,却没有人的可追责性。
