dsh-llm-motomoto:MotoMoto 中转的 DeepSeek Harness 补全包

前言

在使用 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 主机生效,其他主机的请求不受插件影响。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