前言¶
DeepSeek Harness(DSH)遵循“一切皆插件”的理念。在开发智能体时,管理多个 API Provider 和模型是一项重复性工作。通常需要手工编辑 settings.yaml,不仅繁琐且容易出错。为了解决这个痛点,社区开发者 jianjianzhu 开发了 dsh-model-switcher。
这是什么¶
这是一个面向 DeepSeek Harness Web profile 的可视化自定义模型管理插件。它在 插件 → 模型切换器 中提供 Provider 预设、API Key 安全写入、模型发现和默认模型切换,无需手工编辑 settings.yaml。作者为 jianjianzhu,开源协议为 MIT。
核心功能¶
该插件提供了以下能力:
- Provider 预设:支持 NyroAPI/SAPI、标准 OpenAI 兼容、OpenRouter 和自定义预设。
- 内置预设:包含 DeepSeek、SiliconFlow、Gemini、Anthropic、Ollama、LM Studio、vLLM 和 LiteLLM。
- 配置管理:支持编辑 Provider ID、名称、基础地址和 API 协议。
- 安全存储:API Key 通过 Harness
credentialsRemote 写入凭据存储,不写入普通settings.yaml、日志或导出配置。 - 模型发现:调用 Harness 模型发现接口测试连接,通过搜索和勾选导入模型。保留服务商返回的模型名称、上下文长度、最大输出和输入类型。
- 已有 Provider 管理:读取并编辑已有 Provider,支持重命名和删除。保留已有 Provider 的凭据引用,并允许目录型 Provider 继承内置 API 地址。
- 路径清理:自动清理误填的
/models、/chat/completions、/responses、/messages路径。 - 错误诊断:针对认证、权限、地址、超时、TLS 和网络错误提供中文诊断。
- 请求头安全:支持安全的自定义请求头;敏感鉴权头不会在界面显示。
- 高级字段调整:可视化调整 Developer Role、finish_reason、流式 usage 和 Token 上限字段。
- 模板导入导出:导入和导出不含 API Key、Authorization、Cookie 等敏感信息的 Provider 模板。
- 默认模型:保存多个模型,并可将第一个模型设为默认模型。
- NyroAPI 特性:预设自动设置
supportsFinishReason: false、supportsDeveloperRole: false和maxTokensField: max_tokens。
安装与启用¶
在插件目录中运行以下命令:
node tests/smoke.mjs
dsh plugin --profile web add .
安装完成后,打开 Harness 的 插件 页面,选择 模型切换器。
典型用法¶
操作流程非常简单:选择服务商、填写密钥、获取模型、选择默认模型并保存即可。协议、地址和兼容参数默认收纳在高级设置中。
适用场景与注意¶
- 版本限制:当前版本仅面向 Web profile。
- 连接测试:连接测试使用服务商的模型发现端点;不提供模型列表的网关仍可手动填写模型 ID。
- 特殊服务商:Azure 等需要专用协议或非标准模型发现地址的服务仍需后续适配。
- 安全性:API Key 通过 Harness
credentialsRemote 写入凭据存储。插件不会把明文密钥写入settings.yaml、日志或导出配置。
结语¶
该插件通过可视化的方式降低了管理多个 Provider 的门槛,同时保证了密钥安全。更多细节和源码,请参考目录页或 GitHub 仓库。