AI 简明手册
Agent 工程:从能跑到可控 · 先选控制方式上下文太长怎么办:压缩、外部笔记与拆分

上下文太长怎么办:压缩、外部笔记与拆分

定义

长任务中的挑战是上下文窗口有限而信息持续增长。常用策略包括 Compaction、结构化笔记和子 Agent:分别压缩当前对话、把状态外化、隔离深度探索;应按任务组合,而不是默认三者缺一不可。

先搭一个心智模型

长任务的上下文像一张不断堆文件的办公桌。常用的三种动作是:把旧材料压成摘要、把长期状态写进外部笔记、把独立问题交给另一张桌子处理。

说明

Compaction 在上下文接近上限时用 LLM 对已有对话做摘要,保留关键信息。需要区分信息风险等级:旧 tool call 结果通常可清理,但架构决策和未解决 bug 的描述不能丢。摘要应按“已完成、未完成、关键决策、已知问题”结构化。

结构化笔记把短期记忆外化为长期记忆:Agent 主动把关键信息写到外部文件,重置后从笔记读回恢复记忆。笔记格式要固定且结构化,否则读回时还要额外消耗 Token 理解。

子 Agent 架构让主 Agent 把深度探索委派给子 Agent,子 Agent 在独立上下文中工作,只返回精炼摘要。这样隔离了草稿对主上下文的污染,也节省 Token。预加载和按需获取是补充策略:高频信息预加载,长尾信息等需要时检索。

跟着一个例子走

一场持续数小时的线上故障排查

Agent 已看过大量日志、改过配置并跑了多轮测试,窗口开始被旧输出占满。

  1. 压缩已经结束的阶段

    把“发现什么、排除了什么、当前假设”写成可核对摘要,原始日志仍留在外部文件。

  2. 保存必须跨轮次的状态

    把待办、命令结果和回滚点写入任务笔记,新窗口从笔记恢复而不是猜。

  3. 隔离独立调查

    让子任务只分析某一类日志,主任务只接收结论和证据位置。

回到概念

压缩解决“太多”,外部笔记解决“别丢”,拆分解决“别混在一起”;三者职责不同。

边界与误区

  • Compaction 和结构化笔记有什么主要区别: Compaction 压缩旧信息继续留在当前上下文中使用,适合连续工作;结构化笔记把信息写到外部文件系统,之后按需取用,适合可能被中断或需要跨 session 延续的场景。

  • 为什么子 Agent 架构能节省主 Agent 的 Token 消耗: 子 Agent 在独立上下文中完成深度探索,只向主 Agent 返回精炼摘要,主上下文得以保持精简。