dsh-devin2api:在 DeepSeek Harness 中接入 Devin2API 模型提供者

前言

DeepSeek Harness(DSH)把模型、工具与界面拆成可插拔模块。若你已经在本地或内网跑 devin-2api-lite 网关,希望在同一条 Harness 会话里选 Devin 侧模型、走流式对话与工具调用,单独写 HTTP 客户端往往要重复处理目录发现、SSE 映射和配额展示。下面介绍社区插件 dsh-devin2api(维护者 Green-hats,分类:模型推理):它在 DSH 里注册 devin2api 提供者路由,对接网关的 OpenAI 兼容接口,并附带设置页与配额指示。插件当前 GitHub 星标为 0;社区目录见 SkillHub 条目,与 DeepSeek / 幻方无官方从属关系。

这是什么

dsh-devin2api 是 DSH 的 model-provider 插件(package.json 版本 0.1.0,许可证 MIT)。README 明确:插件是客户端一半;devin-2api-lite 负责 Devin 协议、目录、配额与上游 token。须先启动网关,否则插件不会对外宣告任何模型,也无法流式输出。

数据路径概括如下:从 GET /v1/models 读目录,将 POST /v1/chat/completions 的 SSE 转成 DSH 的 StreamChunk;Web UI 侧提供 Devin2API 设置页、按模型开关与 composer 配额 pill。

环境与依赖

安装插件前,请核对 README 中的要求:

  • DeepSeek Harness 0.2.x(文档写明在 0.2.1-rc.3 上测试);peer 依赖 @deepseek-ai/dsh-llm >= 0.1.5-rc.1、@deepseek-ai/schemastery >= 3.18.0。
  • Node.js ^22.19.0 || >=24.0.0(与插件 engines 一致)。
  • devin-2api-lite:需支持 /v1/quota,且对只读 GET 配置 CORS;图片需 Host 的 attachments 服务。

核心功能

以下能力均来自仓库 README,未在资料中出现的细节不写。

推理与协议

  • 流式文本、推理块(reasoning)与 tool calls,并映射为稳定错误码(如 AUTH、QUOTA、TIMEOUT、IMAGE_BUDGET、EMPTY_CATALOG 等)。
  • 当前轮用户消息中的图片会以 resize、字节上限后的 data URL 上传;历史轮图片变为 [Image omitted from history]。
  • models 白名单与 modelVisibility 可热更新;目录缓存 TTL 由 refreshMinutes 控制。

Web UI

  • Settings → Devin2API:网关状态、日/周配额、目录开关与刷新。
  • Settings → Models → Devin2API:base URL、密钥、图片、模型发现。
  • Composer pill:仅在使用 devin2api 模型时显示;约 60 秒轮询;点击可带 ?fresh=1 刷新配额。

浏览器对 /healthz、/v1/models、/v1/quota 直连调用且不带 API key;若 lite 配置了 auth.api_key,目录/面板读取会失败(聊天仍可用),只读场景下开关会不可用。

网关端点(插件侧调用关系)

端点 用途 凭证
GET /healthz 设置面板 无
GET /v1/models 目录发现 Host 侧 Bearer;浏览器无
GET /v1/quota 配额 pill / 面板 浏览器无
POST /v1/chat/completions 每次模型调用 Bearer
POST /__clientlog 诊断 无,本地

安装与启用

DSH 插件以当前 dsh 进程权限运行;安装前请自行查看 GitHub 源码 与 MIT 许可证,确认符合你的安全策略。任务说明禁止在介绍正文中用 git clone 拉插件本身;网关 devin-2api-lite 的启动步骤以 README Quick start 为准(需在本机按官方仓库说明配置 config.yaml 中的 devin.token 并运行网关)。

