Manus团队在构建AI代理过程中,分享了其在上下文工程方面的实践经验,强调了“喂模型吃好上下文”的重要性。他们建议直接利用现成大模型,将精力聚焦于优化上下文输入,以实现快速产品迭代和模型升级。通过提升KV缓存命中率, Manus显著降低了推理成本并提高了效率,缓存命中时成本可降低10倍。文章还强调了上下文的“只加不改”原则,避免因微小变动导致缓存失效。对于Agent工具管理, Manus采用“掩码”而非删除,以保持缓存的有效性。此外,将文件系统作为“外挂大脑”解决了上下文窗口的限制,并提出保留Agent的错误历史以供学习。最后,建议通过增加少样本提示的多样性,避免模型“套路化”,保持其决策的灵活性。
💡 **优先利用现有大模型,聚焦上下文优化**:Manus团队认为,与其花费巨资从头训练大模型,不如直接使用现成的模型,并将核心精力投入到“喂模型好吃的上下文”上。这种策略能够显著加快产品迭代速度,并能随着底层模型的升级而自然获益,是一种更具成本效益和效率的路径。
🚀 **KV缓存命中率是降本提速的关键**:KV缓存如同给模型装上了“记忆外挂”,当上下文前缀保持不变时,模型可以复用之前的计算结果,大幅提升推理速度并降低成本,缓存命中时的成本比未命中时低10倍。因此,Manus团队致力于优化策略,使上下文尽可能保持一致,以最大化缓存命中率。
📝 **上下文遵循“只加不改”原则,保持历史的连续性**:为了保证KV缓存的有效性,上下文的更新应遵循“写日记”的模式,即只追加新的信息,而不修改或删除历史内容。即使是微小的时间戳变化也可能导致缓存失效,因此保持上下文历史的不可变性至关重要。
📦 **“掩码”而非删除,是管理Agent工具的明智之举**:随着Agent可用工具的增多,Manus团队发现频繁地动态增减工具会导致缓存失效和模型行为混乱。更优的策略是保留所有工具,但通过“掩码”技术让模型在特定时刻只能“看见”和使用相关的工具,其他工具则暂时“隐藏”,从而维护缓存的稳定性和模型的清晰性。
🧠 **文件系统作为“外挂大脑”,突破上下文窗口限制**:当任务复杂且需要大量信息时,即使再大的上下文窗口也可能达到极限。Manus团队将文件系统视为一个“外挂大脑”,让模型在需要时能够主动从文件系统中检索信息,从而能够处理更复杂的任务,确保信息的随时可得。
📈 **保留Agent错误历史,促进模型持续学习**:Agent在执行任务过程中犯错是常态。Manus团队建议不要急于删除Agent的错误记录,而是将其保留在上下文中。这样,模型在后续的交互中能够“看到”自己过去的“弯路”,从而从中学习并避免重复犯错,提升整体的可靠性。
🎭 **增加少样本提示的多样性,避免模型“套路化”**:当上下文中的示例高度同质化时,模型容易陷入“套路化”的思维模式,机械地重复相同的操作。Manus团队通过在少样本提示中引入适当的变化和“花样”,能够保持模型的新鲜感和灵活性,避免其决策陷入僵化。
Manus 团队发布 Blog,解密上下文工程实践
这是花了用几千万美元学费,实际各种踩坑,才得到了一些反共识的经验
非常宝贵
1. 上下文工程比“从头造轮子”更香
Manus团队一开始就决定:别自己训练大模型,直接用现成的模型,把精力放在“怎么喂模型好吃的上下文”上。这样产品能快速迭代,模型升级了,产品也能跟着飞。
2. KV缓存命中率,省钱又提速的秘密武器
KV缓存就像“记忆力外挂”。只要上下文前缀不变,模型能复用之前的计算,推理又快又省钱。比如,缓存命中时的成本能比没命中便宜10倍!所以,团队拼命想办法让上下文“长得一样”,别乱动。
3. 上下文只加不改,别乱动历史
就像写日记,不能回头改昨天的内容。只往后追加新内容,这样缓存才不会失效。哪怕是小小的时间戳变化,也会让缓存白搭。
4. 工具多了别乱删,掩码比删除更聪明
Agent能用的工具越来越多,像超市货架一样。以前想着动态加减工具,结果缓存全失效,模型还晕头转向。后来学聪明了:工具都留着,用“掩码”让模型只看到该用的那几个,其他的暂时“隐身”。
5. 文件系统是超级外挂记忆
上下文窗口再大也有极限,怎么办?Manus直接把文件系统当成“外挂大脑”,模型需要啥就去文件里找。这样任务再复杂也不怕,信息随时能查回来。
6. 错误要留下,别急着擦屁股
Agent犯错很正常,别急着把错误删掉。把“走过的弯路”留在上下文里,模型下次看到就能学乖,不会老是踩同一个坑。
7. 少样本提示别太单一,适当加点花样
如果上下文里全是一样的例子,模型容易“套路化”,一直重复同样的操作。Manus会故意加点小变化,让模型保持新鲜感,避免陷入“机械式”决策。
Manus 上下文工程实践的原文:
https://manus.im/blog/Context-Engineering-for-AI-Agents-Lessons-from-Building-Manus
