前言¶
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 时,适配器执行以下流程:
- 将 dsh 的
GenerateOptions(messages、tools、system prompt、images)转译为 Devin 的GetChatMessageRequestprotobuf。 - 从 Devin Connect RPC endpoint 流式读取响应。
- 将每个
GetChatMessageResponse帧解码为 dsh 的StreamChunk协议,包括 text deltas、reasoning deltas、tool-call deltas、usage 和 finish。
这里有两点比较关键:
- 动态模型目录:通过
GetCascadeModelConfigsRPC 获取 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 的解析优先级是:
- dsh 设置面板中的
token。 - 插件 composition 中 entry config 的
config.token。 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