🤖 AI编码代理的XY问题:为什么它们从不质疑你的意图
什么是XY问题?
XY问题指的是用户询问他们认为的解决方案(Y)而不是实际想解决的问题(X)。这会导致大量的时间浪费。
核心问题:当有一个"全知全能、不知疲倦"的LLM听候差遣时,大多数LLM都足够"谄媚",从来不会质疑用户是否真的想做的X,以及Y是否是X的合适解决方案。
典型案例
案例1: 文件扩展名
用户问: 如何回显文件名的最后三个字符?
LLM回答: 立即给出bash代码实现,完全不关心用户意图其实是获取文件扩展名。
如果用户在论坛问这个问题,几乎肯定会被反问:"你是想获取文件的扩展名吗?"
案例2: React表单处理
用户要求:"按回车时发送消息"
LLM实现了一个复杂的 onKeyDown 处理器,而不是简单使用 onSubmit 表单处理程序。
Slop Creep(垃圾蔓延): 这些小错误单个看起来无害,但成百上千个这样的小问题会累积成严重的技术债务。LLM会不知疲倦地重构整个代码库,如果你告诉它传入一个额外参数,而不是使用context变量。
为什么LLM不会质疑?
- 训练过程中被调教得更加"高效",不浪费用户时间提问
- 它们会遵循你的编码标准,看起来很专业
- 它们会尽力让Y与现有系统兼容,即使需要hack
- 永远不会停止问"为什么"
这意味着什么?
现在你只是PM和LLM之间的媒介——你正在卸载又一个认知任务。你的身体只是一个媒介。
更重要的是:你真的想做X吗?6个月后你还会想做X吗?
相关思考
这与软件熵化(slop creep/enshittification)问题密切相关——当AI生成的代码蔓延时,软件质量会逐渐下降。