SoL-dsh:把 SoL-Pi 四种效率机制装进 DSH

前言

在 DeepSeek Harness(DSH)里跑 agent,常见开销来自几类重复劳动:改完文件还要再开一轮让模型跑校验命令;工具返回一大段日志把上下文撑满;构建输出只能整段塞进对话;计划步骤做完却迟迟不压缩历史。NVlabs 的 SoL-Pi 针对这类问题设计了四种效率机制。社区维护者 jackiehank 的 SoL-dsh(包名 @jackiehank/sol-dsh)把它们适配成 DSH 的 Cordis 插件包,在插件页按需开关,不替换 DSH 原有界面。

下面介绍它是什么、四个机制分别做什么,以及如何在桌面端或其它 profile 安装与配置。

这是什么

SoL-dsh 一句话定位:把 SoL-Pi 的四种效率机制移植到 DSH,以插件 bundle 形式挂载在 Host 与 Client 两侧。仓库 github.com/jackiehank/SoL-dsh,MIT 许可证;维护者在 README 中写明在 DSH 0.2.1-rc.3 上实测。四个机制默认全部关闭,安装后要在插件详情里的 机制开关 逐个打开才会生效。

机制 英文全名 短名 作用概要
动作融合 Action Fusion 融合 edit/write 后在同一调用里跑校验/构建命令,省一次模型往返
长输出寄存 ObservationPack 寄存 超大工具结果存本地,上下文只留句柄,需要时用 obs_recall 分页召回
诊断日志回执 Evidence-Preserving Reducer 回执 构建/测试日志压成逐字可核验的回执,对不上就退回原文
在线上下文压缩 Online Context Compact 压缩 计划步骤完成点触发原生 compaction,压缩后同一 turn 继续

SkillHub 目录页:https://www.skillhub.cn/plugins/jackiehank/SoL-dsh(社区插件目录,与 DeepSeek / 幻方无官方从属关系)。

核心功能

界面与统计

启用后有两处加法式 UI,不覆盖 DSH 原界面:

  • 每轮尾行:一轮结束时显示类似 本轮:融合 1 · 寄存 1 · 回执 0 · 压缩 0;四项全零时不显示。
  • 输入框下方:已省 12.3k tok · 16.8%,点击可展开本会话节省明细(寄存 / 回执 / 压缩 / 融合及百分比)。数字来自 Host 侧按整条会话日志折叠的投影;分页、重启、关掉机制不会清零历史统计。

工作方式(摘要)

  • 动作融合:在各 agent scope 注册遮蔽版 edit/write,schema 继承内建定义并增加可选 then_run;命令仍走 pwsh/bash 的审批、沙箱与输出截断。
  • 长输出寄存:在 tools/post-execute 阶段、结果写入日志前替换 content(value 不变);原文按内容寻址归档,通过 obs_recall {id, offset} 按字节分页读回。仅处理超过 10 KiB 的纯文本工具结果。
  • 诊断日志回执:只处理 pwsh/bash 的构建/测试类命令输出(≥ 4 KiB、无疑似密钥);先归档再用 ctx.llm 做受限调用,回执中每条引文须逐字出现在原文,否则整体退回原文。
  • 在线上下文压缩:观察 todo_write,在旧步骤变为 completed 的边界用 ctx.tokenMeter 选区间;仅当经济性成立才调用 ctx.compaction.compactRegion,且不注入「继续工作」类消息。

阈值(如 10 KiB 寄存、16 KiB/400 行召回等)未对用户开放;细节见仓库 docs/plugin.md 与 docs/issues/。

环境与排障

  • DSH_SOL_DSH_HOME:归档根目录,默认 <DSH_HOME>/sol-pi;归档为本地明文,可能含日志敏感内容,不要指向共享目录。
  • DSH_SOL_DSH_DIAGNOSTICS=1:启动时注册 sol_dsh_status 排障工具,可报告动作融合在各 agent 上的安装情况。

安装与启用

