本专题横跨智能体设计与模型训练两侧,以智能体设计为主。
要解决的问题
在长程任务中,智能体的轨迹不断变长,历史对话和工具返回的内容迅速堆满上下文。这会推高延迟和成本,还会让模型更容易忽略上下文中间的信息(「中间迷失」)。
核心方法
运行时一侧(智能体框架层面):
- 历史摘要与压缩:把早期的对话和观察压缩成摘要。
- 观察裁剪与工具返回精简:只保留与当前任务相关的内容。
- 提示与 KV 缓存复用:前缀一致且缓存仍有效时,复用之前的预填充结果,减少重复计算。它不会缩短逻辑上下文、消除这些 token 的 KV 存储需求,也不等同于减少输入 token 数;计费优惠取决于服务规则。
- 检索式按需注入:信息先放在外部,需要时再检索进上下文。
- 子任务隔离上下文:把子任务交给独立的上下文处理,只把结果带回主任务。
训练一侧(模型层面):
- 训练模型简洁作答,以及更节省 token 的推理方式,比如简洁的思维链。
- 在强化学习中加入长度惩罚。
- 让模型能按给定的思考预算控制推理长度。
代表工作
- Lost in the Middle(2023):发现模型对长上下文开头和结尾的信息利用得较好,对中间位置的信息利用明显变差。
开放问题
- 压缩造成的信息损失如何评估。
- 效率与可靠性之间如何权衡。
- 缺少统一的「上下文经济学」指标。
参考资料
相关专题
- 工具使用与智能体设计:本专题主要服务的对象。
- 智能体记忆:把信息移出上下文、需要时再取回。
- 推理能力与思维链:推理长度的控制。
- 指令微调与偏好优化:训练模型简洁作答。
- 知识蒸馏与小模型:训练侧的相关方法。
- PagedAttention与KV缓存管理:前缀缓存复用。