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

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

小夜