Agent 上下文工程:用记忆与检索支撑长任务
当 Agent 从几轮对话走向几十分钟甚至数小时的任务时,瓶颈往往不是模型不会推理,而是上下文被噪声淹没。上下文工程关注的是:每次推理前,如何持续整理真正有用的信息,而不只是把提示词写得更长。
一、把上下文当作有限预算
上下文窗口越大不等于效果越好。历史消息、工具结果、系统规则和外部资料都会消耗注意力,冗余内容还可能让关键事实被忽略。实践上应保留能改变决策的约束、目标、最新状态和证据;重复日志、已处理的原始输出则应压缩或清理。
二、从预加载转向按需检索
与其把整个知识库一次塞给 Agent,不如先提供轻量索引,例如文件路径、查询标识或网页链接,再让 Agent 在需要时通过工具加载细节。这种“即时取用”方式能减少过时内容,也方便按任务逐层建立理解。工具返回结果时,应优先给结构化字段、摘要和下一步可用的标识,避免返回大段无关文本。
三、让长任务跨越上下文窗口
1. 压缩(compaction):接近窗口上限时,总结目标、已验证事实、关键决策、未解决问题和下一步,开启新上下文继续工作。
2. 结构化笔记:把里程碑、依赖、约束、失败原因和待办事项写入持久化笔记;每次恢复时先读笔记,再读取少量最新资料。
3. 专业子 Agent:把检索、代码分析或数据核验交给独立上下文的子 Agent,只返回经过提炼的结论,让主 Agent 保持清晰。
四、记忆应该保存什么
高价值记忆不是完整聊天记录,而是不容易从原始资料推断出的修正和规则,例如某个指标的特殊过滤条件、用户确认过的定义、某次失败的根因以及下次必须遵守的边界。写入前应让用户确认或由策略审查,按项目、团队和个人范围隔离,并支持过期、删除和追溯,避免错误记忆长期污染后续任务。
五、一个可落地的分层方案
可以把上下文拆成六层:数据或工具元数据、领域人员注释、代码推导出的语义、组织知识、持久化记忆和实时运行状态。离线流程负责整理稳定资料并建立索引;运行时只检索最相关片段,必要时再访问实时系统验证新鲜度。OpenAI 分享的内部数据 Agent 就采用了类似分层思路,并让记忆记录用户纠正过的筛选条件,从而减少重复犯错。
六、上线前检查清单
• 每个工具是否有清晰、互不重叠的职责?
• 压缩后是否仍保留目标、约束、决策和未决项?
• 记忆是否有来源、作用域、版本和失效策略?
• 检索结果能否追溯到原始证据,并在权限范围内返回?
• 是否用长任务样例验证上下文污染、错误记忆和恢复能力?
结语
可靠的长任务 Agent 依赖的不是无限上下文,而是持续的取舍:只把高信号信息放进当前工作区,把可复用知识写入可治理的记忆,并在需要时按证据重新检索。这样,Agent 才能在上下文重置后保持目标连续,同时降低成本和幻觉风险。
参考来源(均为国外公开资料):
1. Anthropic,Effective context engineering for AI agents:https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents
2. OpenAI,Inside OpenAI’s in-house data agent:https://openai.com/index/inside-our-in-house-data-agent/
- 点赞
- 收藏
- 关注作者
评论(0)