前言¶
在 DeepSeek Harness(DSH)里做智能体或日常对话,常见做法是逐个配置各家模型的 API:不同 base URL、不同密钥字段、模型名还要自己维护。模型一上新,往往得改配置或等适配更新。
下面介绍的 dsh-teamorouter 把 TeamoRouter 接到 DSH 内置的 OpenAI 兼容路由上:一把密钥可在模型选择器里使用 Claude、GPT、Gemini、DeepSeek、Kimi、GLM、Qwen、Grok、MiniMax 等 TeamoRouter 提供的对话模型;列表通过 GET /v1/models 定期拉取,无需为每个新模型改插件。
插件由 GitHub 用户 2867297362mjb-sketch 发布,归类为 模型推理;README 注明维护方与 TeamoRouter 相关(作者就职于 TeamoRouter)。仓库采用 MIT 许可证,当前 package 版本为 0.1.0。社区目录页:skillhub.cn 插件条目,源码:github.com/2867297362mjb-sketch/dsh-teamorouter。
这是什么¶
dsh-teamorouter 是 DSH 的 TeamoRouter Provider 插件:在 llm-pi-ai 适配器里写入一条名为 teamorouter 的路由(api: openai-completions,baseURL: https://api.teamorouter.com/v1),流式、工具、图片与重试走 DSH 自带代码路径。只动 providers.teamorouter,不会覆盖你已有的其他 Provider 配置。
密钥通过引用名 TEAMOROUTER_API_KEY 挂在 DSH 凭据存储里,路由配置里不出现明文 Key。图像、视频生成类模型会排除在列表外,因为 DSH 当前只驱动对话模型。
核心功能¶
实时模型列表¶
有 Key 后,插件带 Key 请求 https://api.teamorouter.com/v1/models,约 每 6 小时 同步一次,新模型可在不升级插件的情况下出现在选择器里。
未配置 Key 时,选择器会显示一份短 starter list(如 Claude Sonnet 5.5、Claude Opus 5.5、GPT-6 Sol、DeepSeek V4 Pro / Flash、Gemini 3.8 Flash 等),便于先看到 Provider;存入 Key 后通常在约一分钟内由完整列表替换。无 Key 期间插件每分钟只检查本地凭据存储,不会向外发送列表请求。
与 DSH 的集成方式¶
对话请求由 DSH 的 llm-pi-ai 发往 {baseURL}/chat/completions,并带请求头 X-Client-Source: dsh-teamorouter(用于 TeamoRouter 统计经本插件的用量,不含用户数据)。列表请求使用 User-Agent dsh-teamorouter/<version>。README 写明除上述外无其他遥测。
可选配置¶
可在 Profile 的 cordis.patch.yml 中覆盖(均为可选):
| 字段 | 默认值 | 含义 |
|---|---|---|
baseURL |
https://api.teamorouter.com/v1 |
API 根地址 |
apiKeyEnv |
TEAMOROUTER_API_KEY |
路由解析用的凭据引用名 |
routeKey |
teamorouter |
在 DSH 中显示的 Provider id |
include |
全部对话模型 | 仅保留匹配的模型 id(精确、prefix*、*suffix) |
exclude |
无 | 排除匹配的模型 id |
列表中未标注上下文长度的模型,插件会按 200K 上下文、32K 输出上限处理;id 以 [1M] 结尾的按 1M 上下文处理。部分 Claude、GPT-5/6、Gemini、Grok 4、Kimi K3 及较大 Qwen、Doubao 等会标记为支持图片输入。
计费说明¶
TeamoRouter 为按量付费、无订阅;README 指向 teamorouter.com/models 查看各模型价格,充值门槛等信息以官网为准。
安装与启用¶
DSH 生态里插件通过 CLI 挂到 Profile。Web 交互场景下,官方安装命令如下:
dsh plugin --profile web add github:2867297362mjb-sketch/dsh-teamorouter
安装后重启 dsh web,或依赖 dsh-hmr 自动重载 Profile。
安全与权限:插件随当前 dsh 进程权限运行;安装前建议在 GitHub 上查看源码与 LICENSE。社区目录(SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系,不等同于官方应用商店。
配置密钥¶
- 在 teamorouter.com/dashboard 创建 API Key(以
sk-teamo-开头)。 - 以引用名
TEAMOROUTER_API_KEY保存,任选其一:
- Settings → Models → TeamoRouter,在 API key 字段粘贴;
- 启动前导出环境变量后启动 Web:
export TEAMOROUTER_API_KEY=sk-teamo-...
dsh web
典型用法¶
Web 端选模型对话¶
完成安装与密钥配置后,在 DSH 模型选择器里选择 teamorouter 下的具体模型即可;流式输出、工具调用等能力与使用该适配器的其他 OpenAI 兼容路由一致。
Headless Profile¶
插件自带的 bundle patch 会在首次启动时带上 starter 路由。可在 $DSH_HOME/profiles/headless/cordis.patch.yml 中指定默认模型,例如:
- id: agent-default-model
config:
provider: teamorouter
model: claude-sonnet-5-5
Headless 不读交互式凭据存储,需在环境中传入 Key:
TEAMOROUTER_API_KEY=sk-teamo-... dsh --profile headless "summarize README.md"
首次运行可使用 starter 模型;后台通常会保存完整模型列表,往往第二次运行起即可选用列表中的任意模型。
若 headless 的 cordis.patch.yml 已声明其他 llm-pi-ai Provider,DSH 的 patch 层为替换而非合并,会盖掉插件自带的 starter 路由。可先导出 TEAMOROUTER_API_KEY,用该 Profile 里已能工作的模型跑过一次任务,插件会在运行期间把 teamorouter 加到现有 Provider 旁,再改默认模型即可。dsh web 不受影响:服务运行中也可添加路由。
卸载¶
dsh plugin --profile web remove dsh-teamorouter
卸载后 Settings → Models 里可能仍保留 teamorouter 路由条目,需手动删除;曾使用该路由的会话在条目存在期间仍可继续工作。
适用场景与注意¶
- 适合:希望在 DSH 里用单一 TeamoRouter 账号统一访问多厂商对话模型,并减少手工维护模型列表的工作。
- 不适合:依赖 DSH 直接对接某家原厂专用 API、且不愿经过第三方聚合网关的场景——需自行评估 TeamoRouter 的服务条款与数据路径。
- 开发依赖:
package.json要求 Node>=20,并声明与@deepseek-ai/cordis、@deepseek-ai/dsh-llm-pi-ai、@deepseek-ai/dsh-settings等 peer 版本范围;本地开发可运行npm test。
结尾¶
dsh-teamorouter 把 TeamoRouter 的 OpenAI 兼容面接到 DSH 的 llm-pi-ai 上:一把 TEAMOROUTER_API_KEY、一条 teamorouter 路由,配合定时同步的 /v1/models 列表,把多模型选型收拢到 DSH 原有交互与 headless 流程里。