一文读懂Manus 上下文优化策略

155 阅读5分钟

究竟是花时间费力气去训练模型,还是基于最新最强的模型,再通过上下文学习能力构建一个智能体?相信这个是所有 AIAgent 开发者都会面临的问题。

在朋友的鞭策下,我研究了7月19日 Manus 联合创始人兼首席科学家季逸超(Yichao 'Peak' Ji)的《Context Engineering for AI Agents: Lessons from Building Manus》文章。

Image

在这篇文章中,季逸超慷慨的把 Manus迭代多次的策略手动架构搜索、提示调整和经验猜测的过程总结了出来。那么,他们以"SGD"命名,是如何达到局部最优解?今天,我把Manus的优化策略,用小白都能听得懂的方法讲给你听。

首先,直接一句话总结:

“别去训练模型,去训练上下文。”

与其花几周去微调模型,不如花几小时去设计上下文(prompt、工具、缓存、文件系统),让大模型在现有能力下表现得像个专业 Agent。

接下来,把每个优化策略,逐个说清楚,讲明白。

策略一: KV-Cache 命中率,为什么它比你想的更重要?

想象你在玩一个文字冒险游戏,每次你输入一个动作,游戏都要重新加载前面的剧情。如果前面的剧情每次都要重新加载,游戏就会卡到爆炸。

  • KV-Cache 是大模型用来“记住”前面说过的内容的缓存。
  • 如果你每次对话的开头都变一点点(比如加了个时间戳),缓存就失效了,模型得重新算一遍前面所有内容。
  • 结果就会导致 延迟变高,成本暴增。(以Claude -sonnet 4 的 api 价格为例:缓存命中 0.3 美元/百万 token,不命中 3 美元,差 10 倍)。

Image

那么,该怎么做?

  • ✅ 固定前缀:系统提示(system prompt)别动。
  • ✅ 追加式更新:别改历史记录,只追加新内容。
  • ✅ 显式缓存断点:告诉系统“这里可以缓存”。

Image

策略二:Mask,不要 Remove:工具太多怎么办?

  • 工具(函数调用)太多,模型容易选错,而且流行的MCP只会火上浇油。
  • 直接动态加载/卸载工具会破坏缓存(KV-Cache),还会让模型困惑(历史动作引用了已删掉的工具)。

好比你开了一家餐厅,菜单上有 500 道菜。顾客点菜时眼花缭乱,厨师也容易做错。

你可能会想:“那把菜单藏起来一部分?”——但这样顾客会点不到菜,厨师也会晕。

怎么做?

  • ✅ 不删工具,只“遮”工具:用“logit masking”技术,告诉模型“现在你只能选这几个工具”,而不是真的从上下文里删掉。
  • ✅ 工具命名规范:比如所有浏览器工具都叫 browser_*,方便按前缀统一遮罩。

Image

策略三:用文件系统当“无限记忆”

你的大脑只能记住最近 10 分钟的事,但你有一个无限大的笔记本,可以随时翻找。

你会怎么做?——把重要信息写进笔记本,忘记时先翻一下重要的信息。

同样的,虽然现在的大模型上下文窗口越来越大,但是也架不住你疯狂的加码。

  • 大模型的上下文窗口再大(比如 128K),也可能不够装整个网页或 PDF。
  • 压缩或截断会丢失信息,而且不可恢复。

怎么做?

  • ✅ 把文件系统当外脑:让 Agent 自己读写文件(如 .md, .json)。
  • ✅ 可逆压缩:比如网页内容可以暂时从上下文里删掉,但保留 URL,需要时再爬。
  • ✅ 未来展望:如果 State Space Model(SSM)也能学会用文件系统,可能比 Transformer 更快更省。

Image

策略四:用“复述”来操控注意力

你正在做一个复杂的项目,怕忘记目标,于是每做完一步就把目标写在便利贴上,贴在屏幕边。

每次走神时,看一眼就拉回来。

  • 在长任务中,模型容易“跑偏”或“忘记初心”。
  • 通过反复把目标写在上下文末尾(比如 todo.md),让模型每次决策时都“看到”目标。

怎么做?

  • ✅ 动态更新 todo 文件:每完成一步,就更新并重新读入上下文。
  • ✅ 自然语言操控注意力:不需要改模型架构,只需要让目标总在“最近记忆”里。

Image

策略五:别把错误藏起来,让模型从失败中学习

你学骑自行车,摔了一跤。如果把这段记忆删掉,下次你还会在同一个地方摔。但如果你记得“上次这里有个坑”,你就会绕开。

  • 很多系统会自动“清理”失败的工具调用或报错,让上下文看起来更“干净”。
  • 但这会让模型重复犯错。

怎么做?

  • ✅ 保留错误信息:把报错、空结果、失败动作都留在上下文里。
  • ✅ 让模型自己调整:看到“上次 git push 失败了”,下次它可能会先检查权限。

Image

策略六: 别让模型“死记硬背”:避免 Few-Shot 陷阱

你教小孩做题,每次都给他看一模一样的例题。结果他只会套模板,题目一变就不会了。

  • 如果上下文里全是类似的“动作-结果”对,模型会机械模仿。
  • 这会导致“漂移”或“幻觉”。

怎么做?

  • ✅ 增加多样性:同样的动作用不同格式写,偶尔打乱顺序,加点噪音。
  • ✅ 打破模式:让模型每次都“重新思考”,而不是复制粘贴。

Image

原文链接:manus.im/blog/Contex…