dsh-anyrouter:DeepSeek Harness 专用的 Any Router 集成

前言

DeepSeek Harness (DSH) 的核心设计理念是「一切皆插件」,通过扩展来支持不同的模型推理服务。Any Router 是一个提供多模型路由能力的中间件。当你需要在 DSH 中使用 Any Router 时,直接集成通常面临协议不兼容(如需要 Claude Code 专用的 transport 或 Codex 专用的 Responses API)以及配置复杂的问题。dsh-anyrouter 作为一个专用的 provider bundle,旨在解决这些集成细节,让 DSH 能够通过标准的插件流程接入 Any Router。

这是什么

dsh-anyrouter 是一个由用户 shaomingbo 维护的 DeepSeek Harness 专用 provider bundle。它将 Any Router 作为后端模型源,通过 Claude Code 兼容的 transport 代理 Claude 模型,并通过 Responses API 代理 GPT/Codex 模型。该插件采用 MIT 许可证,旨在简化 DSH 用户通过 Any Router 访问 Claude 和 GPT 模型的流程。

核心功能

  1. 基于 Key 的路由控制
    插件会检查凭证服务中是否存在 ANYROUTER_API_KEY。只有当 API Key 存在时,anyrouter provider 路由才会注册,模型选择器才会显示相关模型组。一旦 Key 被移除或失效,模型组会自动隐藏,无需手动重启 DSH;重新添加 Key 后自动恢复。

  2. 完整的模型配置而非裸 ID
    同步模型时会保留推理参数(如努力程度、自适应思考标志)以及上下文和输出限制。这意味着模型选择器和推理选择器能够正常工作,且所有参数均可通过界面编辑,不仅仅是简单的模型 ID 替换。

  3. 模型白名单选择
    同步模型列表以复选框形式呈现,允许用户选择包含哪些 Claude 或 GPT 模型。对于不支持或被路由端拒绝的模型(如 gpt-5-codex),默认处于未选中状态,以避免调用失败。

  4. 专用的协议适配
    * Claude 模型:使用 Claude Code 2.1.239 兼容的 Anthropic Messages transport,包含特定的请求头、身份块和会话元数据。
    * GPT/Codex 模型:使用 POST /v1/responses 端点,采用 Codex CLI 的请求形状(如 store: false、include reasoning.encrypted_content)。

  5. 推理流通过标准选择器
    推理努力(reasoning efforts)通过 DSH 原生的推理选择器进行控制,而非硬编码在插件内部。

安装与启用

安装过程通过 npx 执行,它会修改当前 profile 的 package.json(添加依赖和 bundles 配置),并在该目录下运行 pnpm install --ignore-scripts。安装过程中不会停止 DSH 进程,但安装完成后需要手动重启 DSH 并刷新 Web 页面。

执行以下命令进行安装:

npx --yes github:shaomingbo/dsh-anyrouter#v0.3.3

典型用法

安装完成后,可以通过以下命令管理插件状态或切换配置文件:

# 检查插件是否已安装
npx --yes github:shaomingbo/dsh-anyrouter#v0.3.3 status

# 卸载插件(幂等操作)
npx --yes github:shaomingbo/dsh-anyrouter#v0.3.3 uninstall

# 使用 headless 配置文件安装
npx --yes github:shaomingbo/dsh-anyrouter#v0.3.3 --profile headless

# 使用本地源码进行开发
DSH_ANYROUTER_SOURCE=link:/absolute/path/to/checkout npx --yes github:shaomingbo/dsh-anyrouter#v0.3.3

适用场景与注意

  • 环境要求:该插件依赖于 DeepSeek Harness 0.1.1-rc.2 和 pi-ai 0.82.1。如果使用旧版本的 DSH(如 0.1.1-rc.2 之前),客户端会因缺少必要的 remote.credentials 或 remote.llm 引用而启动失败。
  • 错误处理:同步模型列表是咨询性质的,不会主动进行付费探测。当 Relay 服务端处于容量限制或无健康上游时,模型调用可能会返回 429 或 500 错误。
  • 配置说明:API Key 必须存储在凭证服务中,或通过启动环境变量提供,切勿写入配置文件的 llm-anyrouter 节点。如果配置文件中缺少 reasoning 块,系统会回退到基于 pi-ai 目录生成的构建时配置。

总结

dsh-anyrouter 为 DeepSeek Harness 提供了与 Any Router 的标准化接入方案。它通过 Key-gating、完整的模型配置以及专用的协议适配,解决了多模型路由在 DSH 中的集成难点。对于需要在本地或 Web 端通过 DSH 管理多模型路由的开发者来说,这是一个功能完备的解决方案。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