导语:当 Agent 从“单轮问答”走向“多步任务执行”,上下文不再只是一次请求的输入,而是一份需要持续维护的工作记忆。窗口有限、成本敏感、信息又不断累积,长上下文管理因此成为 Agent 工程化的核心问题之一。本文围绕摘要、检索与上下文窗口调度三条主线,梳理常见做法与工程权衡。本文为方法论层面的整理,不涉及具体产品版本与实测数据。
一、问题的起点:上下文为什么会“不够用”
Agent 的上下文压力来自几个方向的叠加:
- 任务链条变长:多步推理、工具调用、观察结果回填,使对话轮次和 token 数量持续增长。
- 工具输出体积大:检索结果、日志、文件内容、API 返回往往是长文本,且难以预先裁剪。
- 窗口存在硬上限:无论模型窗口多大,都存在边界;同时长上下文通常伴随更高的延迟与成本。
- 信息价值不均匀:早期对话可能包含关键约束,近期输出可能只是噪声,简单截断容易丢失要点。
因此,长上下文管理不是“把窗口撑大”,而是建立一套信息取舍与调度机制:什么该保留、什么该压缩、什么该放到外部、什么时候再取回来。
二、摘要:把历史压缩成可用的工作记忆
摘要的核心目标是把冗长的交互历史转化为结构化、低 token 但信息密度高的表示。
常见策略包括:
- 滚动摘要(Rolling Summary):当历史超过阈值时,将较早的对话压缩为摘要,保留近期原文。优点是实现简单,缺点是摘要可能丢失细节且误差会累积。
- 分层摘要:先对片段做局部摘要,再对局部摘要做更高层汇总,形成树状结构,便于按需展开。
- 结构化记忆:不写自由文本摘要,而是抽取为“目标、约束、已完成步骤、待办、关键事实”等字段。对 Agent 而言,结构化状态往往比自然语言摘要更稳定。
- 增量更新:每轮只更新变化部分,避免全量重写带来的成本与不一致。
工程上需要关注几个要点:
- 摘要触发条件:按 token 阈值、轮次数或任务阶段触发,避免过于频繁。
- 保真与可追溯:摘要应保留关键标识(如文件路径、参数、结论),必要时能回溯到原始记录。
- 防止摘要漂移:多轮压缩后信息可能失真,可通过定期以原始关键片段校正,或对关键约束做“钉住”处理。
三、检索:把上下文从“窗口内”扩展到“窗口外”
当信息量超过窗口承载能力时,更合理的做法是将其存放在外部存储,通过检索按需注入。这实际上是把上下文管理转化为一个检索与注入问题。
典型组成:
- 外部记忆存储:对话历史、文档、工具输出、任务中间产物分别落库,保留元数据(时间、来源、任务 ID)。
- 检索方式:关键词检索、向量检索或混合检索;对 Agent 场景,按任务、按步骤过滤往往比纯语义相似更有效。
- 注入策略:检索结果不应无脑拼接,需要控制条数、长度与优先级,并标注来源以便模型判断可信度。
- 写回机制:Agent 产生的新结论、新事实应写回存储,形成可复用的长期记忆。
需要警惕的权衡:
- 检索召回不足会导致关键信息缺失,表现为 Agent“忘记”约束;
- 检索过度注入会挤占窗口、引入噪声,甚至干扰当前推理;
- 检索质量依赖切分与索引设计,切分粒度过粗会带入无关内容,过细则丢失上下文。
一个实用原则是:窗口内放“当前决策必需”,窗口外放“可能有用但非必需”,通过检索在需要时补齐。
四、上下文窗口调度:把有限空间分配给最该放的内容
调度关注的是“这一轮请求里,窗口应该装什么”。它介于摘要与检索之上,是一个资源分配问题。
可参考的调度思路:
- 分层预算:为系统提示、任务目标、近期对话、检索片段、工具输出分别设定 token 预算,避免某一类挤占全部空间。
- 优先级排序:任务目标与硬约束优先级最高,其次是当前步骤相关证据,最后才是历史背景。
- 按阶段切换策略:探索阶段需要更多原始观察,收敛阶段更需要结论与约束,调度策略可随任务阶段变化。
- 淘汰与压缩并行:对低价值内容直接淘汰,对中价值内容压缩为摘要,对高价值内容保留原文。
- 工具输出的预处理:在回填上下文前先做截断、字段抽取或摘要,避免原始大文本直接进入窗口。
调度还需要考虑一致性问题:同一事实在窗口内不应出现互相矛盾的多个版本,否则会干扰模型判断。可通过“单一事实来源”与版本标记来缓解。
五、三者如何协同
摘要、检索与调度并非三选一,而是同一套记忆系统的三个环节:
- 摘要负责“压缩”,降低历史占用;
- 检索负责“外置与召回”,扩展可用信息边界;
- 调度负责“分配”,决定当前请求的窗口构成。
一个常见的闭环是:交互产生记录 → 记录落库并可检索 → 超阈值时触发摘要 → 每轮请求按预算与优先级组装窗口 → 关键结论写回长期记忆。这一闭环的具体参数(阈值、预算比例、检索条数)需要结合任务类型与模型特性调优,不存在通用最优配置。
六、趋势判断
- 从“塞满窗口”转向“管理记忆”:长上下文能力的提升不会消除管理需求,反而会让“如何选择信息”更重要。
- 结构化状态将更受重视:相比自由文本摘要,可校验、可更新的结构化记忆更利于多步任务的稳定性。
- 调度策略趋于显式化:把上下文预算与优先级写成可配置策略,而非隐含在提示词里,有助于调试与复现。
- 评估成为关键环节:需要针对“信息遗漏”“摘要失真”“检索噪声”建立可观测指标,否则优化缺乏依据。
结论
Agent 的长上下文管理,本质是在有限窗口与无限信息之间做持续取舍。摘要解决压缩,检索解决外置与召回,调度解决分配,三者共同构成 Agent 的工作记忆系统。工程落地的重点不在于追求某个单点技巧,而在于建立可观测、可调参、可回溯的记忆闭环。具体实现细节仍需结合真实任务负载验证,本文提供的是一套可复用的分析框架与设计思路。
生成标记:本文由 ITPUB 文章生成平台基于已选素材整理生成。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69925873/viewspace-3187432/
,如需转载,请注明出处,否则将追究法律责任。