上下文工程(Context Engineering)
在 Agent 循环运行过程中,系统会不断产生海量数据(系统提示词、用户输入、历史对话、工具描述、工具返回结果、RAG 数据、状态信息等)。上下文工程就是对这些信息进行筛选、压缩、隔离,精确选取合适的内容放入下一轮模型调用的上下文窗口,以获得最佳输出效果。
为什么不能”全量塞入”?
- 窗口限制:模型上下文窗口有限,日志一次返回就可能上万 token
- 注意力稀释:Transformer 的自注意力机制要求每个 token 与所有其他 token 建立关系。上下文越长,模型注意力越分散,越难找到关键信息
- 信息污染:冗余或有害的上下文会干扰模型决策
四大管理策略(LangChain 框架)
| 策略 | 说明 |
|---|---|
| 写上下文(Write) | 如何高效构建上下文内容 |
| 选上下文(Select) | 从海量信息中筛选最相关部分 |
| 压缩上下文(Compress) | 在不丢失关键信息的前提下减少 token |
| 隔离上下文(Isolate) | 不同任务使用独立的上下文空间,避免互相污染 |
工程实践
- 渐进式加载(Agent Skill 方案):提示词不再一次性全量加载,而是以文件系统形式存放,按需读取(类似懒加载)
- 子 Agent 隔离(如 Hermes Agent):子 Agent 看不到父 Agent 上下文,只返回结果,大幅减少主上下文中的冗余信息
- Prompt Caching:静态内容(系统提示词、工具描述)前缀缓存,减少重复计算
相关概念
- Agent — 上下文工程所服务的核心系统
- Agent Skill — 通过渐进式加载实现上下文优化