自动修复中转网关模型能力声明错误,恢复请求
27.2/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/7 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Semidia/dsh-llm-compat-healer该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-settings给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 自动修复模型能力声明
- 恢复请求失败
- 设置页配置字段
LLM 兼容自愈插件:自动检测并修复中转/网关未正确声明模型能力导致的请求失败(thinking/reasoning 兼容),提供设置页 UI 配置全部 pi-ai 字段
README
由 DeepSeek 最新模型翻译生成dsh-llm-compat-healer
LLM 兼容自愈插件:自动检测并修复「中转/网关未正确声明模型能力」导致的请求失败(reasoning_content、developer 角色等兼容问题),并为 llm-pi-ai 配置提供完整的设置页 UI 和中文错误摘要。
解决的问题
使用中转/聚合 API(如某公益中转、某聚合网关)时,如果 provider 的模型列表没有正确声明 reasoningEfforts / compat(如 thinkingFormat: deepseek、supportsDeveloperRole: false),DeepSeek 兼容接口可能会返回:
{"message":"The reasoning_content in the thinking mode must be passed back to the API.","type":"invalid_request_error"}
(400 错误)。本插件自动检测该错误并修复配置,无需手动编辑 settings.yaml。
三层机制
1. agent/request-error 监听(自愈):命中规则表 → 标记问题 provider + 异步幂等补齐或校正目标兼容字段;未命中 → 记录到「未匹配错误」队列供 UI 查看(学习机制)。
展开完整文档(README 剩余 1 节)
dsh-llm-compat-healer
LLM 兼容自愈插件:自动检测并修复「中转/网关未正确声明模型能力」导致的请求失败(reasoning_content、developer 角色等兼容问题),并为 llm-pi-ai 配置提供完整的设置页 UI 和中文错误摘要。
解决的问题
使用中转/聚合 API(如某公益中转、某聚合网关)时,如果 provider 的模型列表没有正确声明 reasoningEfforts / compat(如 thinkingFormat: deepseek、supportsDeveloperRole: false),DeepSeek 兼容接口可能会返回:
{"message":"The reasoning_content in the thinking mode must be passed back to the API.","type":"invalid_request_error"}
(400 错误)。本插件自动检测该错误并修复配置,无需手动编辑 settings.yaml。
三层机制
1. agent/request-error 监听(自愈):命中规则表 → 标记问题 provider + 异步幂等补齐或校正目标兼容字段;未命中 → 记录到「未匹配错误」队列供 UI 查看(学习机制)。
2. agent/request 拦截(当前会话立即恢复):对问题 provider 的请求,在发出前把 thinking 关掉——模型声明了 off 档位则设 reasoningEffort: 'off',否则删除该字段。配置修复会保留模型的 DeepSeek 推理协议能力,使历史 assistant 消息仍能补齐 reasoning_content。对于明确拒绝 developer 角色的 OpenAI 兼容端点,自动补 supportsDeveloperRole: false,把系统提示改发为 system。无需重启。
3. RPC + 设置页 UI:读写 llm-pi-ai 全部字段、一键补全、扫描全部补齐、查看错误日志。
功能
- 设置页新增「LLM 兼容」分区(settings.section,id=llm-compat-healer)
- 每个 provider 卡片:
- reasoning 下拉
- 按 api 显示公开 compat 字段;布尔字段支持「未设置 / 启用 / 禁用」
- 模型行 reasoningEfforts 和模型级 compat JSON 编辑 + 一键补全
- 顶部:「扫描全部补齐」「刷新」按钮
- 「未匹配错误」面板:把认证/权限、用量限制、网络、模型兼容和未知上游错误归类为中文摘要,同时保留脱敏后的原始详情,支持复制和清空
可配置 compat 字段
UI 只暴露 pi-ai 明确允许部署配置的 20 个字段;字段写在 provider 的 compat 下时作为默认值,写在模型的 compat 下时覆盖 provider 默认值。
| 协议 | 字段 |
| openai-completions | supportsStore、supportsDeveloperRole、supportsReasoningEffort、supportsUsageInStreaming、maxTokensField、requiresToolResultName、requiresAssistantAfterToolResult、requiresThinkingAsText、requiresReasoningContentOnAssistantMessages、thinkingFormat、chatTemplateKwargs、supportsStrictMode、cacheControlFormat、supportsLongCacheRetention |
| openai-responses、azure-openai-responses、openai-codex-responses | supportsDeveloperRole、supportsStrictMode、supportsLongCacheRetention |
| anthropic-messages | supportsEagerToolInputStreaming、supportsLongCacheRetention、supportsCacheControlOnTools、supportsTemperature、forceAdaptiveThinking、allowEmptySignature、supportsStrictTools |
| bedrock-converse-stream | supportsStrictMode |
reasoningEfforts 是模型级字段,支持 { "off": null, "high": "high" } 或 false。只有 off 的 efforts map 不被 Harness 接受;真正的非推理模型应使用 false。但对命中 reasoning_content 400 的 DeepSeek 兼容模型,不能使用 false,因为这会同时关闭历史消息的 DeepSeek 重放适配;自动补全会保留已有的非 off 推理档位,补上 off,必要时增加 high 作为合法能力声明,并把 provider 级 reasoning 设为 off。这样当前轮默认不思考,历史 assistant 消息仍会附带空 reasoning_content。对于没有显式模型列表的 catalog provider,页面只编辑 provider 级配置。
pi-ai 明确 withheld 的内部字段不会被本插件自动猜测或写入,例如 openRouterRouting、vercelGatewayRouting、sessionAffinityFormat、supportsToolSearch、supportsExplicitPromptCacheMode、supportsToolReferences。
数据安全与未知错误
- 自动补全和 UI 保存均使用 settings.mutate 的 path operation;模型数组由当前完整快照生成,不会因深合并数组而丢失其他模型。
- 「扫描全部补齐」基于同一配置快照生成全部 provider 的 path operations,并只调用一次 settings.mutate,避免首次配置热更新中断当前 RPC。统一提交失败时,需要修改的 provider 一致报告脱敏错误,原本已完成的 provider 仍报告成功。
- config/read 对 header、token、secret 等值脱敏;UI 回写时会从当前 Host 配置恢复脱敏字段,apiKeyEnv 等环境变量名称不会被误当作密钥。
- 未匹配错误只记录,不猜测修改配置;队列最多保留 100 条,并持久化到 profile 目录的 dsh-llm-compat-healer-errors.jsonl,诊断文本会脱敏。
- 未知未来接口错误可以从设置页面板复制或清空;补充新规则前不会自动改变请求行为。
安装
1. 克隆到任意开发目录
2. 在 profile 的 node_modules 下建 junction: New-Item -ItemType Junction -Path "$env:USERPROFILE\.dsh\profiles\web\node_modules\dsh-llm-compat-healer" -Target "<插件仓库的完整路径>"
3. 在 cordis.patch.yml 追加 insert 条目:
- id: dsh-llm-compat-healer
name: dsh-llm-compat-healer
4. 重启 dsh web
开发
npm test # 可移植测试:规则、Host/RPC、脱敏、Client 字段契约
npm run test:harness # Harness 安装绑定测试:schema 与最终 reasoning_content HTTP 重放
npm run test:all # 运行全部测试
安装绑定测试会优先从当前 Node 依赖树解析 @deepseek-ai/dsh-llm-pi-ai 与 @earendil-works/pi-ai。如果插件源码不在 Harness 的依赖树内,可分别设置 DSH_LLM_PI_AI_ENTRY 和 PI_AI_OPENAI_COMPLETIONS_ENTRY 为当前 Harness 安装中的完整文件路径。
验证
- shot-lch.cjs:页面验收(UI 渲染、无 JS 错误)
- shot-lch-scan.cjs:scan-fix 功能验收(扫描全部补齐、settings.yaml 结构保持和幂等执行)
安全
- 事件监听器绝不原位修改 payload(经验库十七)
- settings.mutate 只修改命中规则所需的兼容字段,并从完整快照替换模型数组;不删除或覆盖无关 provider 字段和非目标模型
- 未匹配错误只做记录,不做任何修改
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Semidia/dsh-llm-compat-healer
自动修复中转网关模型能力声明错误,恢复请求
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,350已汉化DSH
71.5
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,506已汉化DSH
71.1
AI 矢量设计工具ZSeven-W/openpencil
全球首个 AI 原生开源矢量设计工具。
★ 7,027已汉化DSH
71.1
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。