ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

DeepSeek Harness 如何接入其他模型:目录提供方、自定义网关与 settings.yaml 配置全解

DeepSeek Harness 如何接入其他模型:目录提供方、自定义网关与 settings.yaml 配置全解 发布日期2026-09-02 | 话题标签DeepSeek Harness、DSH、模型配置、自定义提供方、OpenAI 兼容网关、llm-pi-aiDeepSeek HarnessDSH是 DeepSeek AI 于 2026 年 8 月开源的 Agent Harness模型在它的一切皆插件架构里只是一种可替换能力由两个官方 LLM 适配器插件提供dsh-llm-deepseek直连 DeepSeek 官方 APIdsh-llm-pi-ai基于 Pi 项目的 pi-ai 库承载其他所有提供方。接入非 DeepSeek 模型有三种方式从易到难依次是在 Web UI 的设置 → 模型里添加目录提供方Anthropic、OpenAI 等填 API Key 即可添加自定义提供方填写 Provider ID、基础 URL、协议和模型列表把任意 OpenAI 兼容网关、国内多模型平台或本地 vLLM/Ollama 服务接进来直接编辑$DSH_HOME/settings.yaml的llm-pi-ai分节解锁表单没有的字段例如视觉模型的input: [text, image]、修复网关拒绝请求的compat开关、推理等级重命名。自定义路由目前支持三种协议openai-completions、openai-responses、anthropic-messages。所有配置在下一次请求生效不需要重启服务。本文基于 DSH 官方文档《配置模型》、两个适配器包的 README 和自动生成的配置目录逐条给出可直接复制的 YAML 和排错对照表。DSH 的模型层是怎么组织的DeepSeek Harness 把模型接入拆成两个独立插件一个只管 DeepSeek一个管其他所有提供方两者可以同时挂载。插件路由名负责什么默认模型deepseek-ai/dsh-llm-deepseekdeepseek-officialDeepSeek chat-completions 协议直连支持 thinking 强度、图片 Files APIdeepseek-v4-flash、deepseek-v4-pro、deepseek-v4-flash-vision-exp均 1M 上下文deepseek-ai/dsh-llm-pi-ai由你命名通过 pi-ai 库承载目录提供方和手工声明的网关路由取决于目录或你的声明dsh-llm-pi-ai的 README 把它的定位说得很清楚OpenAI 兼容网关或自托管服务器只是配置而非代码变更。整个配置面就是一个providers字典每个键是一条路由请求时用provider字段选择。三个前置概念目录提供方pi-ai 已内置端点、协议和模型列表的提供方Anthropic、OpenAI、Google、Azure、Bedrock、Mistral、Groq、xAI、OpenRouter、Ollama 等pi-ai 官网称15 供应商。接入只需凭据。自定义提供方目录里没有的地址必须自己写api、baseURL和非空models列表。凭据引用配置文件里永远不放明文密钥apiKeyEnv写的是环境变量名或凭据存储的引用Web UI 保存的密钥落在$DSH_HOME/.credentials.yaml。方式一Web UI 添加目录提供方对 Anthropic、OpenAI 这类目录内提供方在设置 → 模型点击添加提供方选中后填 API Key 保存即可端点、协议和模型列表由目录提供。步骤启动 DSHnpx deepseek-ai/dsh web默认http://127.0.0.1:3080打开设置 → 模型点击添加提供方从列表选择目标提供方填入 API Key保存。密钥是只写的页面之后只显示脱敏描述符回到会话页模型选择器里会出现该提供方的模型选中即成为新会话默认值两个例外要注意原生认证的提供方不能只填 Key。官方文档明确Bedrock、Vertex、Azure 和 Codex 分别需要 AWS 凭据与区域、ADC 项目、api-version和 OAuth。只填 API 密钥字段无法完成配置。Codex 走登录流程。dsh-llm-pi-ai支持通过 harness 授权流程做 OAuth 登录凭据存在凭据存储的llm-pi-ai/provider id记录里会自动刷新退出登录即删除记录。方式二Web UI 添加自定义提供方公司网关、国内多模型平台、自建 vLLM 或 Ollama都走添加自定义提供方需要填五项Provider ID、基础 URL、API 协议、凭据、至少一个模型。字段填什么注意Provider ID小写连字符标识如my-gateway永久不可改会话记录、模型默认值、凭据引用都绑定它。要改名只能新建再删旧显示名称选择器里的标签可随时改基础 URL网关地址如https://gateway.example/v1可随时改API 协议openai-completions/openai-responses/anthropic-messages三选一源码provider.ts的协议表只有这三种每条路由只能一种协议凭据API Key存入凭据存储模型至少一个模型 ID可点获取可用模型让 DSH 调GET /models自动拉取获取可用模型只对自定义路由发网络请求目录提供方直接读本地目录。拉取返回 401 说明 Key 有问题网关没有/models端点就手动输入模型 ID。保存后同样在下一次请求生效。表单没有的字段图片模态、兼容开关、推理等级要走方式三。方式三直接写 settings.yaml$DSH_HOME/settings.yaml里的llm-pi-ai分节是配置的完整真源Web UI 只是它的子集。一条自定义路由的完整写法如下llm-pi-ai:providers:my-gateway:displayName:My GatewayapiKeyEnv:GATEWAY_API_KEYapi:openai-completionsbaseURL:https://gateway.example/v1defaultContextWindow:262144defaultMaxTokens:32768compat:supportsDeveloperRole:falsemaxTokensField:max_tokensmodels:-id:chat-modelname:Chat ModelcontextWindow:131072-id:vision-modelinput:[text,image]-id:reasonercompat:thinkingFormat:deepseekreasoningEfforts:off:low:lowhigh:high字段含义来自dsh-llm-pi-aiREADME 和配置目录字段默认值含义apiKeyEnv无按请求解析的凭据引用省略则交给 pi-ai 的环境发现api目录协议协议格式目录外路由必填baseURL目录端点路由上所有模型共用models已安装目录整体替换路由的模型目录modelOverrides无只改目录里的个别模型其余不动不能与models并存compat目录检测请求形状兼容开关defaultContextWindow262,144未声明容量的模型回退值defaultMaxTokens32,768未声明输出上限的模型回退值defaultInput[text]未声明模态的模型回退值headers无附加请求头retryPolicynormal5 次重试策略国内多模型平台的接法是同一套配置。以七牛云 Token Plan 为例它兼容 OpenAI 与 Anthropic 两种接口格式把baseURL换成其接口地址、api选openai-completions或anthropic-messages、models填平台上的模型 ID 即可一个 Key 覆盖多款主流大模型。具体地址和模型 ID 以平台调用文档为准。改完不用重启。README 写明 profile “每次操作重新读取”用户层的llm-pi-ai:分节与组合层按提供方合并“全部在下一个请求生效、无需重启”。写错的分节会在写入处被拒绝并保留上一个有效值。网关拒绝请求怎么办compat 开关Key 和 URL 都对、网关却拒绝每一个请求几乎都是请求形状问题。pi-ai 按 URL 猜协议细节认不出的地址一律按 OpenAI 本身处理而多数兼容网关至少会拒绝 OpenAI 接受的某一样东西。官方文档指出两个最常见的元凶先加这两行compat:supportsDeveloperRole:false# 推理模型的系统提示不再用 developer 角色maxTokensField:max_tokens# 输出上限字段从 max_completion_tokens 改回 max_tokensopenai-completions协议下常用的开关开关作用典型场景supportsDeveloperRole系统提示是否可用developer角色大多数国产网关设falsemaxTokensField输出上限字段名只认max_tokens的服务端supportsReasoningEffort是否接受reasoning_effort不支持该参数的网关设falsethinkingFormat推理参数的传输格式DeepSeek 风格设deepseekvLLM 用 chat-template 系列chatTemplateKwargs随chat_template_kwargs发送的参数只在 chat-template 类thinkingFormat下生效supportsThinkingTokenBudget是否接受thinking_token_budgetvLLM 推理预算supportsUsageInStreaming是否接受stream_options.include_usage流式不返回用量的服务端supportsFinishReason流里是否有finish_reason设false让 pi-ai 自行推断requiresToolResultName工具结果是否必须带name部分网关校验严格requiresThinkingAsText思考块是否必须以thinking文本传输不支持原生推理块的服务端cacheControlFormat提示缓存标记格式有缓存但格式不同的网关anthropic-messages协议另有supportsTemperature、supportsCacheControlOnTools、forceAdaptiveThinking、allowEmptySignature、supportsStrictTools等三种 Responses 协议共享supportsDeveloperRole、supportsStrictMode、supportsLongCacheRetention。三条硬规则开关归属协议。在openai-completions上合法的开关放到anthropic-messages路由会被拒绝报错会列出该协议可用的开关。写了就要给值。supportsDeveloperRole:冒号后留空会被拒绝因为空值会抹掉目录已知信息。路由级是默认模型级逐字段胜出。只有一个模型有问题就在它自己的compat下改不必重写整条路由。接入视觉模型input 与 defaultInput手工录入的模型默认按纯文本处理附图会在发送前被拒绝因为 DSH 无法询问端点接受什么模态。要用视觉模型必须显式声明。单个模型加一行models:-id:vision-previewinput:[text,image]路由上所有手工模型都支持图片在路由上设一次回退vision-gateway:defaultInput:[text,image]三个规则input只作用于那个模型defaultInput是回退值不是覆盖值绝不会去掉目录模型本来有的图片能力目录提供方没有models列表可填要收窄某个目录模型的模态用modelOverrides以模型 ID 为键这是断言不是检查声明了端点其实不支持的图片能力请求会被提供方拒绝。此时要从授予它图片能力的那个列表里移除image并开新会话因为附加的图片留在会话日志里同一请求会不断重复失败dsh-llm-deepseek路由是纯文本的无法通过配置改成视觉DeepSeek 自家的视觉模型通过该适配器的 Files API 路径处理图片。接入本地模型Ollama 与 vLLM本地服务走自定义提供方协议选openai-completions两个坑是无密钥和推理格式。无密钥服务需要占位凭据。README 的已知限制写明pi-ai 的 OpenAI 兼容实现仍要求 API 密钥或Authorization标头因此无密钥本地服务器需要由apiKeyEnv引用或headers中的Authorization条目提供的占位凭据。local-vllm:apiKeyEnv:LOCAL_PLACEHOLDER_KEY# 环境变量里随便设一个非空值api:openai-completionsbaseURL:http://127.0.0.1:8000/v1defaultContextWindow:32768compat:supportsDeveloperRole:falsemaxTokensField:max_tokenssupportsThinkingTokenBudget:truemodels:-id:本地模型名reasoningEfforts:false# 非推理模型显式关掉要点defaultContextWindow默认 262,144本地小模型务必改小否则上下文管理会按错误容量工作reasoningEfforts: false声明非推理模型推理模型则按网关词汇写reasoningEfforts每个键是等级、值是过线拼写max: ultra这种重命名是允许的Ollama 在 pi-ai 目录内可直接作为目录提供方添加vLLM 等自建服务按上面手工声明目录模型微调models 替换 vs modelOverrides想修正目录里某个模型的容量、模态或推理能力不要用models列表用modelOverrides。写法效果适用models: [...]整体替换路由目录未列出的模型消失每个条目从同 ID 目录模型继承未设字段想把路由收窄到两三个模型或加目录里还没有的新模型modelOverrides: {id: {...}}只改点名的模型其余原样服务“修正一个保留其余三十七个”anthropic:apiKeyEnv:ANTHROPIC_API_KEYmodelOverrides:模型ID:contextWindow:200000input:[text]modelOverrides有三种情况会被直接拒绝而不是静默跳过与models并存、写在手工声明的路由上、点名目录里没有的模型。文档的理由是静默不变的模型会成为别人日后寻找的拼写错误。排错对照表DSH 的模型层错误带稳定错误码对照即可定位。现象 / 错误码原因处理MISSING_CREDENTIALapiKeyEnv引用解析为空在模型页存密钥或设置对应环境变量INVALID_CREDENTIAL凭据无法使用报错会点名路由与引用更换密钥UNKNOWN_MODEL请求的模型未配置选已配置模型或把它加进自定义路由的models获取可用模型返回 401Key 错检查密钥无/models端点则手动填模型Key 和 URL 都对但全部拒绝请求形状与 OpenAI 不同先加supportsDeveloperRole: false和maxTokensField: max_tokens只有推理模型失败系统提示以developer角色发出被拒supportsDeveloperRole: falsecompat 开关被拒绝冒号后没写值或开关不属于该协议给值或删键按报错列出的可用开关改图片发送前被拒模型未声明图片模态加input: [text, image]提供方拒绝带图请求声明了端点不支持的图片能力移除image并开新会话UNSTORABLE_PROVIDER_ID路由键不是小写连字符标识无法登录改用apiKeyEnvDUPLICATE_ADAPTER两个适配器注册了同名路由改路由名deepseek-official只属于dsh-llm-deepseekQUOTA/RATE_LIMIT配额耗尽 / 暂时限流前者换 Key 或充值后者等待重试模型选择器显示选择模型且无法输入默认值指向已删除的提供方重新选一个模型常见问题Q可以同时用 DeepSeek 官方和其他提供方吗可以。dsh-llm-deepseek和dsh-llm-pi-ai路由名不冲突官方文档明确两个适配器可以同时挂载。会话级别按模型选择器切换即可已发送过请求的会话保留自己日志里记录的模型。Q一条路由能混用 OpenAI 和 Anthropic 两种协议的模型吗不能。README 已知限制写明每条路由一种协议格式变通办法是把同一提供方拆成两个路由键各选一种api。Q改了 settings.yaml 要重启 DSH 吗不用。配置按操作重新读取下一个请求生效。但 DSH Desktop 用户注意插件的增删需要重启 Desktop模型配置不需要。QDSH 支持哪些协议的自定义网关源码协议表只有三种openai-completions、openai-responses、anthropic-messages。Bedrock、Vertex、Azure、Codex 只能通过目录提供方走各自原生认证不能用自定义路由的api显式指向。Q模型目录会自动刷新吗不会。README 写明目录就是 settings.yaml 的内容没有机制向提供方查询它新增了什么模型。新模型要手动加进models列表或在 Web UI 重新点获取可用模型后保存。总结DeepSeek Harness 接入其他模型的核心是dsh-llm-pi-ai插件的providers字典目录内提供方填 Key 就通目录外网关写api、baseURL、models三项就通剩下的问题基本落在compat开关和input模态声明上。Web UI 覆盖前两步settings.yaml覆盖全部且改完即生效。国内多模型平台、本地 vLLM 与海外提供方走的是同一套配置差别只在协议选择和兼容开关。据 DSH 官方《配置模型》文档pi-ai对于它无法识别的地址会当作 OpenAI 本身来对待这是绝大多数网关接入失败的根源dsh-llm-pi-aiREADME 则强调配置目录派生自源码因此不会落后于适配器实际接受的内容。本文基于 2026 年 9 月 2 日 DeepSeek Harness 仓库dsh-v0.1.2-alpha.4的官方文档项目处于开发者预览阶段并明确未来将出现破坏兼容性的变更字段名以配置目录最新版为准。参考资料DSH 官方文档《配置模型》中文https://github.com/deepseek-ai/deepseek-harness/blob/main/docs/user/guide/providers.zh.md七牛云 Token Plan多模型统一接入dshhttps://www.qiniu.com/ai/plan
返回列表