插件以当前 DSH 进程权限运行;安装前应自行查看仓库源码与 MIT 许可证,确认符合你的安全策略。

桌面端(DSH Desktop,0.2.1-rc.3 实测)

  1. 侧栏打开 插件;
  2. 点 添加插件(或箭头 → 安装第三方插件);
  3. 填写 Git 地址 github:jackiehank/SoL-dsh 并安装;
  4. 装完后刷新页面——否则 Client 半不会加载尾行、节省面板和机制开关。

桌面 profile 由 Electron 持有,CLI 会拒绝其插件管理请求;请在应用内安装,不要手改 profile 目录。

其他 profile(web / headless)

在 PowerShell 或其它 shell 中执行(命令来自仓库 README):

dsh plugin --profile web add github:jackiehank/SoL-dsh

将 web 换成你实际使用的 profile 名。

装完后四个机制仍为关;在插件页 SoL-dsh 效率包 → 机制开关 里打开需要的项。开关即时生效并写回 profile 配置。

升级与卸载

桌面端无「更新」按钮:包已声明时重复安装会被 already-installed 拒绝。先移除,再用同一入口安装新版本,然后刷新页面。Host 半改动需重载插件或重启 DSH;Client 半改动必须刷新页面。

配置

推荐用插件页图形开关;等价于在 profile 的 cordis.patch.yml 中写入如下结构(默认值与 README 一致):

- id: sol-dsh
  name: '@jackiehank/sol-dsh'
  config:
    version: 1
    actionFusion: false
    observationPack: false
    evidencePreservingReducer: false
    evidencePreservingReducerProvider: ''
    evidencePreservingReducerModel: ''
    onlineContextCompact: false
    cacheWriteReadRatio: 12.5
键 默认 说明
actionFusion false 动作融合
observationPack false 长输出寄存
evidencePreservingReducer false 诊断日志回执
evidencePreservingReducerProvider 空 回执 provider;留空为默认路由
evidencePreservingReducerModel 空 回执模型;留空为默认路由
onlineContextCompact false 在线上下文压缩
cacheWriteReadRatio 12.5 与上游同名;当前保留并校验,暂未参与决策

典型用法与边界

典型用法不是单独再写一套 CLI,而是在 agent 会话里按需打开机制:

  1. 安装并刷新页面后,在插件页打开 融合 或 寄存 等开关;
  2. 正常对话:用带 then_run 的 edit/write 触发融合;大工具输出触发寄存后,模型可通过 obs_recall 分页读回;
  3. 跑 pwsh/bash 构建/测试且输出足够大时,回执 可能替换上下文中的冗长日志;
  4. 用 todo_write 推进计划时,步骤完成边界可能触发 压缩(仅当 token 经济性成立)。

README 明确的部分边界:只针对 DSH 0.2.1-rc.3 验证;更老版本无 sessionProjections 时历史统计会退回扫当前快照;then_run 的输出在 post-execute 之后追加,回执机制看不到它;回执在逐字校验失败、疑似密钥、或回执体积不小于原文时会回退,不硬压。

本地开发时:仓库根 pnpm install,用 plugin_manager 的 install_bundle 指向仓库根(link 模式);Host 半改动重载插件,Client 半改动刷新页面。

适用谁、注意什么

适合已经在 DSH 上跑 coding agent、希望减少 token 与往返次数、又愿意逐项理解机制取舍的开发者。四个机制可以只开其中几项;默认全关,避免未读文档就改变 agent 行为。

兼容性以 README 为准:Host 半与 Client 半更新方式不同;插件页若没有 机制开关,先确认包已启用并刷新页面。更完整的 FAQ(尾行不显示、寄存未触发、压缩未发生等)见仓库 README 常见问题 一节。

结尾

SoL-dsh 把 SoL-Pi 的动作融合、长输出寄存、诊断日志回执与在线上下文压缩接到 DSH 插件体系里,用开关控制、用会话级统计反馈效果。需要机制说明与安装细节时,可直接查阅 GitHub README 与目录页:

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye