DeepSeek Harness (DSH) 的设计理念是「一切皆插件」。在使用第三方模型(如 GPT、Qwen-thinking)时,模型往往不适应 DSH 的某些内部机制,导致压缩失败、沙箱提权报错或工具调用异常。dsh-model-compat-guard 是一个第三方模型兼容守卫插件,通过拦截和修复特定类型的请求,解决这些高频兼容性问题。
核心功能¶
该插件通过 DSH 的插件机制对请求流进行干预,主要修复以下四个问题:
-
思考型模型压缩截断
根因是dsh-compaction-basic的默认maxTokens限制为 8192,而思考型模型的思考 token 会计入同一输出预算,容易烧穿限制。插件会拦截purpose === "compaction"的请求,将maxTokens提升至 32768(可配置),并将推理档位降至模型支持的最便宜档,避免截断报错。 -
沙箱提权请求失败
在沙箱执行器挂载时,工具 schema 会全局广告sandbox_permissions字段,而实际模式是按会话解析的。当模型在danger-full-access模式下申请提权时,因无法找到更宽的模式且 justification 必须非空,会导致 fail-closed。插件会解析ctx.sandboxPolicy,剥离必败的提权请求(sandbox_permissions+justification),按当前模式执行。 -
工具描述缺失
bash、run_code等工具将description设为必填,模型经常漏传。插件拦截tools/execute流水线,在严格校验前检查 schema:若必填的description缺失,会自动合成(如bash取命令首行,run_code取首行有效代码)。 -
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 的开发者。