主题
智能体执行长任务时,对话历史、工具结果和中间推理会不断累积,最终把上下文窗口塞满。这个问题不能只靠换更大窗口的模型解决。窗口变大不代表可以随便塞:上下文越长,中间信息越容易被模型忽略;同时推理速度变慢、成本上升。真正要考察的是上下文工程能力。
核心思路是把上下文当成稀缺资源管理,而不是无限垃圾桶。有限窗口里应该始终只保留当前任务最需要的信息。工程上主要有四种打法。
第一是高质量摘要压缩。当对话接近窗口上限时,对历史内容做结构化摘要,把重要信息带入新窗口。摘要不是简单压缩字数,而是要保留架构决策、未解决问题、关键中间结论、当前计划和待办;重复的工具返回、冗长试错过程、过期细节则应果断丢弃。这样模型可以“换气”,但任务记忆不断。
第二是外部记忆。上下文窗口相当于内存,外部文件、数据库、向量库或检查点相当于硬盘。长任务应把阶段性进展、关键状态、重要产物写到外部,重新打开会话时再读回。编程类长任务尤其适合建立任务清单和进度文件,每一轮基于外部记录增量推进。
第三是按需检索。不要把全部资料、代码和文档一次性塞进上下文,而是使用检索增强思路:需要哪份资料时再取,用完后让它淡出上下文。这样能保持窗口干净,避免无关信息挤占注意力。
第四是子任务拆分与隔离。复杂任务可以拆给多个子 Agent,每个子 Agent 在独立上下文里处理一小块,只向主 Agent 回传精简结论。繁琐中间过程被隔离在子任务里,主流程只保留高密度信息。
上下文管理的目标,是让窗口里只留下“下一步决策最需要的信息”。稳定执行长任务,靠的是压缩、外部存储、即时检索和子任务隔离的组合,而不是单纯堆更长窗口。
