🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

Yukari316/dsh-toolcall-compat

DeepSeek Harnessspec-screened扫描:中风险在 GitHub 查看 ↗
未验证

修复在DSH中使用自定义提供方模型时会遇到的toolcall json…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/21 · 已提供中文文档

修复在DSH中使用自定义提供方模型时会遇到的toolcall json schema被错误解析后不断产生错误toolcall的问题,同时提供长时间等待toolcall跳过的功能。

综合分
26.7
GitHub 分
26.7
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Yukari316/dsh-toolcall-compat
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
信任档位:仅索引本站尚未对其实装验证,仅收录元数据
是什么
dsh 原生插件 · tool
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
更新放缓:最近一次提交在 35 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

数据截至 2026/9/22(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-llm@deepseek-ai/dsh-sandbox-policy@deepseek-ai/dsh-session@deepseek-ai/dsh-settings@deepseek-ai/dsh-tools@deepseek-ai/dsh-typert-protocol@deepseek-ai/schemastery
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-toolcall-compat

注意!这是大肥鱼100%纯vibe出来的插件,没有人类了,因为我不会写ts和前端(

DSH 插件,解决第三方模型(GPT 等)用 DSH ToolCall 时的两个问题:

1. 模型错误解析tool call schema中的 sandbox_permissions / justification 参数,导致每次重试都带入了这些不必要的参数导致tool call失败; 尤其是GPT-5.6-sol!
2. 某些工具调用长时间不返回,整个回合卡住,并且无法跳过只能干等。

- npm:https://www.npmjs.com/package/@yukari316/dsh-toolcall-compat

功能一:兼容模式(schema-fix)

由于 DSH 对tool call的升级参数校验很严格:

- sandbox_permissions 和 justification 必须成对出现,且 justification 必须是非空句子,否则报错 invalid justification: expected a non-empty sentence;
- 请求的 sandbox_permissions 必须严格宽于当前生效模式,否则报错 sandbox escalation to "..." is not strictly wider than this call's current "..." mode。

GPT 这类模型经常把这两个字段塞进每一次调用,结果就是每次重试都在同一个错误上失败。工具参数在派发时会被 deepFreeze,下游 hook 改不了,所以这个插件在更上游的 llm/stream 流里修改错误的tool call请求:agent loop 是用流里的 block-end chunk 组装 assistant 消息的,在这里改写 tool-call 块的 arguments。

开关默认开启。只影响带这两个键的tool call,一般为修改文件的这类tool,其余参数、调用 ID、工具名没有修改。

参数被剥离的那次调用,卡片上会有一个黄色的 compat bypass 徽标,方便你看出这次调用被改过。

功能二:跳过卡住的调用(stuck-skip)

对于一部分会直接卡死对话的tool call,dsh目前还不能直接中断tool call或者设置tool call超时,导致session除了手动停止之外只能一直被卡住,这个功能在tool call超出一定时间后(默认15s)在tool call上方提示疑似执行时间过长,并添加跳过按钮

⚠ 工具调用长时间未响应:bash(已运行 42s)[跳过]

在点「跳过」之后:

没有响应的tool call会被终止,LLM会在下一步看到提示:skipped because unresponsive ... do not retry,并且能够继续任务执行。

安装

装好 DSH 之后,一条命令搞定,不用改任何配置文件。

方式一:官方命令(需要 pnpm)

dsh plugin --profile web add @yukari316/dsh-toolcall-compat

方式二:没有 pnpm,用 npm

npx -y @yukari316/dsh-toolcall-compat

这个命令会:把包装进 web profile 的 node_modules、自动在 profile 的 dsh.profile.bundles 里注册插件并提示重启。想装到别的 profile 就加 --profile 。

怎么确认生效

让模型(比如 GPT 5.6 Sol)执行一次会触发沙箱权限的工具调用:

- 不再报 invalid justification / sandbox escalation ... not strictly wider,说明兼容模式在工作;
- 装了插件前后的调用日志里,带 sandbox_permissions / justification 的调用数量会明显减少。

更新 / 卸载

更新:

dsh plugin --profile web update @yukari316/dsh-toolcall-compat   # pnpm
或者
npx -y @yukari316/dsh-toolcall-compat                            # npm,重复执行即更新

卸载:从 profile 的 package.json 里删掉 dsh.profile.bundles 中的 @yukari316/dsh-toolcall-compat 和 dependencies 里的对应项,再重启 dsh web。

设置项

| 字段 | 默认 | 说明 |
| --- | --- | --- |
| enabled | true | 兼容模式总开关 |
| renderEscapes | true | 展开卡片时把转义序列显示成字符 |
| stuckAfterMs | 15000 | 调用运行超过多久才提示可跳过(1–600s) |

设置界面随包发布。想改默认值,可以在 $DSH_HOME\settings.yaml 里加一段:

toolcall-compat:
enabled: true
renderEscapes: true
stuckAfterMs: 15000

从源码构建

npm install
npm run build   # tsc → lib/,再把 client 半部打成 DSH 浏览器 bundle
npm test        # 契约测试

npm publish 前会自动重新构建(prepack)。

License

MIT © Yukari316

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群