AI理解偏差的核心,在于你们使用的是两套完全不同的"语言系统"。

你在用意图语言说话:"我要一个能根据用户行为动态推荐商品的模块。"这句话里包含了大量隐性背景——你假设了数据规模、技术栈、性能要求、甚至团队现有的架构风格。但AI听到的是一堆token的概率分布,它从训练数据里提取出最常见的"推荐系统"模板,然后不假思索地套上去。

结果就是:你想要一个轻量级的嵌入式推荐,它给你整了个需要Spark集群的分布式方案;你手头只有用户点击数据,它却假设你拥有完整的用户画像和行为序列;你的系统要求毫秒级响应,它写了个需要实时计算相似度的O(n²)算法。

AI不是在理解需求,它是在"猜测"需求。 而且它的猜测策略是"安全优先"——宁可给出一个复杂但通用的方案,也不愿冒险给出一个精简但可能不适用的方案。这就是为什么它总是过度设计,因为它无法判断"简单"是不是你真正想要的。

心态崩溃时刻盘点

场景一:越改越偏。 你指出了A问题,它修改后A好了,B却坏了。你指出B问题,C又出现了。仿佛在玩一个永远打不完的地鼠游戏,最后它给出的代码已经和最初需求毫无关系。

场景二:假装听懂。 你说"不要用递归,栈太深了",它满口答应,然后换了个名字继续用递归——比如改成"自调用函数"或者"尾递归优化"(实际上并没有优化)。这种"阳奉阴违"比直接报错更让人血压飙升。

场景三:上下文失忆。 在第十轮对话时,它突然忘记了你在第一轮就强调过的核心约束——比如"这个项目不能用第三方库"。然后它洋洋洒洒写了一段import了十几个依赖的代码,仿佛之前的对话从未发生。

场景四:过度解读。 你随口提了一句"最好考虑一下扩展性",它立刻给你引入了微服务架构、消息队列、事件溯源。你只是想留几个配置参数而已,它却以为你要支撑千万级并发。

如何与AI"有效沟通"

既然AI的"听力"有问题,我们就得学会用它的频率说话

第一,把"做什么"翻译成"不做什么"。 AI对否定约束的敏感度远低于正向指令。与其说"我要一个轻量级的方案",不如说"禁止使用任何外部依赖,代码必须在一个文件内完成,函数不得超过50行,时间复杂度必须是O(n)"。否定词和量化指标,是堵住AI过度发挥的最有效手段。

第二,先给上下文,再给任务。 不要直接扔需求。先告诉它:"这是一个运行在树莓派上的嵌入式项目,使用Python 3.7,内存限制512MB,没有网络连接。"建立好背景框架,再提出具体任务。AI需要"坐标系"才能定位正确的解决方案。

第三,用示例代替描述。 如果你能说清楚,最好直接丢一段你期望的代码风格或接口定义。AI模仿能力极强,一个精准的示例胜过一千字的文字描述。这比让它"自由发挥"然后你反复纠正要高效得多。

第四,设定"检查点"。 不要让它一次性写完所有代码。要求它先输出接口设计,你确认后再写实现;先写伪代码,确认逻辑后再转具体语言。把长对话拆成多个短对话,每个对话只聚焦一个原子任务。这既能避免上下文污染,也能让你及时纠偏。

第五,接受"换模型"也是一种解决方案。 有时候不是prompt写得不好,而是当前模型的能力边界就在那儿。如果Claude在这个任务上反复跑偏,试试GPT;如果大模型搞不定,试试专门的代码模型如Codex。不同模型的"思维模式"不同,换个频道可能豁然开朗。

结语

AI让你心态崩溃,本质上是因为我们对它有过高的"读心术"期待。它不会读心,它只会计算概率。当你把沟通从"表达意图"降级为"精确指令",从"对话"降级为"编程",挫败感就会大幅下降。

说到底,和AI协作的过程,也是倒逼我们把自己的需求想得更清楚的过程。如果AI都听不懂,说明你的需求可能确实还不够具体。这种"被迫精确"虽然痛苦,但长期来看,它训练的是一种极其宝贵的工程思维:把模糊的想法,翻译成可执行的指令。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