🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

链路体检 yangjinbin2006/dsh-doctor

DeepSeek Harness
yangjinbin200611 天前有提交已提供中文文档扫描:无法判定

逐跳检查本地桥链路,定位首个断点并给出修复建议

30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add yangjinbin2006/dsh-doctor
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · chat
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 11 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/22) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 包内无可扫 JS
  • · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/10/31(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

检查 DeepSeek Harness 的本地桥接配置:配置、TCP、/v1/models、一次真实对话请求,把上游错误码转成原因和修复方法。

README

由 DeepSeek 最新模型翻译生成
dsh-doctor 一个给 DeepSeek Harness 做链路检查的小工具,专治挂了本地桥之后的各种不通。 dsh 本身可以接任何 OpenAI 兼容端点。前面加一层桥之后,大部分故障在聊天窗口里长得一样: 一个 400、一坨 JSON、一个错误码。错误码是唯一线索,但它基本不指向真正出问题的地方。 这个工具把链路按顺序走一遍,遇到第一处断点就停下:配置文件、TCP、/v1/models、一次真实对话请求。输出会告诉你是哪一跳失败,以及可以改什么。 只用 Python 标准库,3.8 以上,Windows、macOS、Linux 都能跑。 python dsh_doctor.py 链路正常时: dsh-doctor 1.0.0 [ OK ] dsh-home found dsh home [ OK ] patch-layer using ~/.dsh/profiles/desktop/cordis.patch.yml [ OK ] provider local-bridge -> http://127.0.0.1:8080/v1, 3 model(s) [supportsDeveloperRole=false, thinkingFormat=openai] chat-model, long-context-model, vision-model
展开完整文档(README 剩余 1 节)
dsh-doctor

一个给 DeepSeek Harness 做链路检查的小工具,专治挂了本地桥之后的各种不通。

dsh 本身可以接任何 OpenAI 兼容端点。前面加一层桥之后,大部分故障在聊天窗口里长得一样:
一个 400、一坨 JSON、一个错误码。错误码是唯一线索,但它基本不指向真正出问题的地方。

这个工具把链路按顺序走一遍,遇到第一处断点就停下:配置文件、TCP、/v1/models、一次真实对话请求。输出会告诉你是哪一跳失败,以及可以改什么。

只用 Python 标准库,3.8 以上,Windows、macOS、Linux 都能跑。

python dsh_doctor.py

链路正常时:

dsh-doctor 1.0.0
[ OK ] dsh-home found dsh home
[ OK ] patch-layer using ~/.dsh/profiles/desktop/cordis.patch.yml
[ OK ] provider local-bridge -> http://127.0.0.1:8080/v1, 3 model(s) [supportsDeveloperRole=false, thinkingFormat=openai]
chat-model, long-context-model, vision-model
[ OK ] tcp 127.0.0.1:8080 reachable (11ms)
[WARN] auth-source env BRIDGE_API_KEY is NOT set in this process
fix:
- Set the environment variable, then fully restart dsh so
it inherits it.
[ OK ] models 3 model(s) served
[ OK ] chat round-trip OK via 'chat-model'

6 ok, 1 warning(s), 0 failure(s)

真出问题时,返回体被替换成看得懂的说明:

[FAIL] chat POST /v1/chat/completions -> 400 [11128]
The upstream gateway rejected the request because the client does not
look like an approved channel. That is a request-fingerprint check.
The API key is usually fine.
fix:
- 把桥升级到会改写客户端身份(提示词前缀、User-Agent)的版本。
- 有些客户端会发 developer 角色,上游不接受。在 provider 的 compat 里设 supportsDeveloperRole: false。
- 用 curl 直接打同一个端点复测。curl 通而客户端不通,就是指纹问题。

为什么从配置文件查起

dsh 的 provider 配置放在 ~/.dsh/profiles/<profile>/cordis.patch.yml。它不是普通配置
文件,而是 YAML 数组形式的 loader patch,出错时不会报错:providers: 下面缩进错一格, provider 就直接从模型列表里消失,没有任何提示。

同时这个文件也是大家贴 API Key 的地方,所以它既制造"跑不起来",也制造"key 泄露"。

dsh-doctor 直接解析这个结构,因此能指出客户端只会笼统报 400 的那些问题。

检查项

| 检查项 | 输出内容 |
| dsh-home | dsh 的状态目录在哪里,识别 DSH_HOME |
| patch-layer | 当前生效的补丁文件,以及还存在哪些 |
| provider | llm-pi-ai 下每个 provider 的 baseURL、模型数量、compat 标志 |
| secret | YAML 里明文的 apiKey:,带行号 |
| tcp | baseURL 里的 host 和 port 能不能连上,耗时多少 |
| auth-source | apiKeyEnv 指定的变量在当前进程里存不存在 |
| models | GET /v1/models 结果,以及声明了但端点没提供的 id |
| chat | 用默认模型发一次 max_tokens=16 的请求 |

错误码对照

| 编码或特征 | 含义 |
| 11128 Illegal API invocation from an unapproved channel | 请求指纹被拒,不是鉴权问题。一般是桥版本旧,或者带了 developer 角色消息。 |
| 11140 | 账号对这个模型没有权限。换出口重试只是白烧额度。 |
| no usable account | 桥在跑,但该路由下账号池为空。 |
| 429 / rate limit | 被限流。退避、加账号,或者开跨出口回退。 |
| 401 / invalid api key | dsh 进程没继承到这个环境变量,或者 key 过期了。 |
| model not found | 声明的 id 和端点实际提供的不一致,大小写敏感。 |
| developer ... not supported | 设 supportsDeveloperRole: false。 |
| context length | contextWindow 写得比上游允许的大。 |

更详细的排查记录在 docs/error-codes.md。

参数

--profile NAME 只检查这个 profile --json 机器可读输出 --timeout SECONDS 网络超时,默认 30 --skip-network 只查配置,不发请求 --proxy 走系统代理,默认关闭 --no-color 关闭 ANSI 颜色

--proxy 默认关闭是有原因的。企业代理和沙箱代理经常让一个正常运行的本地桥返回 502,所以工具默认直连。

退出码

0 表示全部通过或只有警告,1 表示至少一处失败。可以直接放进 CI,不用再解析输出。

说明

- 对话探测只发 16 个 token,--skip-network 则一个请求都不发。
- 不会完整打印密钥,最多显示成 sk-02****abcd。
- 只读,不写任何文件。
- 完整样例在 examples/report-sample.txt。

相关项目

- dsh-config-gen:生成并校验本工具检查的补丁层。

许可

MIT
预览分享卡片长什么样 ↓yangjinbin2006/dsh-doctor
分享 · DeepSeek Harness Hub
yangjinbin2006/dsh-doctor

逐跳检查本地桥链路,定位首个断点并给出修复建议

回到顶部