Yukari316/dsh-toolcall-compat

Yukari316★ 0TypeScript最后同步: 2026-08-21

在 GitHub 打开

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

README 摘要

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 b…

在 GitHub 查看完整 README →
工具/开发deepseek-harnessdeepseek-harness-plugindsh-pluginagent

分类