前言¶
在使用 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主機生效,其他主機的請求不受插件影響。