你跟 AI 说了十遍"不要用 any",它第十一遍还是给你写了 any
你有没有遇到过这种情况:用 ChatGPT 或者 Claude 写代码,前面好不容易花了 5 分钟把项目背景解释清楚——"我用的是 React + TypeScript,数据库是 PostgreSQL,部署在 Vercel 上,代码风格用 Prettier..."
AI 说"明白了",然后认认真真帮你写了一段代码。挺好的。
然后你又说了一个新需求。AI 写的代码里用了 Axios——但你在第二句话就说过"我们项目用的是 Fetch API"。你提醒了它,它道了歉,改了过来。
再过两轮对话,你让它写一个新接口。它又用了 Axios。
更气人的是,你在第四句话里明确说过"不要用 any 类型"。到了第十二轮对话,满屏都是 any。
大多数人遇到这种情况的第一反应是:"这 AI 也太笨了吧。"
但实际上,这不是"笨"的问题,而是一个技术限制。

AI 的"记忆"跟你想的不一样
人的记忆是持久的——你今天学了一个知识点,明天甚至明年都还记得(虽然可能会模糊)。但 AI 的"记忆"完全不是这样运作的。
大语言模型有一个叫做 Context Window(上下文窗口) 的概念。你可以把它想象成 AI 面前的一块小黑板:
- 你说的每句话、AI 回复的每段内容,都会被写到这块黑板上
- 黑板是有大小限制的——Claude 大约 200K Token,GPT-4o 大约 128K Token
- 当黑板写满了,最早写的内容会被擦掉,给新内容让位
更容易被忽略的是,很多 API 会按输入和输出 Token 计费。对话越长,每轮请求携带的历史内容通常越多;是否命中提示缓存、如何计费则取决于模型和服务商。完成一个独立任务后开新对话,既减少无关上下文,也更容易控制成本。
"多说几遍"为什么不管用
面对 AI 的失忆问题,很多人的本能反应是:"那我每次都提醒它一遍不就行了?"
这个策略在对话前几轮是有效的。但很快你会发现:
- 你自己也会忘记提醒——当你专注于解决一个具体问题的时候,很容易忘了每次都补一句"记得用 TypeScript、不要用 any"
- 提醒越多,黑板越满——你花了 20% 的黑板空间来反复写同样的约束,这些空间本来可以用来放更有价值的信息
- 中间的信息最容易被忽略——研究发现,AI 对上下文的"开头"和"结尾"最敏感,放在中间的信息最容易被忽视。这叫 Lost in the Middle(中间迷失) 现象

那怎么办?Manus 团队的血泪经验
Manus 是一款通用 AI Agent 产品。它的工作场景比聊天写代码复杂得多——需要自主规划、调用工具、执行几十轮甚至上百轮的操作来完成一个长任务。这意味着它面临的"失忆"问题比我们严重得多。
Manus 团队分享过他们的"踩坑史":
| 阶段 | 问题 | 他们的做法 | 结果 |
|---|---|---|---|
| 第一次 | AI 聊着聊着就忘事 | 多写点提示词 | 越写越长,越写越贵 |
| 第二次 | 重要信息被挤掉 | 把重要的多复制几遍 | 文本更长,成本更高 |
| 第三次 | 账单高得吓人 | 想办法复用已有计算 | 找到降成本的方式 |
| 第四次 | 长文档处理不了 | 按需检索,不全塞进去 | 建立了检索系统 |
这个"巧"就是 Context Engineering——上下文工程。

什么是 Context Engineering?
Context Engineering 不是一个特定的技术或工具,而是一套方法论。它解决的核心问题是:怎么让 AI 在打开你项目的第一秒就知道该做什么,而不是每次都从头解释。
你可以把它想象成给新员工入职时发的那本"员工手册"。有了这本手册,新员工(AI)就知道公司用什么工具、代码规范是什么、哪些东西不能碰。没有这本手册?那你就得每天回答同样的问题。

和 Prompt Engineering 的区别是什么?我打个比方:
- Prompt Engineering 是每次打车时跟司机说"先左转再右转到那个路口"——每次都要说,说错了就走错路
- Context Engineering 是给导航软件设好目的地——你不用说话,AI 自己知道往哪走
为什么你的 AI 编程助手总是"失忆"?
理解 AI 记忆问题的技术根源,以及为什么"多说几遍"不是解决方案