Whning0513/deepseek-protocol-doctor ↗★ 1
dsh-deepseek-protocol-doctor
Offline DeepSeek request, tool-loop, reasoning_content, and SSE diagnostics for DSH
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Whning0513/deepseek-protocol-doctor说明文档
阅读完整 README ↗DeepSeek Protocol Doctor
English | 中文
我在接 DeepSeek tool calling 时碰到过几类很像“模型抽风”的问题:工具结果明明传回去了,请求还是 400;流式输出看着正常,最后拼出来的参数却不是 JSON;同一段 history 在关掉 thinking 后能跑,打开就报错。
最后发现不少问题都出在请求和响应的拼接上。于是写了这个小工具,把 request JSON 或 SSE 录制丢进去,先排查这些常见坑。它只看你给它的内容,不会调用模型。
装到 DSH 里
demo 换成你正在用的 profile:
dsh plugin --profile demo add github:Whning0513/deepseek-protocol-doctor
重启 DSH 后会多出两个工具:
deepseek_protocol_check:检查请求和消息历史。deepseek_stream_check:检查保存下来的 SSE / JSONL 流。
比如可以直接对 DSH 说:
用 deepseek_protocol_check 看看这个请求里的工具调用哪里不对:{ ... }
插件需要 Python 3.10+。一般能在终端里运行 python3 就行;如果 Python 装在别处,可以设置 DSV4_DOCTOR_PYTHON。
当作 Agent Skill 用
仓库里也带了一个标准 SKILL.md:skills/deepseek-protocol-doctor。DSH 会从项目的 .agents/skills/、.dsh/skills/,以及用户目录下的对应位置自动发现它。其他兼容 Agent Skills 的客户端也可以直接复制这个目录。
例如装到当前项目的共享目录:
mkdir -p .agents/skills
cp -R /path/to/deepseek-protocol-doctor/skills/deepseek-protocol-doctor .agents/skills/
Skill 只负责把排查步骤组织好,实际协议检查仍调用同一套 dsv4-doctor,没有第二份实现。
命令行用法
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e .
dsv4-doctor check fixtures/valid_tool_loop.json
dsv4-doctor check fixtures/invalid_tool_loop.json
dsv4-doctor stream fixtures/stream_interleaved.jsonl
不想安装也可以直接跑:
PYTHONPATH=src python -m dsv4doctor check fixtures/valid_tool_loop.json
check 接受完整的 OpenAI-compatible 请求,也接受单独的 messages 数组。stream 接受 SSE 和 JSONL。
退出码 1 表示查到了 error。warning 默认不拦 CI;需要严格一点时加 --fail-on-warning。
现在能查什么
- tool message 找不到对应的 ,或者一轮调用还没收齐结果就开始了下一轮;