OpenViking 上下文数据库 | 08 - 会话如何变成长时记忆:Session 与 Compressor 这是 OpenViking 系列的第 8 篇。上一篇我们讲了语义检索:OpenViking 如何在viking://文件系统、L0/L1/L2 分层上下文和 ContextType 之上,让 Agent 找到更可解释的结果。这一篇继续看另一个非常关键的问题:Agent 的对话历史,如何变成未来还能继续使用的长期记忆?如果 Agent 每次对话结束后什么都不留下,那么它下一次仍然像第一次见你。如果 Agent 把所有历史原文都塞进 prompt,那么上下文会越来越长,成本越来越高,噪声也越来越多。OpenViking 的 Session 机制,就是在这两者之间建立一个工程化折中:当前对话先记录为消息。到合适时机执行commit()。原始消息进入归档。归档生成摘要和概览。有价值的信息被提取成长期 Memory。后续检索和对话可以复用这些沉淀。这篇解决什么问题很多人第一次做 Agent 记忆时,会有两个极端想法。第一个极端是:直接把所有历史消息都带上。这个方案简单,但很快会遇到问题:token 成本越来越高。长上下文里关键信息容易被淹没。