1、启动 devin-2api-lite 网关(README 示例默认监听 http://127.0.0.1:18089;具体以你的 lite 配置为准)。

2、安装 DSH 插件(安装后需重启对应 profile,再刷新页面):

dsh plugin --profile desktop add github:Green-hats/dsh-devin2api

本地开发也可使用绝对路径:dsh plugin --profile desktop add /absolute/path/to/dsh-devin2api。

3、健康检查:

curl -s http://127.0.0.1:18089/healthz

在 Settings → Models → Devin2API 配置,或在 $DSH_HOME/profiles/<profile>/cordis.patch.yml 中覆盖对应行:

- id: devin2api
  config:
    providers:
      devin2api:
        baseURL: http://127.0.0.1:18089/v1
        apiKeyEnv: DEVIN2API_API_KEY

然后在 /model 选择 Devin2API 作为模型来源。

配置要点

配置项位于 providers.devin2api 下;除 enabled 需重载外,其余字段在设置写入后即时生效。常用字段如下(默认值以 README 表格为准):

字段 默认 说明
displayName Devin2API 选择器中的提供者名称
baseURL http://127.0.0.1:18089/v1 含 /v1 的网关根
apiKey / apiKeyEnv '' / DEVIN2API_API_KEY 明文密钥或按请求读取的环境变量
enabled true 挂载开关
models [] 空表示全部;非空为 id 或 { id, name } 白名单
modelVisibility {} 单模型可见性,false 隐藏
images true 是否为视觉模型声明图片输入
contextWindow / maxTokens 262144 / 128000 上报给 DSH 的上限(非 /v1/models 字段)
refreshMinutes 5 目录缓存 TTL,最小 1
requestTimeoutMs 300000 含流式的单次请求超时
imagePixelBudget / imageMaxBytes 4194304 / 1048576 单图缩放预算
maxRequestImageBytes 20971520 单次请求 base64 总字符上限

Models 页会把环境变量 DEVIN2API_BASE_URL 作为 endpoint 提示展示。

典型用法

经过上面的安装与配置,日常流程可以是:

  1. 确认 lite 网关可达(curl /healthz),且 DSH Host 也能访问同一 baseURL。
  2. 在设置里填写 apiKey 或设置 DEVIN2API_API_KEY,与 lite 的 auth.api_key 一致,避免 AUTH。
  3. 在 /model 选 Devin2API,从目录中选具体模型;需要限制暴露面时配置 models / modelVisibility。
  4. 在 composer 中对话;若模型支持视觉且 images: true,仅当前轮附带的图片会上传。
  5. 通过 composer 配额 pill 或 Settings → Devin2API 查看配额;网关异常时 pill 可能不显示(模型非 devin2api、网关 down、CORS 或 auth.api_key 等,见 README Troubleshooting)。

README 还说明:当前 lite 对采样参数(max_tokens、temperature 等)有固定行为,可能忽略客户端传入值;插件仍会转发 temperature / stop,以便将来网关 honoring 时无需改插件。

适用场景与注意

适合谁

  • 已在运行 devin-2api-lite,希望在 DSH 桌面 profile(或其他已装插件的 profile)里统一选模型、走 Harness 工具链与 UI 的开发者。
  • 需要目录热刷新、配额可视化、按模型开关,而不想自研 OpenAI 兼容适配层的情况。

务必注意

  • 无网关则无模型列表、无流式输出;排查「模型选择器为空」时应对 curl 网关 /v1/models,必要时用 models 作兜底并 reload 插件。
  • 插件不持有 replay 状态等多轮回放能力(README Limitations 已截断提及);以仓库完整说明为准。
  • 客户端错误可经 POST /__clientlog 上报,lite 会追加到 $TMPDIR/dsh-devin2api-client.log。

代码结构(便于二次阅读)

README 给出的模块划分:

lib/index.js     host adapter, registration, discovery, settings policy
lib/protocol.js  message/tool/SSE translation
lib/catalog.js   catalog, quota, visibility, error mapping
lib/schema.js    volatile Config schema
lib/client.js    settings page, switches, quota pill

结尾

dsh-devin2api 把 devin-2api-lite 以 devin2api 提供者形式接入 DeepSeek Harness:目录与聊天走标准 /v1 接口,设置与配额落在 Web UI。使用前准备好 DSH 0.2.x、Node 版本与已运行的 lite 网关,并按 README 配置 baseURL 与 Bearer 凭证。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye