主题
分层记忆如何控制上下文长度、延迟和 Token 成本?
题型:调优 · 目标不是塞满上下文窗口,而是保留完成任务所需的信息。
建议回答
先为系统规则、当前问题、工具 Schema、检索证据和输出分别设置 Token 预算,再动态选择记忆。最近几轮保留原文,较早历史用增量摘要;长期记忆按当前任务检索并设置相关性、时效性和数量阈值;Scratchpad 只保留未完成计划和必要 Observation,已经完成且可总结的步骤进行压缩。
摘要不必每轮同步执行,可以在消息达到阈值后异步生成并缓存,缓存键包含会话版本和摘要 Prompt 版本。简单请求走小上下文和小模型,复杂 Agent 才加载更多记忆。通过上下文利用率、输入 Token、TTFT、摘要命中率和任务成功率评估,不能只追求 Token 下降。
常见优化
- 工具结果结构化裁剪,原始大对象保留引用。
- 相似历史去重,过期偏好降权或删除。
- RAG 证据与长期记忆分别排序,避免互相挤占。
- 对关键约束使用结构化任务状态,不完全依赖自然语言摘要。
易错点
- 摘要越短不一定越好,可能丢失约束和否定条件。
- 使用更长上下文模型并不能自动解决注意力稀释。