dsh-plugin-devin-bridge:把 Devin 託管模型接入 DSH 模型提供者系統

前言

DSH 的智能體循環通常圍繞其模型提供者系統工作。如果你的後端模型來自 Devin,例如 glm-5.2、swe-1.7,而 dsh 內部需要以 provider 方式路由請求,就需要一個適配器把 Devin 的 Connect RPC API 映射到 dsh 的 LLM 接口。

dsh-plugin-devin-bridge 做的事情很具體:它註冊 devin provider,讓 dsh 可以把 Devin 託管模型作爲後端調用,並把 Devin 的流式響應解碼爲 dsh 的 StreamChunk。

這是什麼

dsh-plugin-devin-bridge 是一個 dsh LLM adapter plugin,維護者爲 Arborsm,許可證爲 MIT。

它解決的核心問題是:Devin 的模型 API 是 Connect RPC 形式,而 dsh 的模型提供者系統需要 GenerateOptions、StreamChunk 這類本地協議。這個插件在中間做協議轉譯,使 provider: devin 可以像其他 dsh provider 一樣被模型選擇器和程序化路由使用。

工作方式

插件在 dsh 的 LLM seam(LlmAdapter)上註冊 devin provider 路由。當 dsh agent loop 把請求路由到 provider: devin 時,適配器執行以下流程:

  1. 將 dsh 的 GenerateOptions(messages、tools、system prompt、images)轉譯爲 Devin 的 GetChatMessageRequest protobuf。
  2. 從 Devin Connect RPC endpoint 流式讀取響應。
  3. 將每個 GetChatMessageResponse 幀解碼爲 dsh 的 StreamChunk 協議,包括 text deltas、reasoning deltas、tool-call deltas、usage 和 finish。

這裏有兩點比較關鍵:

  • 動態模型目錄:通過 GetCascadeModelConfigs RPC 獲取 Devin 即時模型列表,帶 5 分鐘 TTL 緩存,併合並用戶配置模型作爲回退。
  • 網絡失敗處理:動態目錄請求失敗時,會優雅回退到靜態配置。

安裝與啓用

先確認運行環境滿足 package 聲明:

node ^22.19 || >=24
dsh >=0.1.0-rc.6

然後使用安裝命令:

pnpm add https://github.com/Arborsm/dsh-plugin-devin-bridge.git

安裝後,插件需要可用憑證。沒有憑證時,它會在啓動時拋出錯誤,而不是靜默失敗。

憑證與 token

該插件使用 Devin session token 認證,token 格式爲:

devin-session-token$<...>

token 的解析優先級是:

  1. dsh 設置面板中的 token。
  2. 插件 composition 中 entry config 的 config.token。
  3. devin auth login 生成的 credentials.toml。

自動讀取 credentials.toml 的默認路徑爲:

Windows:
%APPDATA%\devin\credentials.toml

macOS/Linux:
~/.local/share/devin/credentials.toml
$XDG_DATA_HOME/devin/credentials.toml

也可以使用環境變量覆蓋路徑:

DEVIN_CREDENTIALS_PATH=/path/to/credentials.toml

token 字段被標記爲 secret。在返回到 wire 表面的設置描述符中,它會自動 redacted。

可選配置

可選配置項包括:

token
baseUrl
proxy
forceHttp1
defaultContextWindow
defaultMaxTokens
models
retryPolicy

下面是示例配置。所有字段都是 optional;示例中的 baseUrl、proxy、forceHttp1 等值按 README 示例保留。

config:
  token: ""
  baseUrl: "https://server.codeium.com"
  proxy: ""
  forceHttp1: true
  defaultContextWindow: 128000
  defaultMaxTokens: 16384
  models:
    - id: "glm-5-2"
      name: "GLM-5.2"
      contextWindow: 128000
      maxTokens: 16384
      supportsImages: false
    - id: "swe-1-7"
      name: "SWE-1.7"
      contextWindow: 128000
      maxTokens: 16384
      supportsImages: true

其中 models 是示例模型目錄。supportsImages 表示對應模型是否通過 dsh 附件系統接受圖像輸入。proxy 支持 http/https/socks5 形式的出站代理 URL。forceHttp1 示例值爲 true。

當 dsh settings service 可用時,上述配置可以通過設置面板在運行時調整,並且修改即時生效(live applies)。

典型用法

配置完成後,dsh 模型選擇器會顯示 Devin 作爲 provider,並可看到可用模型。可以在 UI 中直接選擇模型,也可以在程序里路由到:

provider: devin

從能力映射看,插件會把 Devin 的響應轉成 dsh 能消費的塊:

  • 文本流式:完整文本增量流與塊組裝。
  • 推理/思考內容:映射爲 dsh reasoning 塊。
  • 工具調用:將 Devin tool-call 增量轉換爲 dsh tool-call 塊。
  • 圖像輸入:視覺能力模型通過 dsh 附件系統接受圖像輸入。
  • token 用量:向 dsh 報告輸入/輸出 token 用量。
  • 系統提示:做身份無關的系統提示重寫,用於跨模型兼容。

適用場景與注意

適合以下場景:

  • 你已經有 Devin session token,並且希望在 dsh 中把 glm-5.2、swe-1.7 等 Devin 託管模型作爲後端。
  • 你希望 dsh 的模型選擇器、運行時設置面板和程序化 provider 路由能直接工作。
  • 你使用 dsh 內部 agent loop,並且需要文本、推理、工具調用、圖像附件和 token 用量映射。

使用前建議注意:

  • 插件會讀取並傳遞 Devin session token,安裝前應檢查源碼、依賴和許可證。
  • 插件以當前 dsh 進程權限運行,憑證文件、網絡代理和出站請求都受你的環境控制。
  • 動態模型目錄依賴網絡請求;失敗時會回退到靜態配置,但這不等於 Devin 服務一定可用。
  • token、baseUrl、proxy 等配置會影響實際認證和出站行爲,生產環境建議顯式配置並審查。

鏈接

源碼倉庫:

https://github.com/Arborsm/dsh-plugin-devin-bridge

目錄頁:

https://www.skillhub.cn/plugins/Arborsm/dsh-plugin-devin-bridge
羽毛球分组比赛记分
小程序二维码

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

小夜