来源:Context Engineering for AI Agents: Lessons from Building Manus
Manus项目在初期面临关键选择:是训练端到端模型还是基于前沿模型的上下文学习能力构建智能体。作者通过回顾NLP领域的经验,特别是GPT-3出现后上下文学习的重要性,明确选择了上下文工程。虽然这一过程充满挑战,甚至被称为“随机研究生下降”,但Manus团队通过实践总结出了一套有效原则,旨在提升AI智能体的性能、效率和稳定性。
KV-缓存优化设计
- KV-缓存命中率是生产级AI智能体最重要的指标,直接影响延迟和成本。
- 智能体中输入与输出令牌比高度倾斜(Manus平均100:1),KV-缓存能显著降低首令牌生成时间(TTFT)和推理成本(如Claude Sonnet可达10倍节省)。
- 优化实践包括保持提示前缀稳定(避免时间戳)、上下文只追加不修改、确保序列化确定性,并根据需要显式标记缓存断点。
掩盖而非移除工具
- 随着智能体能力增强,其行动空间(工具数量)会爆炸式增长,动态添加或移除工具会使KV-缓存失效并混淆模型。
- Manus采用上下文感知的状态机管理工具可用性,通过在解码期间“掩盖”令牌logits来防止或强制选择特定行动,而非实际移除工具。
- 利用模型提供商支持的响应预填充功能(如Hermes格式的Auto、Required、Specified模式),结合行动名称的统一前缀,有效约束行动选择。
将文件系统用作上下文
- 即使是128K+的上下文窗口在真实智能体场景中也常不足且昂贵,且模型性能在长上下文下会下降。
- Manus将文件系统视为“终极上下文”:大小无限、持久化、可由智能体直接操作,模型按需读写文件作为结构化的外部记忆。
- 压缩策略设计为可恢复的,例如仅保留网页URL或文档路径,而非永久丢失内容,从而在缩短上下文长度的同时不损失信息。
通过复述操纵注意力
- 智能体在复杂任务中易漂移或遗忘早期目标,尤其是在长上下文或多步骤任务中(Manus平均50次工具调用)。
- Manus通过不断重写
todo.md文件,将目标复述到上下文末尾,将全局计划推入模型的近期注意力范围,避免“中间遗忘”问题并减少目标错位。
保留错误信息
- 智能体犯错是常态,隐藏错误(如清理痕迹、重试)会移除模型学习和适应的证据。
- 在上下文中保留错误的行动及其观察结果或堆栈跟踪,能让模型隐式更新内部信念,降低重复相同错误的可能性,这是真正智能体行为的关键指标。
避免少样本陷阱
- 少样本提示在智能体系统中可能适得其反,因为语言模型擅长模仿模式,导致在重复性任务中陷入“惯性”而产生漂移、过度泛化或幻觉。
- 解决方案是增加多样性:Manus在行动和观察中引入少量结构化变体(如不同的序列化模板、措辞、格式噪声),以打破模式并调整模型的注意力,避免因上下文过于统一而使智能体变得脆弱。
