DeepSeek Harness 配置mimo指南
·
DeepSeek Harness 自定义模型提供商配置指南
适用版本:deepseek-harness 0.1.0-rc.7
本文基于实际配置踩坑经验整理,覆盖从安装到跑通自定义模型的完整流程。
1. 安装 DeepSeek Harness
npm install -g @deepseek-ai/dsh
dsh --version
安装完成后,DSH 主目录位于 ~/.dsh(Windows 下为 C:\Users\<用户名>\.dsh)。
目录结构:
.dsh/
├── .credentials.yaml # 凭据文件(API Key)
├── settings.yaml # 主配置(热重载)
├── profiles/
│ └── web/ # Web profile 的插件和依赖
├── sessions/ # 会话日志
└── storages/ # 数据存储(含 pentest sqlite)
2. 配置自定义模型提供商
2.1 核心概念
DSH 的模型接入采用"能力缝"设计,用户只需关注两个 LLM 插件:
| 插件 | 定位 | 默认状态 |
|---|---|---|
llm-deepseek |
官方 DeepSeek API 专用 | 默认挂载 |
llm-pi-ai |
通用多协议提供商(基于 pi-ai) | 默认休眠,有配置才激活 |
关键约束:api 字段是路由级必填项,一个路由只能用一种协议。合法值:
| api 值 | 协议 |
|---|---|
openai-completions |
OpenAI 兼容 chat completions |
openai-responses |
OpenAI Responses API |
anthropic-messages |
Anthropic Messages API |
2.2 配置文件
主配置:~/.dsh/settings.yaml(热重载,改完即生效,无需重启)
凭据文件:~/.dsh/.credentials.yaml
DEEPSEEK_API_KEY: sk-xxxxxxxxxxxxxxxx
XIAOMI_TOKEN_PLAN_CN_API_KEY: tp-xxxxxxxxxxxxxxxx
凭据优先级:进程环境变量 >
.credentials.yaml>.env
2.3 配置示例:接入小米 MiMo
# ~/.dsh/settings.yaml
ui-theme:
preference: dark
agent-default-model:
provider: xiaomi-token-plan-cn # 默认使用的提供商
model: mimo-v2.5-pro # 默认使用的模型
llm-pi-ai:
providers:
xiaomi-token-plan-cn:
api: anthropic-messages # 必填!指定线协议
displayName: 小米 MiMo
baseURL: https://token-plan-cn.xiaomimimo.com/anthropic
apiKeyEnv: XIAOMI_TOKEN_PLAN_CN_API_KEY # 引用 .credentials.yaml 中的变量名
models:
- id: mimo-v2-pro
name: MiMo-V2-Pro
contextWindow: 1048576
maxTokens: 131072
- id: mimo-v2.5
name: MiMo-V2.5
contextWindow: 1048576
maxTokens: 131072
- id: mimo-v2.5-pro
name: MiMo-V2.5-Pro
contextWindow: 1048576
maxTokens: 131072
2.4 配置示例:同时接入 DeepSeek 官方 + MiMo
如果同时使用多个提供商,llm-deepseek 的默认模型目录可能和 llm-pi-ai 的重复。用 models: [] 去重:
llm-deepseek:
apiKeyEnv: DEEPSEEK_API_KEY
baseURL: https://api.deepseek.com
models: [] # 空数组 = 禁用默认模型目录,避免重复
llm-pi-ai:
providers:
deepseek:
api: openai-completions
baseURL: https://api.deepseek.com
apiKeyEnv: DEEPSEEK_API_KEY
models:
- id: deepseek-v4-flash
name: DeepSeek V4 Flash
contextWindow: 1000000
maxTokens: 384000
compat:
thinkingFormat: deepseek
supportsReasoningEffort: true
- id: deepseek-v4-pro
name: DeepSeek V4 Pro
contextWindow: 1000000
maxTokens: 384000
compat:
thinkingFormat: deepseek
supportsReasoningEffort: true
xiaomi-token-plan-cn:
api: anthropic-messages
baseURL: https://token-plan-cn.xiaomimimo.com/anthropic
apiKeyEnv: XIAOMI_TOKEN_PLAN_CN_API_KEY
models:
- id: mimo-v2.5-pro
name: MiMo-V2.5-Pro
contextWindow: 1048576
maxTokens: 131072
2.5 验证模型配置
方式一:Web UI
浏览器打开 http://127.0.0.1:3080 → Settings → Models,检查模型是否出现。
方式二:API
curl -s http://127.0.0.1:3080/api/llm.models \
-H "Content-Type: application/json" \
-d '{"type":"client-request","rpcId":"test","method":"llm.models","payload":{}}'
响应中 result.value.groups 列出各提供商及其模型,failures 列出注册失败的提供商与原因。
3. 常见问题排查
3.1 模型请求报 404 / PI_AI_ERROR
原因:settings.yaml 中缺少 api 字段。
症状:DeepSeek 模型能用,但其他模型(如 MiMo)报错:
本轮运行失败404
<html><body><h1>404 Not Found</h1></body></html>
PI_AI_ERROR
修复:给提供商配置加上 api 字段,根据端点选择正确的协议:
llm-pi-ai:
providers:
your-provider:
api: anthropic-messages # ← 加这一行
baseURL: https://...
3.2 模型选择器看不到新模型
- 检查
settings.yaml的 YAML 缩进是否正确 - 检查
.credentials.yaml中的变量名是否和apiKeyEnv一致 - 打开
http://127.0.0.1:3080→ Settings → Models 查看是否有注册失败信息
3.3 模型选中后请求失败
原因:api 字段和端点实际协议不匹配。
排查:先用 curl 直连端点验证:
# 测试 Anthropic 协议端点
curl -X POST https://your-endpoint/v1/messages \
-H "x-api-key: YOUR_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model":"your-model","max_tokens":10,"messages":[{"role":"user","content":"hi"}]}'
# 测试 OpenAI 协议端点
curl -X POST https://your-endpoint/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"your-model","max_tokens":10,"messages":[{"role":"user","content":"hi"}]}'
4. 配置参考速查
# ~/.dsh/settings.yaml 完整模板
ui-theme:
preference: dark
agent-default-model:
provider: <提供商路由名>
model: <模型ID>
llm-deepseek:
apiKeyEnv: DEEPSEEK_API_KEY
baseURL: https://api.deepseek.com
models: [] # 如果用 llm-pi-ai 接 deepseek,这里置空去重
llm-pi-ai:
providers:
<路由名>:
api: <协议> # 必填:openai-completions | openai-responses | anthropic-messages
displayName: <显示名>
apiKeyEnv: <凭据变量名>
baseURL: <端点地址>
models:
- id: <模型ID>
name: <显示名>
contextWindow: <上下文窗口>
maxTokens: <最大输出>
compat: # 可选:模型级协议方言
thinkingFormat: deepseek
supportsReasoningEffort: true
reasoning: <推理级别> # 可选:off | minimal | low | medium | high | xhigh | max
# ~/.dsh/.credentials.yaml
DEEPSEEK_API_KEY: sk-xxxxxxxxxxxxxxxx
XIAOMI_TOKEN_PLAN_CN_API_KEY: tp-xxxxxxxxxxxxxxxx
更多推荐

所有评论(0)