LIU GUOFENG / DEVELOPER NOTESPLUGIN MANUAL · 0.4.8
DEEPSEEK HARNESS / PLUGIN REFERENCE

把 Provider 高级选项
放回可读的设置面板。

Advanced Provider Settings 是 DeepSeek Harness 插件。它把原本要手改 profile YAML 的请求头、重试、超时、推理方言和兼容性字段,拆成有明确作用范围的设置项;模型级配置单独留在模型上。

v0.4.8DeepSeek Harness 0.1.7–0.2.1 或兼容版本· Node.js 20+
查看源码与安装说明 ↗跳到安装步骤插件不提供模型服务,也不替代 DSH。
兼容性提示:README 验证记录包含 DSH 0.2.0-rc.2、0.2.1-alpha.4 与 0.2.1-rc.2;其他构建须以插件内诊断面板读取的版本和兼容状态为准。0.1.6 及更早版本不支持。

它解决哪类配置问题

DeepSeek Harness 的模型页只编辑常见字段。网关的 Headers、重试和超时,以及第三方 DeepSeek 端点采用的思考参数格式,原本需要直接维护 YAML。插件把这些配置集中到高级面板,按 DSH schema 支持的路径写入,不整份重写配置文件。

典型场景:一个 OpenAI 兼容网关提供 DeepSeek 模型,但端点 URL 不含 deepseek.com。Harness 可能按 OpenAI 默认协议组装思考参数。插件可为该 Provider/模型显式设置支持的推理方言和字段。

配置有三个作用范围

先判断设置影响一个模型、一个 Provider,还是当前 profile 的所有请求。把字段放错层级可能被 DSH schema 拒绝,或者对目标请求不起作用。

SCOPE A / MODEL一个模型

输入模态、推理档位映射、模型级 compat。内置目录路由还可覆盖显示名、上下文窗口和最大输出 token。

SCOPE B / PROVIDER该路由下所有模型

Headers、重试、超时、传输、视觉预算、路由默认推理档位、协议实际读取的 compat 字段。

SCOPE C / PROFILE全局默认

全局 Headers、User-Agent、诊断、兼容性报告和旧插件设置导入。User-Agent 只能放全局层。

Provider 自己声明 models 列表时,模型条目只接受 input、reasoningEfforts、compat。内置目录路由使用 modelOverrides.<id> 通道;两条通道不能同时配置。

设置项逐项说明

面板会提示每项的作用层级。下表按 README 对 DSH schema 的说明整理。

面板范围能做什么使用时核对
模型输入与推理映射模型声明文本/图片输入能力;将 off、minimal、low、medium、high、xhigh、max 映射到端点接受的线上字符串,并设置 token 预算。每个模型接受的档位不同;映射为不支持的值时请求会在构造前被拒。
模型兼容性模型为单一模型覆盖兼容字段。内置目录模型可设置名称、上下文窗口与 maxTokens。模型通道比 Provider 通道更严格;只写该通道允许的字段。
HeadersProvider / 全局设置路由请求头或全局请求头;提供格式校验、密钥掩码和重名检测。Provider Header 覆盖同名全局 Header。自定义 authorization 会覆盖 API Key。
User-Agent全局选择浏览器或 CLI 预设,也可填写自定义值,供白名单网关识别客户端。Harness 会剥掉 Provider 级 user-agent 并注入自身标识;该值只在全局层生效。
重试策略Provider选择 Harness 默认、保守、激进,或自定义模式、次数、可重试错误码和退避等待。重试影响该路由全部模型。检查上限和最大延迟,避免意外增加等待与请求量。
网络与缓存Provider选择 sse、websocket、websocket-cached 或 auto;设置请求、流空闲、WebSocket 连接超时和缓存策略。协议或网关不支持的传输方式会导致连接失败;按服务端能力设置。
视觉预算Provider为未声明模态的模型设默认输入类型,限制单请求总图片字节、像素预算及单张图片大小。较低预算可避免超大请求;图像可用性仍受目标模型和网关限制。
推理与兼容性Provider设置路由默认思考档位、各档 token 预算及协议支持的兼容选项(共 26 项)。协议只读取与自身匹配的 compat 字段。Thinking 方言只属于对应协议。
测试与生效预览Provider用表单当前 Headers 请求端点模型列表;预览逐层合并的生效配置;提供只读诊断。测试 Provider 会向所填端点发请求。预览会掩码敏感值,诊断报告可粘贴到 issue。

