智能体的上下文工程

正如操作系统管理 CPU 的内存,上下文工程是填充 LLM 上下文窗口这块“数字RAM”的艺术与科学。

LLM 如 CPU

模型的推理核心

上下文窗口如 RAM

有限的工作记忆

🏷️ 分类: 技术 人工智能
🔖 标签: #LLM #上下文工程 #智能体 #AI工具 #AI编程

挑战:当“内存”溢出

过长的上下文会稀释关键信息,导致智能体性能下降。这就是我们需要上下文工程的原因。

上下文中毒

错误的幻觉信息污染了上下文,导致后续决策基于错误的前提。

上下文分心

大量无关信息淹没了模型的注意力,使其偏离了核心任务指令。

上下文混淆

冗余或模糊的上下文影响了响应的精确性,导致输出模棱两可。

上下文冲突

上下文中存在相互矛盾的信息,使模型难以抉择和生成一致的回答。

解决方案:上下文工程四大支柱

通过系统化的策略,我们可以精巧地管理上下文,让智能体在每个决策步骤都拥有最恰当的信息。

写入 Write

将上下文“存档”

将信息保存到上下文窗口之外,以备后续使用,避免当前窗口拥挤。

暂存器 (Scratchpads)

在单次任务会话中记录中间思考、计划或结果,就像人的草稿纸。

LLM Context
会话内状态/文件

长期记忆 (Memories)

跨越多个会话,沉淀和反思经验,形成持久的知识,如 ChatGPT 的记忆功能。

LLM Context
跨会话记忆库
选择 Select

精准“调取”信息

在需要时,从外部存储中检索最相关的信息,注入到当前上下文窗口。

按需检索

通过 RAG 等技术,从海量知识库、记忆库或工具集中,根据当前任务语义,精确匹配并提取所需上下文。

从知识库/记忆检索相关事实
从工具库检索适用工具

记忆类型

不同类型的记忆服务于不同目的。

类型 存储内容 智能体示例
语义记忆 事实 关于用户的偏好信息
情景记忆 经验 过去成功的操作序列
程序记忆 指令 核心系统提示或行为准则
压缩 Compress

精炼上下文“Token”

保留任务所需的核心信息,去除冗余,以更少的 Token 承载等效信息量。

上下文总结

使用 LLM 自身的能力,将冗长的对话历史或工具返回结果总结成简短的摘要。

长篇对话历史...工具输出...冗余信息...
摘要: 完成了用户认证,获取了文件列表。

上下文修剪

通过硬编码规则或训练模型,直接删除不相关或过时的信息,如删除旧的对话消息。

保留信息1

保留信息2

待修剪信息

隔离 Isolate

拆分上下文“空间”

将复杂的任务分解,让不同的上下文在独立的环境中处理,防止交叉干扰。

多智能体协作

将一个大任务分解为多个子任务,分配给拥有独立上下文窗口的专家智能体并行处理。

中央规划器
子智能体 A
(独立上下文)
子智能体 B
(独立上下文)

环境/沙箱隔离

将代码执行或重量级对象(如图像)置于沙箱环境中,仅将关键结果传回 LLM,保持主上下文轻量。

LLM Agent
沙箱环境
(执行代码/存对象)