DeepSeek Harness 插件:dsh-gpt-tool-compat

前言

某些模型调用方(例如通过第三方提供方路由的 gpt-5.6-terra)会给每一个工具调用都附上提权参数。这会导致调用在参数校验阶段失败。DSH 插件 dsh-gpt-tool-compat 解决了这个问题。

插件简介

这是一个非破坏性的 DSH 工具调用兼容层,由 YoungUsing 维护。它在 tools/pre-execute 阶段拦截并剥离必然校验失败的提权参数,把调用还原成模型本意要执行的普通调用。

核心功能

  1. 拦截与剥离:在 tools/pre-execute 阶段拦截提权参数。
  2. 容错处理:剥离空 justification 或不成对字段。
  3. 保留有效提权:允许真正更宽的提权(如 read-only -> workspace-write)通过。
  4. 异常保护:意外异常会被捕获并放行原调用。

安装与启用

方式 A:作为 bundle(推荐)

  1. 将本包装进 web profile 的 node_modules:
   cd $env:USERPROFILE\.dsh\profiles\web
   npm install <本包路径,如 D:\Users\yq\Documents\code-and-repos\dsh-workspace\dsh-gpt-tool-compat>
  1. 在 ~\.dsh\profiles\web\package.json 的 dsh.profile.bundles 数组里加入 "dsh-gpt-tool-compat":
   "dsh": {
     "profile": {
       "bundles": [
         "@deepseek-ai/dsh-base",
         "@deepseek-ai/dsh-web-app",
         "dsh-gpt-tool-compat"
       ]
     }
   }
  1. 重启 dsh web 服务并刷新页面。

方式 B:直接插行

  1. 同上安装包到 profile 的 node_modules。
  2. 在 ~\.dsh\profiles\web\cordis.patch.yml 里插入:
   - insert:
       - id: gpt-tool-compat
         name: 'dsh-gpt-tool-compat'
  1. 重启 dsh web 服务。

验证与用法

重启服务后,使用带空 justification 的工具调用测试,或观察之前失败的会话重试。调用应正常执行,不再报 invalid justification / not strictly wider 错误。

原理与安全边界

  • 剥离规则:仅作用于四种在任何沙箱模式下都必然被拒的情况:空/非字符串 justification、sandbox_permissions 与 justification 不成对、以及请求的模式不是当前有效模式严格更宽的提权。
  • 真实审批:真正的更宽提权(如 read-only → workspace-write + 有效理由)原样放行,照常走真实用户审批。
  • 异常处理:任何意外异常都会被捕获并放行原调用,本层永远不会让一个调用变得更糟。

注意事项

  • 仅剥离在任何沙箱模式下都必然被拒的参数。
  • 不改动原本能成功的调用。
  • 不绕过真实提权审批。
  • 不阻塞无法处理的调用。
  • 依赖 @deepseek-ai/cordis, @deepseek-ai/dsh-sandbox-policy, @deepseek-ai/dsh-tools。
  • 需要 Node >= 22。

结语

该插件提供了一个兼容层,在不破坏安全边界的的前提下,解决了特定模型调用方带来的参数校验问题。源码与许可证信息可参考目录页或 GitHub。

目录页:https://www.skillhub.cn/plugins/YoungUsing/dsh-gpt-tool-compat
GitHub:https://github.com/YoungUsing/dsh-gpt-tool-compat

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

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

小夜