dsh-model-compat-guard:DSH 第三方模型兼容守卫

DeepSeek Harness (DSH) 的设计理念是「一切皆插件」。在使用第三方模型(如 GPT、Qwen-thinking)时,模型往往不适应 DSH 的某些内部机制,导致压缩失败、沙箱提权报错或工具调用异常。dsh-model-compat-guard 是一个第三方模型兼容守卫插件,通过拦截和修复特定类型的请求,解决这些高频兼容性问题。

核心功能

该插件通过 DSH 的插件机制对请求流进行干预,主要修复以下四个问题:

  1. 思考型模型压缩截断
    根因是 dsh-compaction-basic 的默认 maxTokens 限制为 8192,而思考型模型的思考 token 会计入同一输出预算,容易烧穿限制。插件会拦截 purpose === "compaction" 的请求,将 maxTokens 提升至 32768(可配置),并将推理档位降至模型支持的最便宜档,避免截断报错。

  2. 沙箱提权请求失败
    在沙箱执行器挂载时,工具 schema 会全局广告 sandbox_permissions 字段,而实际模式是按会话解析的。当模型在 danger-full-access 模式下申请提权时,因无法找到更宽的模式且 justification 必须非空,会导致 fail-closed。插件会解析 ctx.sandboxPolicy,剥离必败的提权请求(sandbox_permissions + justification),按当前模式执行。

  3. 工具描述缺失
    bash、run_code 等工具将 description 设为必填,模型经常漏传。插件拦截 tools/execute 流水线,在严格校验前检查 schema:若必填的 description 缺失,会自动合成(如 bash 取命令首行,run_code 取首行有效代码)。

  4. Code Mode run_code 高频报错
    模型生成的 TS 程序语法不完整(如引号未配对)或错误使用 bash 结果(将其当作字符串而非结构化对象)。插件检测 Code Mode 请求(仅 run_code 工具时),在 system prompt 末尾追加纪律块,规范工具返回值读取方式。

安装与启用

安装插件需要指定固定版本 v0.4.0。安装后需重启 DSH 进程使配置生效。

dsh plugin --profile web add github:782042369/dsh-model-compat-guard#v0.4.0

卸载命令:

dsh plugin --profile web remove dsh-model-compat-guard

配置与典型用法

插件支持在 ~/.dsh/compat-guard.json 中进行配置。默认配置已覆盖常见场景,零配置即可使用。

配置文件示例 (~/.dsh/compat-guard.json):

{
  "compactionMaxTokens": 32768,
  "compactionEffort": "auto",
  "compactionPurposes": ["compaction"],
  "fillDescription": true,
  "descriptionTools": ["bash", "run_code", "subagent", "subagent_fork", "workflow"],
  "codeDiscipline": "off",
  "stripEscalation": "redundant",
  "unknownPolicy": "preserve",
  "modelInfoTtlMs": 300000,
  "modelInfoTimeoutMs": 5000,
  "logFixes": true
}

配置项说明:
* compactionMaxTokens:压缩请求的 token 上限,默认 32768。
* compactionEffort:推理档位,"auto" 选最便宜档,"keep" 不动。
* stripEscalation:提权剥离策略,"redundant"(默认,仅剥必败请求)、"always"(连合法提权也剥)、"off"。
* codeDiscipline:Code Mode 纪律,"off"(推荐使用原生 ~/.dsh/AGENTS.md)、"auto"、"always"。
* fillDescription:是否自动填充缺失的工具描述,默认 true。

测试命令:

node test/smoke.mjs

适用场景与注意事项

该插件适用于在 DSH 中使用 GPT、Qwen-thinking 等思考型模型,或遇到 Code Mode 报错的场景。

  • 运行环境:仅支持 Node.js >= 20.0.0。
  • 权限说明:插件以当前 DSH 进程权限运行,安装前建议检查 GitHub 源码。
  • 许可证:MIT 许可证。

总结

dsh-model-compat-guard 通过拦截和修复请求流,解决了第三方模型在 DSH 环境下的兼容性问题。它不需要复杂的配置即可运行,适合需要稳定使用思考型模型或 Code Mode 的开发者。

GitHub 仓库

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

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

小夜