← 返回题库
Agent 智能体中等

Agent 长程任务怎么管上下文?上下文超限怎么办?

#上下文管理#长程任务#压缩#状态外置

题目

Agent 执行长程任务(数十步、跨会话)时上下文会爆炸。请列出管理上下文的工程手段。

参考答案

问题:Agent 每步都把历史(思考、行动、观察)拼进 prompt,几十步后上下文超窗口;即使不超,注意力也会被稀释,模型”忘了”早期关键信息。

管理手段

1. 滚动窗口

  • 只保留最近 N 轮交互,旧部分丢弃。
  • 简单但会丢早期关键信息,适合短任务。

2. 摘要压缩

  • 用 LLM 把旧历史压缩成摘要,摘要替代原文。
  • 可分层:摘要的摘要(多级金字塔),支持超长任务。
  • 注意:摘要会丢细节,关键决策点需保留原文。

3. 结构化状态外置

  • 把关键信息抽到结构化状态(JSON/数据库),而非塞进 prompt。
  • 如:任务进度、待办清单、已收集事实、关键变量。
  • prompt 只放当前需要的少量状态,按需检索。

4. 记忆系统(短期 + 长期)

  • 短期:当前上下文窗口,放最近步骤。
  • 长期:向量库/键值库存历史事实,需要时检索召回。
  • 类似人脑的工作记忆与长期记忆分工。

5. 子任务分解

  • 把长任务拆成子任务,每个子任务独立 Agent 独立上下文。
  • 主 Agent 只汇总各子任务结果,避免单上下文承载全部。
  • LangGraph 的子图天然支持此模式。

6. 检查点(Checkpoint)

  • 定期把状态持久化,失败可回滚。
  • 长任务中断后续跑靠 checkpoint 恢复。

7. 上下文路由

  • 不同子任务用不同模型/不同上下文配置,按需加载。
  • 简单子任务用小模型短上下文,复杂推理用大模型长上下文。

实战组合

  • 短任务(< 10 步):滚动窗口即可。
  • 中等任务(10–50 步):滚动 + 摘要。
  • 长任务(50+ 步):结构化状态外置 + 长期记忆 + 子任务分解。
  • 跨会话:长期记忆库 + checkpoint。

面试加分点

  • 强调”上下文不是越多越好”——无关内容稀释注意力,召回关键信息变难(“lost in the middle”现象)。
  • 结构化状态外置是生产 Agent 的关键:把”工作记忆”从 prompt 移到外部,prompt 只放当下所需。
  • LangGraph 的 checkpointer + store 是工程化这两层记忆的典型实现。

出处:Agent 工程面经、LangGraph 文档。

内容来源

整理自 Agent 工程面经

本站内容整理自公开面经与开源仓库,仅供学习交流,严禁杜撰。