前言¶
在使用 DeepSeek Harness(DSH)构建智能体时,Provider Route 层通常负责路由配置和凭证管理。然而,像 MotoMoto 这样的中转服务可能存在特定的协议要求(如特定的请求头、参数过滤或流式响应处理),这些细节超出了标准路由配置的表达能力。dsh-llm-motomoto 插件填补了这一空白,负责处理中转的“线路级”细节(如头部重写、参数清理和连接关闭),并在设置页面提供实时的路由状态监控。
核心功能¶
- 协议适配:将 API 设置为
openai-completions,以适配 MotoMoto 的端点规范。 - 请求改造:自动重写
User-Agent,设置originator头部,并自动删除上游拒绝的请求体参数(如max_output_tokens)。 - 流式响应处理:在识别到 SSE 终端事件或 Chat Completions 的
data: [DONE]后关闭连接,防止连接泄漏。 - 作用域隔离:仅对
motomoto.lol主机生效,其他主机的请求不受影响。 - 配置加载:从
~/.dsh/settings.yaml的llm-motomoto键加载运行时配置。 - 状态监控:在设置页面提供实时状态卡片(需要 dsh >= 0.1.7)。
- 架构设计:不包含 Provider Route,完全依赖用户在设置层配置路由。
安装¶
使用本地文件路径安装插件:
git clone https://github.com/HandsYe/dsh-llm-motomoto
dsh plugin --profile desktop add "file:<克隆下来的仓库路径>"
配置与使用¶
插件本身不包含 Provider Route,需要你在用户设置层配置路由,并在插件配置层定义中转的行为。
1. 配置中转插件参数¶
在 ~/.dsh/settings.yaml 中添加 llm-motomoto 字段:
llm-motomoto:
host: motomoto.lol # 请求目标主机
userAgent: codex_cli_rs/0.46.0 (Windows 10.0.26200; x86_64) WindowsTerminal
originator: codex_cli_rs # 空字符串可省略该头部
headers: {} # 额外头部,空值表示移除
stripBodyParams: # 后端拒绝的请求体字段
- max_output_tokens
2. 配置 Provider Route¶
在 llm-pi-ai 提供商中添加 motomoto 路由,指定 API 类型和端点:
llm-pi-ai:
providers:
motomoto:
displayName: MotoMoto
apiKeyEnv: MOTOMOTO_API_KEY
api: openai-completions # 使用 openai-completions 端点
baseURL: https://motomoto.lol/v1
models:
- id: gpt-5.5
3. 验证状态¶
安装完成后,在 设置 -> MotoMoto relay 中查看实时路由状态卡片,确认配置已生效。
注意事项¶
- 凭证安全:插件不存储 API Key,必须通过环境变量
MOTOMOTO_API_KEY提供凭证。 - 上游稳定性:MotoMoto API 描述为“尽力而为”,可能返回 502 错误。插件无法修复中转站后端的故障。
- 版本要求:设置状态卡片功能需要 dsh >= 0.1.7。旧版使用
llm-motomoto:键名。 - 作用域限制:仅对
motomoto.lol主机生效,其他主机的请求不受插件影响。