Adonis511/enhance-provider-config ↗★ 0
enhance-provider-config
一个为 **DeepSeek Harness (DSH)** 开发的插件:在 Web 设置界面新增一个 **Enhanced Provider Config(服务商配置)** 面板,为每个 LLM provider 单独配置自定义请求头(User-Agent + 任意 Header 覆盖)。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Adonis511/enhance-provider-config说明文档
阅读完整 README ↗enhance-provider-config
一个为 DeepSeek Harness (DSH) 开发的插件:在 Web 设置界面新增一个 Enhanced Provider Config(服务商配置) 面板,为每个 LLM provider 单独配置自定义请求头(User-Agent + 任意 Header 覆盖)。
配置不保存在插件自己的命名空间里,而是直接写入官方 @deepseek-ai/dsh-llm-pi-ai 的 settings 命名空间(llm-pi-ai.providers..headers),由 pi-ai 在每次模型请求时自动合并进 HTTP 头。插件不注册自定义 adapter、不劫持流量,Host 侧是空实现——所有工作都发生在官方配置文件这条"最短路径"上。
典型场景
- 网关按 User-Agent 限流或要求特定 UA(如
opencode.ai/zen对deepseek-harnessUA 返回 429)。 - 需要在请求里附加自定义头:调试信息、认证令牌、追踪 ID 等。
核心特性
- 按 provider 配置请求头:下拉框列出
llm-pi-ai下全部 provider(官方 Models 页配置的 + pi-ai 内置 catalog 路由),可为每个 route 单独设置 User-Agent 和任意 header 覆盖。 - 与官方配置完全共享:读写的是同一个 profile,在官方 Models 页能看到同一份数据,不存在两边割裂。
- 保存即生效,无需重启:配置写入 DSH user settings,pi-ai 每次请求都会重新读取当前 profile,下一次请求就带上新头。
- 零流量劫持:不注册 LlmAdapter、不拦截请求,纯配置注入。
- User-Agent 冲突修复(附
re-patch脚本):官方requestHeaders()把user-agent当 attribution 保留名强制覆盖,本仓库的补丁脚本反转优先级,让显式配置的 UA 生效(详见下文)。
工作原理
- 数据与官方共享:插件不维护自己的配置命名空间,而是直接读写官方
llm-pi-ai的 settings 命名空间,把增强字段写入llm-pi-ai.providers..headers。 - pi-ai 原生合并:
dsh-llm-pi-ai的 profile schema 原生支持headers字段,每次请求通过requestHeaders()合并(并过滤内置 attribution 保留名)。因此插件不需要注册任何 LlmAdapter、不劫持流量——Host 侧是空实现。 - 同一个页面:在 Web 设置里注册一个 Enhanced Provider Config section(走
settings.sectionslot),下拉框直接列出llm.providers目录里settingsNs === "llm-pi-ai"的全部 provider(包括你在官方 Models 页配置的 nvidia/opencode,以及 pi-ai 内置 catalog 路由)。 - 保存时防冲突:用
settings.mutate写{ op: "set", path: ["providers", route, "headers"] },带expectedRevision防止并发覆盖;改完立刻生效。
架构一览
Web 设置页(Enhanced Provider Config section)
│ settings.section slot
▼
src/client/index.ts ── settings.mutate ──► llm-pi-ai.providers..headers
│ (官方 settings 命名空间)
▼
(Host 侧无逻辑:src/host/index.ts 是 no-op)
│
▼
@deepseek-ai/dsh-llm-pi-ai 每次模型请求经 requestHeaders() 合并 headers