前言¶
DeepSeek Harness (DSH) 生态支持通过插件扩展功能。部分 GPT/Codex 模型在执行写操作时,会习惯性附带 sandbox_permissions 和 justification 字段。DSH 将这两个字段定义为沙箱拒绝后的单次提权重试。同级或更窄的请求会在工具执行前被拒绝。这导致工具调用反复失败。yaoay/dsh-gpt-compat 专门处理 GPT/Codex 沙箱提权参数的兼容性问题,通过清理冗余字段,让工具按当前会话策略正常执行。
插件定位¶
yaoay/dsh-gpt-compat 是一个面向 DeepSeek Harness 的 GPT/Codex 沙箱提权参数兼容插件。该项目由 YaoaY 维护,采用 MIT 许可证。
核心功能¶
该插件主要提供以下能力:
- 处理冗余参数:识别并处理模型发送的冗余沙箱提权参数。
- Fail-closed 安全策略:采用 Fail-closed 规则,只处理
providers和tools同时允许的调用,确保安全边界。 - Schema 验证:验证注册工具的 schema 是否同时声明了 DSH 的
sandbox_permissions枚举和justification字段。 - 清理冗余字段:只在能够证明请求冗余时删除这两个字段,让工具按当前会话策略执行。
安装与配置¶
将插件安装到目标 DSH profile:
dsh plugin --profile web add dsh-gpt-compat
插件安装后需要配置。默认 bundle 配置如下:
providers: ["*"]
tools: ["bash", "pwsh", "write", "edit"]
| 字段 | 类型 | 默认值 | 含义 |
|---|---|---|---|
providers |
string[] |
[] |
允许处理的 provider id。空数组停用插件;显式 '*' 表示所有 provider。 |
tools |
string[] |
['bash', 'pwsh', 'write', 'edit'] |
允许处理的 DSH 原生提权工具名。空数组停用插件。 |
若需通过 profile 或 home 级 cordis.patch.yml 覆盖,需重述完整配置:
- id: gpt-compat
config:
providers: ["your-gpt-provider"]
tools: ["bash", "write", "edit"]
使用注意¶
- 环境依赖:插件依赖 Node.js 20 或更高版本。
- 安全规则:Fail-closed 规则要求真正扩权的请求必须带非空理由。插件不会将缺少非空理由的扩权请求降级为普通调用。
- 配置停用:若
providers或tools为空,插件会被停用。 - 权限注意:插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
结语¶
该插件通过智能清理冗余参数,解决了 GPT/Codex 模型与 DSH 沙箱策略冲突导致工具调用失败的问题,提升了 Agent 的稳定性。
插件目录:https://www.skillhub.cn/plugins/YaoaY/dsh-gpt-compat
仓库地址:https://github.com/YaoaY/dsh-gpt-compat