安装、启动与移除

相同插件包有 Web profile 和桌面版两种安装路径。Web profile 需要 DSH CLI;桌面 profile 由应用内插件市场管理。安装后按对应步骤重启。

以下命令按仓库 README 提供,直接从 GitHub 安装已提交构建产物:

dsh plugin --profile web add github:misswell/dsh-advanced-provider-settings
1 · 安装

需要 Node.js 20+。首次 profile 安装若报 ERR_PNPM_ADDING_TO_ROOT,在 profile 的 .npmrc 加入 ignore-workspace-root-check=true。

2 · 启动 Web UI

运行 dsh web。插件包已包含构建产物,不需在目标 profile 上另行构建。

3 · 配置后验证

打开 Provider 高级设置或模型页。用诊断面板确认 Harness 版本、写入通道与扩展槽位可用。

建议按这个顺序配置

1 · 选中目标 Provider

在模型页编辑单个 Provider,或在全局高级设置页选择路由。先确认使用自定义 models 列表还是内置目录。

2 · 先设模型协议行为

为第三方 DeepSeek 端点检查 thinkingFormat、reasoningEffort 支持和 token 字段名;只启用服务端确实支持的字段。

3 · 再配路由级策略

设置 Headers、超时、传输和有上限的重试策略。只在需要时调整视觉预算与思考默认值。

测试 Provider 会用当前表单中的 Headers 查询端点模型列表,即使尚未保存。确认 URL 和 Header 后再点击,避免把凭据送往错误地址。

配置示例:第三方 DeepSeek 端点

以下 YAML 摘录自仓库说明的第三方 DeepSeek 场景。模型列表通道和 Provider 级兼容字段需要配合使用;真实端点和密钥仍由 DSH 模型页管理。

models:
  - id: deepseek-reasoner
    reasoningEfforts:
      off: null
      low: low
      medium: medium
      high: high
compat:
  thinkingFormat: deepseek
  supportsReasoningEffort: true
  maxTokensField: max_tokens
  supportsStore: false

此例适用于 Provider 自己声明 models 列表的通道。没有 models 列表、直接提供内置目录时则使用 modelOverrides.<id>。两者不可混用。

兼容字段必须匹配路由 API。README 指出上述思考方言字段属于 Chat Completions;Responses API 或 Anthropic Messages 不会读取它们。

数据、安全与兼容边界

  • API Key 不由插件读取、显示、保存或记录;凭据仍由 DSH 模型页管理。
  • 生效配置预览在 Host 侧掩码敏感 Header 后返回。测试 Provider 是向用户输入端点发出的网络请求。
  • 写入通过 DSH 带版本号的 settings 通道做路径级 set/unset,保留 YAML 注释和未修改字段;版本冲突会被检测。
  • 插件不修改 Harness 源码或 node_modules,不通过读取 DOM 寻找设置控件。
  • 卸载插件会移除插件自身命名空间;Provider 配置字段留在 DSH 的 llm-pi-ai 配置中,需要先在 Provider 面板重置或手动删除。
  • 插件调整配置,不提供模型推理、API 代理或服务端可用性保证。

常见问题

为什么 Header 放在模型上没有效果?

Headers 是路由级字段,应配置在 Provider 或全局层。模型条目 schema 不接受这类 Provider 配置。

Provider 级 User-Agent 为什么会被丢掉?

Harness 会剥除 Provider profile 里的该 Header 并注入自身标识。插件把 User-Agent 放在全局传输包装层,因此应在全局设置。

插件安装成功但配置页不工作怎么办?

打开诊断面板检查实际 Harness 构建、settings 写入通道、Header 桥、重试执行器和模型页扩展槽位解析状态。支持范围以诊断结果为准。

怎样完全清除高级 Provider 字段?

卸载前,在 Provider 卡片点「重置全部高级设置」;或手动删除当前 profile 的 cordis.patch.yml 中 llm-pi-ai 下对应 providers 条目。插件卸载本身不会清理这些字段。

作者的其他项目

作者主页 ↗