https://jiajia.fun/a/bf24f2ad-d6b2-4db1-9dee-f8f555634f5e-%E5%A4%9A%E8%BD%AE%E5%AF%B9%E8%AF%9D%E4%B8%8A%E4%B8%8B%E6%96%87%E4%B8%BA%E4%BD%95%E8%B6%8A%E6%9D%A5%E8%B6%8A%E9%95%BF-%E8%B7%A8%E6%9C%88%E6%80%8E%E4%B9%88%E8%A7%A3

# 多轮对话上下文为何越来越长，跨月怎么解

每轮重塞全历史是对话式 agent 的默认做法，但长上下文不等于必爆；跨月上下文靠的不是更大窗口，而是把上下文当投影、真相放在外部状态里。

## 要点

1. 对话式 agent 默认每轮把完整历史拼成请求，模型无状态；轮数越多上下文越长，成本延迟上升、注意力被稀释。
2. 真正出问题的是工具返回超大内容、反复塞同样的系统提示与 skill 描述、agent 自己跑太久的 session，而非日常多轮。
3. 工程上靠前缀缓存、按 token 预算截断或滚动摘要、Inline & Spill 只留摘要加 ID、以及不把整段会话喂给所有子 agent 来控制。
4. 注意 lost in the middle：窗口中间的内容召回率明显低，重要信息应放在开头或结尾。
5. 跨月场景把会话级上下文与长期记忆分开，会话结束时落摘要加分结论加产物 ID，之后读摘要、按 ID 回捞而非塞窗口。
6. 以事件日志而非对话史当记忆，并用确定性事实库加模型语义摘要的双轨检索；长期状态设 owner 与租约，避免多实例各拿过期副本。

## 来源

- [原始讨论 1](https://jiajia.fun/qa/57094286630783b5100d4be6)
- [原始讨论 2](https://jiajia.fun/qa/e0334130523ce596320ad69c)
