FanetheDivine/dsh-plugin-om ↗★ 2

dsh-plugin-om

通过观察性记忆方式管理会话上下文 适合需要优化长会话上下文、通过观察和反思自动压缩Token用量的任务。

包名
dsh-plugin-om
兼容性
待验证
版本
0.0.40
许可证
MIT
最近更新
2026年9月20日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:FanetheDivine/dsh-plugin-om

配置覆盖

编辑 $DSH_HOME/profiles/ /cordis.patch.yml,删除空数组并加入,可热更新:

- id: dsh-plugin-om
  config:
    observeThresholdTokens: 35000

插件配置项

键默认含义
observeThresholdTokens35000净压力达到该值时触发观察压缩
reflectThresholdTokens40000全部 `` 块 token 合计达到该值时触发反思合并
compressMaxTokens不设置压缩循环单轮生成上限,不设置时由模型适配器默认值决定
compressProvider不设置压缩请求的 provider,与 compressModel 成对配置才生效,只配置其一回落会话路由,成对配置后未路由会话也会执行压缩
compressModel不设置压缩请求的模型,与 compressProvider 成对配置才生效
compressReasoningEffort不设置压缩请求的思考等级,需为目标模型支持的等级,不设置时用模型默认;配置值不被目标模型支持时降级为模型默认并输出 reasoning-effort-unavailable 警告(每会话一次)
rateLimitWaitMs60000遇 429 限流后下一次压缩请求前的等待毫秒数,0 不限流
tailMessageCount20观察触发后等待新增完整消息达到该条数才执行压缩,0 表示触发当轮立即执行
compressSkipReasoningtrue工具循环 getHistory 输出是否携带 `` 参考条目,true 时不携带,压缩指令同步省略对应说明
modelDir共享目录recall-semantic 嵌入模型目录,默认 $DSH_HOME/plugin-data/dsh-plugin-om/models/,onnx 缺失且启用语义召回时运行时自动下载
omEnabledtrue是否启用自动压缩,关闭后 recall 工具不受影响
debugdev步骤级日志开关,缺省按 NODE_ENV 非 production 判定,压缩结果与失败日志始终输出
recallEnabledtrue是否注册 recall 工具
semanticRecallEnabledtrue是否注册 recall-semantic 工具,关闭时不触发模型下载

检测到未压缩消息到达观察阈值后,插件会等待至少 tailMessageCount 后再压缩之前的消息,因此这个配置可以影响首次压缩的时机,也可以保留更多的会话信息。

合理设置 observeThresholdTokens 和 compressSkipReasoning:

  • 若模型 reasoning 输出质量差且会把关键结论以 text 形式输出(例如glm和deepseek),无需携带reasoning
  • 若使用 openai/responses 或 anthropic/messages API,reasoning 内容包含大量决策信息,建议携带reasoning
  • 若观察阈值太小,涵盖信息不足以形成逻辑链路,应当让观察阈值覆盖多个 text/reasoning
  • 若观察阈值太大摘要质量也会降低,大幅增加单次观察的耗时,且越早 OM 收益越高

想直观理解机制并估算不同参数下的 token 成本,可打开交互式机制说明与成本计算器。