随着大模型(LLM)能力的日益强大,如何有效地向它们输入信息,决定了模型性能的成败。这便引出了“上下文工程”的概念,它正在迅速成为构建智能Agent的核心环节。 本文将深入探讨上下文工程的重要性,以及当前领先团队正在使用的四种关键策略,帮助开发者构建更智能、更稳定的 Agent。

什么是上下文工程?

上下文工程,简单来说,就是设计和管理输入到大模型中的信息的艺术。它涉及到选择哪些信息包含进来,哪些信息排除在外,以及何时将这些信息提供给模型。其目标是优化模型接收到的“上下文”,从而提高其在特定任务中的表现。

上下文工程为什么重要?

每个大模型都存在一个“上下文窗口”的限制,即模型一次能够“看到”的信息量是有限的。 虽然像GPT-4和Claude这样的模型可以扩展到数十万个token,但单纯的扩展并不能从根本上解决问题,反而增加了风险。 当上下文窗口溢出时,Agent就会出现各种问题,例如:

  • 幻觉(Hallucination): 模型生成不真实或矛盾的信息。
  • 注意力分散(Distraction): 模型无法集中精力完成任务。
  • 遗忘(Forgetting): 模型忘记目标、误用工具或重复工作。

这些问题被称为上下文中毒上下文混乱上下文分散,它们并非理论上的可能性,而是在实际应用中真实存在的挑战。

四大上下文工程策略

为了构建更智能的Agent,而不让它们被无关数据淹没,领先的团队正在使用以下四种关键的上下文工程策略:

1. 卸载存储(Write: Store outside the window)

核心关键词:存储卸载

Agent不需要将所有信息都保存在工作记忆中。 而是应该将信息卸载到结构化的存储系统或草稿纸上,从而释放LLM的短期记忆,专注于当前最重要的任务。

实际案例:Anthropic的LeadResearcher Agent

Anthropic的LeadResearcher Agent就是一个很好的例子。它将其不断演变的计划存储在外部存储器中,这使得它能够在会话之间持续进行复杂的推理,而不会超出20万个token的限制。

类比思考: 将LLM的记忆视为外部硬盘驱动器,而不是随机存取存储器(RAM)。硬盘驱动器用于长期存储,而RAM用于短期处理。通过将不必要的信息存储在硬盘驱动器上,可以释放RAM空间,从而提高处理效率。

实践建议:

  • 使用向量数据库或知识图谱等工具来存储和管理大量信息。
  • 设计一个清晰的存储结构,方便Agent快速检索所需信息。
  • 定期清理和更新存储器,确保信息的准确性和相关性。

2. 精准检索(Select: Pull in only what matters)

核心关键词:精准检索

不要将整个数据库都塞进模型。 而是应该使用检索系统(例如RAG、过滤器或嵌入)来仅提取最相关的信息。

实际案例:Claude和Cursor

  • Claude使用开源选择器来对有用的上下文进行分块和评分。
  • Cursor,一个开发Agent,使用规则文件来过滤哪些上下文规则是活动的。

数据支撑: 研究表明,向模型提供更多相关信息,而不是更多信息,可以显著提高模型性能。

类比思考: 在大海捞针时,与其盲目地捞取每一根针,不如使用磁铁来精准地吸取所需的针。

实践建议:

  • 使用语义搜索或关键词搜索等技术来提高检索的准确性。
  • 建立一个反馈循环,根据Agent的表现不断优化检索策略。
  • 考虑使用多阶段检索,先进行粗略筛选,再进行精细过滤。

3. 压缩摘要(Compress: Summarize without losing meaning)

核心关键词:压缩摘要

在上下文爆炸之前,对其进行压缩。 总结长时间的交互、工具输出或用户会话,以便模型保留关键信息,而不是无关紧要的内容。

实际案例:Claude Code

Claude Code包含一个自动压缩层。当缓冲区接近其限制时,它会重新总结完整的任务历史记录,使Agent保持知情但精简。

类比思考: 就像项目经理在截止日期前自动进行总结一样,只保留关键要点。

实践建议:

  • 使用自动摘要算法或人工摘要来压缩文本。
  • 确保摘要保留了原始文本的关键信息和上下文。
  • 定期更新摘要,以反映最新的信息和进展。
  • 使用递归摘要,对长文本进行分段摘要,然后再将摘要进行摘要,以此类推,最终得到一个高度浓缩的摘要。

4. 隔离上下文(Isolate: Split context by agent)

核心关键词:隔离上下文

不要使用一个大型的Agent,而是使用多个专业的Agent。 每个Agent都有一个精简的上下文视图,只包含他们需要知道的信息。

实际案例:Anthropic的经验

Anthropic发现,具有独立角色的Agent(例如规划者、执行者、调试者)比一个过度臃肿的通才Agent表现更好。

类比思考: 分而治之。不要让一个Agent承担所有的记忆任务,而是将记忆任务分配给多个Agent。

实践建议:

  • 将复杂的任务分解为多个子任务。
  • 为每个子任务创建一个专门的Agent。
  • 确保Agent之间能够有效地沟通和协作。
  • 使用Agent Orchestration框架,例如LangChain,来管理和协调多个Agent。

上下文工程的未来

上下文工程 不仅仅是一个简单的技巧,而是一种全新的架构思维。 那些率先采用上下文优先架构的开发者,将为下一代智能助手奠定基础。这些助手不仅会更聪明,还会更稳定、高效和具有自我意识。

长期来看,上下文工程的重要性将体现在以下几个方面:

  • 降低成本: 通过减少token的使用量,可以降低大模型的使用成本。
  • 提高效率: 通过缩短响应时间,可以提高Agent的效率。
  • 增强可靠性: 通过减少幻觉和注意力分散,可以增强Agent的可靠性。
  • 实现更复杂的功能: 通过管理更长的上下文,可以实现更复杂的任务和功能。

结论

上下文工程是提升大模型Agent性能的关键。 通过采用存储卸载精准检索压缩摘要隔离上下文等策略,开发者可以构建更智能、更稳定、更高效的Agent,从而在AI领域取得更大的突破。在构建用于工作流程、支持、研发或多工具执行的长期运行Agent时,这些模式不仅仅是锦上添花,而是运营保障。未来,谁掌握了上下文工程,谁就能在AI的浪潮中立于不败之地。 因此,现在就开始关注上下文工程,并将其应用到你的AI项目中,将是你迈向成功的重要一步。