一句话总结:OpenViking 会把“原样堆历史”的长会话,改成“先召回该带的,再归档该存的”。
OpenClaw 的对话一长,贵和健忘往往会一起出现。
前面的历史越堆越厚,每一轮都要再带一次;真到该用时,关键偏好和结论还埋在流水账里。
我这次回头看这条链路,最有用的判断其实很简单:
OpenViking 本质上是在给 OpenClaw 补一层上下文治理。它管的不是“记不记得”这一个点,而是每一轮回复前到底该带什么、该放远什么、该把什么沉成以后还能命中的记忆。
所以它同时碰两件事。
一边让 prompt 不再一路膨胀。
一边让长期信息不必每次都靠整段聊天硬带。
先看 without / with OpenViking 的差别
| 场景 | 没有 OpenViking 时常见情况 | 有 OpenViking 之后更像什么 |
|---|---|---|
| 当前会话 | 历史消息越堆越厚,越聊越重 | 只把当前活跃区留在前台,旧内容转去摘要和索引 |
| 记忆使用方式 | 关键偏好、案例、实体埋在 transcript 里 | 先做 recall,把最相关的少量记忆带回来 |
| 成本形态 | 每轮都像把整段旧历史再读一遍 | 先看便宜层,再决定要不要拿更完整的内容 |
| 健忘表现 | 信息明明聊过,下一轮还是不稳 | 长期有用的信息会被提炼出来,后面更容易命中 |
| 长会话后果 | 花的钱越来越多,回答却不一定更稳 | 预算更可控,历史也更容易复用 |
如果你想先把一条 hello 请求背后到底塞了多少上下文看得更细,可以接着读 OpenClaw的 Hello 为什么这么费 Token?我顺着源码终于懂了。
它到底插在什么位置
把 OpenClaw 的长会话简化看,OpenViking 主要插在两个时刻:回复前的 recall,以及历史变厚后的 commit。
- 新消息进来,系统先看这一轮眼下还活跃的上下文。
recall开始工作,从摘要、索引、长期记忆里找这一轮最该带回来的少量内容。- 本轮 prompt 组装完成,模型基于“当前消息 + 活跃区 + 召回结果”来回答。
- 对话继续变长后,系统再做
commit,把旧历史压缩、归档,并沉出更适合长期复用的记忆。
可以把它概括成这样:
新消息进入
-> 保留当前 active messages
-> recall:从摘要、索引、记忆里找最相关内容
-> 组装本轮 prompt
-> 模型回复
-> 会话变厚后触发 commit
-> 旧内容压缩成 summary / archive index
-> 长期有用的信息沉成更稳定的记忆
这一步很关键。因为真正进模型的,不再只是完整 transcript,而是“当前最需要的上下文组合”。
recall 这一步,决定它会不会把无关历史也塞回来
很多长期记忆系统,问题不在“记不住”,而在“记得太杂”。
OpenViking 这条路更像分层探测:先用便宜的层筛,再决定要不要下钻到更完整的层。
| 层级 | 会先看到什么 | 适合干什么 |
|---|---|---|
| L0 | 一句话抽象 / abstract | 先快速判断这条记忆像不像现在要找的东西 |
| L1 | 概览 / overview | 补更多上下文,确认值不值得继续带 |
| L2 | 完整内容 / full | 只有真的需要细节时才展开 |
这样做的价值很直接。
先扫 L0,成本低。
需要更多判断时再看 L1。
真要落到完整细节,再去碰 L2。
后面通常还会接去重、重排、分数过滤、token budget 裁剪这些动作。
最后真正被塞回 prompt 的,不该是一长串“看起来相关”的候选,而是这一轮最值得占位置的那几条。
commit 这一步,决定它会不会越聊越贵
只要会话够长,系统就不可能永远把原始消息挂在前台。
会话里的 pending_tokens 一高,OpenViking 就要开始处理“历史怎么收口”这件事。
它更像做三件事:
- 把旧对话压成能快速回忆的 summary。
- 给归档内容留一个 archive index,后面还能追溯。
- 把当前最该参与推理的消息继续留在 active messages。
于是上下文从“无界追加”,变成了“前台活跃区 + 后台可回查区”的结构。
旧内容没有消失,只是离开了每一轮都最贵的位置。
如果你想把这里的“token 为什么能降”继续对到账单上的输入 Token、输出 Token、Cache hit,可以再看 大模型 API 的输入 Token、输出 Token、Cache hit,为什么价格差这么多?。
它为什么能同时治“贵”和“健忘”
把这件事拆开看,就顺了。
第一层,贵,常常贵在每一轮都把太多旧东西重新带进去。
OpenViking 通过压缩、索引、分层召回,让真正留在前台的内容少很多。
第二层,健忘,常常不是因为历史不存在,而是因为历史只有原始聊天记录这一种形态。
当偏好、实体、事件、案例、模式这些内容被提炼出来后,后面的命中方式就变了。它们不必每次都躺在几百行 transcript 里等模型自己翻。
第三层,贵和健忘本来就是一件事的两面。
你把所有历史都原样带着,成本会高;你把历史全丢着不整理,命中会差。OpenViking 真正做的是把“历史存在”变成“历史可用”。
什么时候值得上 OpenViking
如果你只是偶尔开几轮短对话,它未必会排在最前面。
可一旦出现下面这些信号,优先级就会明显往上走:
- 同一个 session 会连续跑很久
- system prompt、tools、skills 这些固定前缀本来就重
- 用户偏好、项目约束、解决过的案例需要跨轮复用
- 你已经开始频繁
new、compact,成本还是不稳,回答也还是会漏
我更愿意把它看成 OpenClaw 进入长会话后的治理层。
延伸阅读
- OpenClaw 的 Hello 为什么这么费 Token?我顺着源码终于懂了:OpenClaw 一跑 Hello 就很烧 Token,根子不在模型贵,而在上下文链路太长。顺着源码拆开请求路径、上下文拼接和调用轮次,就能看明白钱到底花在哪。
- 大模型 API 的输入 Token、输出 Token、Cache hit,为什么价格差这么多?:输入 Token 主要花在批量读,输出 Token 主要花在逐个写,Cache hit 则是前面算过的别再算。看懂 prefill、decode 和 KV Cache,为什么价格差这么多就会一眼清楚。
- AI公司正在失去定义自己边界的能力:OpenAI主动送5%股权,Anthropic被五角大楼逼拆护栏。看似截然不同的选择,底层逻辑一样:AI公司的独立性窗口正在关闭。互联网公司走了二十年的路,AI只用了四年。
- AI的账单到了:花旗限制旗舰模型、扎克伯格承认Agent不如预期、谷歌用电量超新西兰——三条新闻串起同一个转折:从不计代价追求能力到在成本约束下找最优解。免费午餐阶段结束了。

评论区
欢迎留下你的看法,支持匿名评论。
你的评论会公开展示,建议填写便于交流的昵称,并尽量提供有信息量的反馈。