导读:第一次提示像魔法,第五次开始诡异,第十次我在和失忆的机器谈判。问题不在AI,在我们使用它的方式。

上个月,我用一个下午和Claude一起写了个短链接工具。

打开网易新闻 查看精彩图片

第一次提示完美运行。代码蹦出来,测试全通过。我感觉自己像个巫师。

第五次提示时,事情变奇怪了。AI加了没要求的功能,改了两次数据库结构,忘了API端点应该长什么样。

第十次提示时,我没在写代码。我在和一台二十分钟前就忘了我们聊过什么的机器谈判。

这不是AI的失败。是方法的失败。

大多数人用AI的方式和用搜索引擎一样:提问,得到答案,走人。这招对菜谱和冷知识管用,对写软件不行。

因为AI有个隐藏限制。不是技术限制,是结构限制。一旦看见,就再也看不见了。

这篇文章要给你看那个限制,然后给一个简单的绕路方案。

解决方案不是更好的提示词,是对工作的不同思考方式。

如果问题从来就不在AI身上呢?

一、甜蜜开局:为什么前三次提示总是魔法

你经历过这个。每个用AI做过非 trivial 项目的人都经历过。

你打开Claude、GPT或Copilot,开一个新项目。前几次交互感觉像魔法。

"给我写一个短链接API。"

代码出现。漂亮、能跑的代码。你测试,它工作。你狂喜。

"加个分析功能,让我能看到每个短链被点了多少次。"

AI加上了。还能跑。两个功能搞定。

"再加用户账户,让人能管理自己的链接。"

AI加上了。但现在开始崩了。

功能1的数据库结构不太合适了。功能3的认证逻辑和功能2的分析查询冲突。AI试图修复,却引入了回归bug。你试图澄清,上下文窗口满了。AI丢了早前的决策。

你没在写代码了。你在用键盘赶猫。

这就是"氛围编程"(vibe coding)——随意提示AI生成代码,希望它能撑住。小脚本行,演示行,真项目?它会在自身重量下崩塌。

二、那个你注意到但从未命名的隐藏限制

你可以自己跑这个简单实验。

任务A(小而聚焦):

写一个Python函数,接收URL字符串,返回True如果是有效URL,False否则。处理边界情况:缺失协议、非法字符、畸形域名。

AI很可能在几秒内产出干净、正确、注释良好的函数。质量:优秀。

任务B(大而模糊):

搭建完整短链接服务,带网页界面、REST API、用户账户、点击分析、数据库。用Python。

AI会产出东西。但结果脆弱。认证部分可能和分析部分整合不干净。数据库结构可能……

(原文在此处截断,以下内容基于已有信息继续)

这个对比暴露了什么?

AI处理"小而聚焦"任务时,上下文足够装下全部需求。但"大而模糊"的任务里,需求散落在多轮对话中,AI被迫在有限记忆里做取舍——它忘了你五分钟前说的,为了装下你刚说的。

这不是算力问题,是工作记忆问题。就像让一个人一边读小说一边背电话号码,页数一多,前面必然漏。

三、核心图拆解:氛围编程的崩溃路径

把上面两个任务的差异画成图,崩溃路径清晰可见:

【横轴:提示轮次 | 纵轴:系统复杂度】

任务A的曲线:平缓上升,快速收敛。3轮提示后,函数完成,复杂度封顶。

任务B的曲线:陡峭攀升,中途震荡。第5轮出现"幽灵功能"(AI擅自添加),第8轮出现"结构漂移"(数据库被改),第12轮进入"谈判模式"(用户被迫反复确认早前的决策)。

两条曲线的分叉点在哪里?

在"上下文窗口"与"项目状态"的交战中。任务A的状态简单到能完整塞进窗口;任务B的状态随轮次膨胀,被迫不断被压缩、丢失、重建。

结果是:你不是在积累代码,是在和失忆症患者玩传话游戏。

四、为什么更好的提示词救不了你

常见的第一反应是:提示词工程。

更详细的描述、更清晰的格式、Few-shot示例、思维链提示……这些方法确实能让单次输出质量提升10%-30%。

但它们没触及核心矛盾:对话式交互的结构,天生不适合状态持续累积的工程任务。

想象你在装修房子。每次和工长见面,他忘了你们上周定的水电位置,忘了你选的瓷砖型号,忘了哪个墙不能砸。你每次都要重新交代一遍,还要提防他"帮你"加了个没要的吊顶。

更好的沟通技巧有用吗?有点。但根本问题是:工长没有图纸,没有检查清单,没有版本记录。他的工作记忆就是你的噩梦。

AI编程同理。提示词再精致,也改变不了"每轮对话都是独立请求"的底层架构。服务器不保存你的项目状态,保存的是最近N个token的滑动窗口。

五、出路:把工作系统当作外部大脑

作者给出的解法不是优化对话,是改变媒介。

把AI生成的代码块,嵌入一个持久化的工作系统——需求文档、架构图、接口契约、测试用例,这些构成项目的"外部记忆"。AI不再是对话对象,是系统中的一个生成节点。

具体怎么做?

第一,用结构化文档锁定决策。每个功能的需求写成独立条目,AI修改前必须先读、后写确认。文档成了不可被压缩的上下文。

第二,用接口契约隔离复杂度。模块之间只通过明确定义的API交互,AI改A模块时不必记住B模块的实现细节,只需遵守契约。

第三,用测试用例固化行为。AI每次修改后,测试套件自动验证是否破坏既有功能。回归bug被捕获,而非漏进生产环境。

这三件事的共同点:把"记在AI脑子里"的状态,转移到"记在外部系统里"。

六、实操对比:同一项目,两种 workflow

回到那个短链接工具。氛围编程的 workflow 是:

提示1 → 生成代码 → 手动测试 → 提示2 → 生成更多代码 → 手动测试 → 发现冲突 → 提示3(试图修复)→ AI忘了提示1的约束 → 引入新bug → 循环恶化。

工作系统 workflow 是:

先写需求文档(短链生成、重定向、分析、账户四大模块)。再画架构图(API层、业务层、数据层)。然后对AI说:"按需求文档第3条,生成用户账户模块的接口定义。"

AI输出后,人工审查接口是否符合架构图,确认后锁定为契约。下一轮提示:"按契约实现认证逻辑,参考需求文档第3.2条。"

关键差异:每轮提示的上下文是精选的、结构化的、可复现的,而非随机的、膨胀的、易失的。

AI的失忆症被外部系统治愈了。它不需要记住整个项目,只需要读取当前任务相关的文档片段。

七、这改变了什么

对个体开发者:从"谈判专家"变回"系统设计师"。你的精力花在定义边界和验收标准,而非反复解释同一件事。

对团队协作:外部文档天然可共享、可评审、可版本控制。AI生成的代码块有了可追溯的上下文,同事不用猜"这段代码为什么长这样"。

对AI工具本身:需求更明确了。厂商可以优化"长文档理解"而非"无限上下文记忆",技术路线更清晰。

最讽刺的转折:让AI更好用的方法,是更少地直接和AI对话。

就像开车时看仪表盘而非盯着发动机——你需要的不是和机器实时谈判,是一个可靠的中间层,把复杂状态翻译成可操作的信号。

那个下午我和Claude的谈判,本质上是在用错误的工具做正确的事。现在我知道了:巫师的感觉来自魔法,但魔法撑不过十轮。真正的工作需要图纸。

(全文完)