上下文工程(Context Engineering)

在 Agent 循环运行过程中,系统会不断产生海量数据(系统提示词、用户输入、历史对话、工具描述、工具返回结果、RAG 数据、状态信息等)。上下文工程就是对这些信息进行筛选、压缩、隔离,精确选取合适的内容放入下一轮模型调用的上下文窗口,以获得最佳输出效果。

为什么不能”全量塞入”?

  1. 窗口限制:模型上下文窗口有限,日志一次返回就可能上万 token
  2. 注意力稀释:Transformer 的自注意力机制要求每个 token 与所有其他 token 建立关系。上下文越长,模型注意力越分散,越难找到关键信息
  3. 信息污染:冗余或有害的上下文会干扰模型决策

四大管理策略(LangChain 框架)

策略说明
写上下文(Write)如何高效构建上下文内容
选上下文(Select)从海量信息中筛选最相关部分
压缩上下文(Compress)在不丢失关键信息的前提下减少 token
隔离上下文(Isolate)不同任务使用独立的上下文空间,避免互相污染

工程实践

  • 渐进式加载(Agent Skill 方案):提示词不再一次性全量加载,而是以文件系统形式存放,按需读取(类似懒加载)
  • 子 Agent 隔离(如 Hermes Agent):子 Agent 看不到父 Agent 上下文,只返回结果,大幅减少主上下文中的冗余信息
  • Prompt Caching:静态内容(系统提示词、工具描述)前缀缓存,减少重复计算

相关概念

  • Agent — 上下文工程所服务的核心系统
  • Agent Skill — 通过渐进式加载实现上下文优化