前言¶
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 提示展示。
典型用法¶
经过上面的安装与配置,日常流程可以是:
- 确认 lite 网关可达(
curl /healthz),且 DSH Host 也能访问同一baseURL。 - 在设置里填写
apiKey或设置DEVIN2API_API_KEY,与 lite 的auth.api_key一致,避免AUTH。 - 在
/model选 Devin2API,从目录中选具体模型;需要限制暴露面时配置models/modelVisibility。 - 在 composer 中对话;若模型支持视觉且
images: true,仅当前轮附带的图片会上传。 - 通过 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 凭证。