Whning0513/deepseek-protocol-doctor

Whning0513★ 1Python最后同步: 2026-08-14

在 GitHub 打开

Checks DeepSeek tool loops, reasoning_content, strict schemas, and captured SSE. Also works as a DSH plugin.

README 摘要

DeepSeek Protocol Doctor English 中文 我在接 DeepSeek tool calling 时碰到过几类很像“模型抽风”的问题:工具结果明明传回去了,请求还是 400;流式输出看着正常,最后拼出来的参数却不是 JSON;同一段 history 在关掉 thinking 后能跑,打开就报错。 最后发现不少问题都出在请求和响应的拼接上。于是写了这个小工具,把 request JSON 或 SSE 录制丢进去,先排查这些常见坑。它只看你给它的内容,不会调用模型。 装到 DSH 里 demo 换成你正在用的 profile: 重启 DSH 后会多出两个工具: - deepseek protocol check :检查请求和消息历史。 - deepseek stream check :检查保存下来的 SSE / JSONL 流。 比如可以直接对 DSH 说: 插件需要 Python 3.10+。一般能在终端里运行 python3 就行;如果 Python 装在别处,可以设置 DSV4 DOCTOR PYTHON 。 当作 Agent Skill 用 仓库里也带了一个标准 SKILL.md : skills/deepseek-protocol-doctor 。DSH 会从项目的 .agents/skills/ 、 .dsh/skills/ ,以及用户目录下的对应位置自动发现它。其他兼容 Agent Skills 的客户端也可以直接复制这个目录。 例如装到当前项目的共享目录: Skill 只负责把排查步骤组织好,实际协议检查仍调用同一套 dsv4-doctor ,没有第二份实现。 命令行用法 不想安装也可以直接跑: check 接受完整的 OpenAI-compatible 请求,也接受单独的 messages 数组。 stream 接受 SSE 和 JSONL。 退出码 1 表示查到了 error。warning 默认不拦 CI;需要严格一点时加 --fail-on-warning 。 现在能查什么 - tool message 找不到对应的 tool call id ,或者一轮调用还没收齐结果就开始了下一轮; - thinking 工具循环里,assistant 原样返回的 reasoning content 被客户端丢掉; - function.arguments 还没拼完就被当成 JSON 解析; - 多个流式 tool call 的 delta 交错到达,客户端却按到达顺序直接追加; - strict schema 漏了 required 或 additionalProperties: false ; - max tokens 、thinking mode 和 /beta 路由里几个容易忽略的配置。 报告里每条问题都有固定 cod…

在 GitHub 查看完整 README →
Tools / Devdeepseekdeepseek-v4dshdsh-pluginllmopenai-compatiblesariftool-calling

分类