Problem Statement
当使用支持大上下文窗口的模型(如 mimo-v2-pro,1M tokens)时,插件的 commitTokenThreshold(默认 20000)会导致过早触发压缩——仅用了模型上下文的 ~2% 就开始归档。由于 OpenViking 插件的压缩机制与 OpenClaw 自带的有损压缩不同,归档的消息可以在后续对话中被重新加载回上下文,因此压缩阈值必须 < 模型上下文窗口的 50%,以预留空间给归档内容回放。目前用户每次切换模型都需要手动计算并修改该值,既不直观也容易出错。
Proposed Solution
将固定的 commitTokenThreshold 替换为基于百分比的阈值,自动从当前模型的 contextWindow 计算得出。例如,设置 commitTokenThresholdRatio: 0.38 表示在模型上下文窗口的 38% 时触发压缩。插件应从 OpenClaw gateway 的模型配置中读取当前模型的 context window 并自动计算有效阈值。如果同时设置了固定值和百分比,百分比优先。
Alternatives Considered
- 保留固定值,文档说明用户应手动计算 → 不可行,容易出错且不支持模型切换
- 插件运行时自动读取模型 context window 并设为 40%,无需用户配置 → 简单但不够灵活
- 由 OpenClaw context engine 将模型 context window 作为 hint 传给插件 → 最理想但需要 OpenClaw API 变更
Feature Area
Session Management
Use Case
我使用 OpenClaw + OpenViking 插件进行长期记忆管理。主力模型 mimo-v2-pro 拥有 1M token 上下文窗口,但偶尔会切换到较小的模型(262K、200K)。我希望压缩阈值能自动适应:
- 1M 模型:约 400K tokens 时压缩,留足空间给归档消息回放
- 200K 模型:约 76K tokens 时压缩,仍在安全范围内
- 切换模型时无需手动修改配置
Example API (Optional)
{
"openviking": {
"commitTokenThresholdRatio": 0.38,
"commitTokenThreshold": 20000
}
}
优先级:commitTokenThresholdRatio > commitTokenThreshold > 默认值 20000。设置了 ratio 则有效阈值 = contextWindow * commitTokenThresholdRatio。
Additional Context
与插件作者确认过,OpenViking 的压缩机制与 OpenClaw 内置压缩不同——归档消息可以被重新加载回上下文,因此阈值必须 < 模型上下文窗口的 50%。当前默认值 20000 是为小模型设计的保守值,无法适配现代大上下文模型。
Contribution
Problem Statement
当使用支持大上下文窗口的模型(如 mimo-v2-pro,1M tokens)时,插件的 commitTokenThreshold(默认 20000)会导致过早触发压缩——仅用了模型上下文的 ~2% 就开始归档。由于 OpenViking 插件的压缩机制与 OpenClaw 自带的有损压缩不同,归档的消息可以在后续对话中被重新加载回上下文,因此压缩阈值必须 < 模型上下文窗口的 50%,以预留空间给归档内容回放。目前用户每次切换模型都需要手动计算并修改该值,既不直观也容易出错。
Proposed Solution
将固定的 commitTokenThreshold 替换为基于百分比的阈值,自动从当前模型的 contextWindow 计算得出。例如,设置 commitTokenThresholdRatio: 0.38 表示在模型上下文窗口的 38% 时触发压缩。插件应从 OpenClaw gateway 的模型配置中读取当前模型的 context window 并自动计算有效阈值。如果同时设置了固定值和百分比,百分比优先。
Alternatives Considered
Feature Area
Session Management
Use Case
我使用 OpenClaw + OpenViking 插件进行长期记忆管理。主力模型 mimo-v2-pro 拥有 1M token 上下文窗口,但偶尔会切换到较小的模型(262K、200K)。我希望压缩阈值能自动适应:
Example API (Optional)
{ "openviking": { "commitTokenThresholdRatio": 0.38, "commitTokenThreshold": 20000 } } 优先级:commitTokenThresholdRatio > commitTokenThreshold > 默认值 20000。设置了 ratio 则有效阈值 = contextWindow * commitTokenThresholdRatio。Additional Context
与插件作者确认过,OpenViking 的压缩机制与 OpenClaw 内置压缩不同——归档消息可以被重新加载回上下文,因此阈值必须 < 模型上下文窗口的 50%。当前默认值 20000 是为小模型设计的保守值,无法适配现代大上下文模型。
Contribution