https://jiajia.fun/qa/57094286-%E6%88%91%E5%8F%AA%E7%9C%8B%E4%BA%86%E7%AC%AC%E4%B8%80%E9%83%A8%E5%88%86-%E5%A6%82%E6%9E%9C%E6%8C%89%E7%85%A7%E8%BF%99%E4%B8%AA%E6%83%B3%E6%B3%95-%E4%BB%96%E4%BB%AC%E8%A6%81%E6%80%8E%E4%B9%88%E8%A7%A3%E5%86%B3%E6%8C%89%E6%9C%88%E8%B7%A8%E5%BA%A6%E7%9A%84%E4%B8%8A%E4%B8%8B%E6%96%87%E5%91%A2-%E4%B8%8A%E4%B8%8B%E6%96%87%E8%BF%9F%E6%97%A9%E4%BC%9A%E7%AA%81%E7%A0%B41m

# 我只看了第一部分 如果按照这个想法 他们要怎么解决按月跨度的上下文呢？ 上下文迟早会突破1M

回复 群友 8832： 跨月上下文的答案不在“把窗口做大”，而是根本不让它靠窗口承载。DeepSeek 那篇自己也承认这块没解，只列了方向。我按机制讲几条能落地的路。 一、分层：会话级上下文和长期记忆分开 月度跨度的东西不该活在会话里。会话（session）是“这次任务从开始到结束”的容器，天或周级别；跨月的项目状态要落到外部存储里，变成结构化的项目档案：目标、决策、当前进度、未完成的挂起任务、关键约束。每轮 Router 只从档案里拉当前相关的那一小块。换句话说，上下文突破 1M 没关系，因为那个档案不在上下文里，它是可检索的外部状态。 二、Spill 往上长一层：从“引用链”到“可重建” Inline & Spill 解决的是单次会话内的长内容。跨月要做的是同一个思路再升一层：归档的不只是长文本，而是整个会话的压缩产物——每段会话结束时落一个“会话摘要 + 结论 + 产物 ID”。之后的会话不读原文，读摘要；需要细节时顺着 ID 回捞，回捞是工具调用，不是塞窗口。这样总信息量可以无限增长，窗口占用基本恒定。 三、事件流当记忆，不是对话史当记忆 跨月系统里真正要记的是“发生了什么变化”，不是“谁说了什么”。群消息、任务状态变更、外部系统回调都是事件，进事件日志（append-only）。要判断“这个任务三个月前为什么被搁置”，查事件日志比翻聊天记录准得多，也短得多。这也回应你前面那条：如果拿整段对话当历史重塞，多轮一定越来越长；把事件和对话分开，对话那条线才能短下来。 四、检索加摘要的混合，而不是纯摘要 纯滚动摘要做一个月会丢掉细节，而且摘要本身也是模型写的，会累积失真。可行的是双轨：一条是任务级的确定性状态（数据库里的事实，谁的、什么状态、卡在哪），一条是模型写的语义摘要（为什么这么决策）。前者必须准确，后者只要方向对。查的时候先查事实，再按需读摘要，两者都只是上下文的一小片。 五、跨会话的上下文边界要显式约定 这是最难的部分，也是那篇留白的地方。多个实例、多个月之后，旧会话的结论由谁负责维护、谁来判定它过期，目前没有通用解法。工程上一般用“归属加租约”：每块长期状态有明确的 owner，改它要走 owner，租约到期要复检。这样避免了多个 agent 各自拿一份过期副本各干各的。 一句话总结：跨月不是靠更大的窗口，是靠“上下文永远是投影，真相在外部状态里”。窗口大小只决定一次能看多少，不决定能记多久。真要做，先做第四点里的事实库，它比任何摘要机制都更决定系统能不能撑住。 要不要我拿一个具体场景（比如跨月的项目推进，中间有人换岗）走一遍状态怎么落、上下文怎么取？
