前言¶
DeepSeek Harness(dsh)通过插件扩展 LLM 路由与凭据管理。若你已在 OpenCode Console / Zen(按量计费)或 OpenCode Go / Go Plus(订阅配额)侧持有密钥,希望在 dsh 智能体、聊天与工具调用里直接走 OpenCode 网关,而不是手工拼 HTTP 或混用内置目录里同名路由,就需要一条与 harness 凭据、会话、流式工具链对齐的 provider。
内置 llm-pi-ai 已占用 opencode、opencode-go 等目录 id;重复注册会触发 DUPLICATE_DIRECTORY,核心会丢弃内置目录并影响其他提供商。本插件以 opencode-direct、opencode-go-direct 注册独立路由,并在 UI 中对应 OpenCode (plugin)、OpenCode Go (plugin)。下面介绍其定位、能力与安装配置方式。
这是什么¶
@goodandready/dsh-opencode-provider(仓库 GooDAnDReaDY/dsh-opencode-provider)由维护者 GooDAnDReaDY 发布,分类为模型推理,许可证为 MIT。npm 包当前版本为 0.5.14(以 package.json 为准)。
一句话定位:面向 dsh 的 OpenCode Console 与 OpenCode Go LLM 提供商插件,在网关 https://opencode.ai/inference 与 https://opencode.ai/inference/go 之上注册两条原生路由,并按模型选择四种底层传输协议完成对话、推理、流式工具调用与用量回传。
核心功能¶
两条 LLM 路由¶
| 路由 id | 产品 / 方案 | 基础接口 |
|---|---|---|
opencode-direct |
OpenCode Console / Zen | https://opencode.ai/inference |
opencode-go-direct |
OpenCode Go / Go Plus | https://opencode.ai/inference/go |
密钥在每次调用时解析;在设置或环境文件中更换凭据后,下一次请求即可生效,无需重启 dsh 进程(安装插件本身仍通常需要重启以加载插件)。
四种 Wire 传输¶
按模型自动选择协议,覆盖 README 中列出的厂商与系列,例如:
- OpenAI Chat Completions(DeepSeek、GLM、Kimi、MiMo、LongCat、Hy3、Step 等)
- Anthropic Messages(Claude、MiniMax、Qwen 等,含 thinking signatures 重放)
- OpenAI Responses(GPT、Grok、Muse 等)
- Google Generative AI(Gemini,含
thoughtSignature重放)
支持文本、reasoning、流式 tool calls、usage 与 finish reasons。图像经持久化附件服务按协议传输;文件附件投影为 DSH 确定性 handle 文本,不传 inline 字节。
多账户、配额与回退¶
- 多账户池:流开始前对 401/403/429 及配额类响应(400/402/403/429)轮换账户;无效密钥冷却 24h,配额拒绝约 10 分钟或
Retry-After,限流约 60 秒或Retry-After。已开始的流不会在中途换号。 - 每账户展示 5 小时 / 周 / 月用量;Go 方案侧有基于定价表的订阅额度估算(模型选择器与设置页展示,网关仍为权威)。
modelAccountRules支持 Glob,将模型优先绑定到指定账户,其余账户作备用。- 配额回退:Go 配额错误时可配置免费模型,经 Console/Zen 重试一次。
- 会话粘性:同一会话优先上次成功账户,经本地
sticky.json(仅哈希 session id 与密钥指纹)跨重启保留。
可观测与操作面¶
- 配额面板:请求热力图(本地时区)、按账户统计、路由追踪(
rule、sticky、rotation、quota-fallback等)。 - 请求元数据追加到
~/.dsh/storages/dsh-opencode/requests.jsonl(不含 prompt、response 或密钥);文件约 2 MB 时压缩保留最新 5000 行。 - 斜杠指令
/opencode:status、usage、accounts、models、rules、test [model]。 - TUI:
/settings → OpenCode配置密钥、端点、allowlist、活动账户、回退模型、粘性路由与超时。 - Web 设置页支持版本比对与通过 DSH CLI 安装指定 npm 版本的一键更新(主机端点
GET/POST /dsh-opencode/update)。
与 dsh 版本的兼容范围¶
package.json 中声明:dsh 为 0.2.0-rc.2 || 0.2.1-rc.2,Node.js >=22。
安装与启用¶
从 npm 安装已发布版本(命令摘自官方中文 README):
dsh plugin --profile web add @goodandready/dsh-opencode-provider@0.5.14
DSH 桌面端将 --profile web 换成 --profile desktop:
dsh plugin --profile desktop add @goodandready/dsh-opencode-provider@0.5.14
若使用本地打包的 .tgz,路径须为绝对路径,文件名中的版本号与包内一致,例如:
dsh plugin --profile web add /absolute/path/to/goodandready-dsh-opencode-provider-0.5.14.tgz
安装完成后重启 dsh 或 DSH 桌面端。在模型选择器中选择 OpenCode (plugin) 或 OpenCode Go (plugin),不要与内置 opencode / opencode-go 路由混用同一套账户与遥测预期。旧会话仍可能走内置路由。
典型用法¶
插件配置片段¶
在 dsh 插件配置中引用包名,并按环境设置密钥来源(示例来自 README):
- id: llm-opencode
name: "@goodandready/dsh-opencode-provider"
config:
apiKeyEnv: OPENCODE_API_KEY # 环境变量或 DSH 凭据名
# apiKey: oc_sk_... # 仅本地调试,严禁提交代码库
openCodeAuthEntry: opencode-go
requestTimeoutMs: 300000
streamIdleTimeoutMs: 300000
visibleModels: []
modelTransports: {}
accounts:
- label: Go #2
apiKeyEnv: OPENCODE_API_KEY_2
activeAccount: ''
密钥解析顺序¶
- 配置中的
config.apiKey - DSH 凭据服务里
apiKeyEnv指向的凭据 ~/.local/share/opencode/auth.json中openCodeAuthEntry对应项(默认opencode-go)- 进程环境变量或
$DSH_HOME/.env
Web UI 还提供 Import all from auth.json、Check all accounts 等账户引导能力。
模型到账户规则¶
modelAccountRules:
- pattern: "*free*"
account: "free"
- pattern: "your-provider-*"
account: "go"
会话内快捷查询¶
/opencode status
/opencode usage
/opencode accounts
/opencode models
/opencode rules
/opencode test [model]
test 会发送最小化请求,用于连通性检查。
适用场景与注意¶
适合谁: 已在 OpenCode 生态付费或订阅、希望把同一套密钥与多账户策略带进 dsh 智能体工作流;需要按模型切换 OpenAI / Anthropic / Google 等 wire 形态、并要在 harness 内看配额与请求热力图的开发者。
权限与安全: 插件随当前 dsh 进程权限运行,可读写其配置的数据目录(含 requests.jsonl、sticky.json 等)。安装前请自行审阅 GitHub 源码 与 MIT 许可证;勿将 apiKey 明文写入可提交的仓库。README 说明写配置与部分路由要求 loopback 与同源检查,用于降低 DNS 重绑定风险。
路由 id 与历史会话: 务必在 UI 中选择带 (plugin) 后缀的提供商;与内置目录并存时,重复 id 会导致严重注册冲突,插件文档对此有明确说明。
社区目录: 插件收录于独立社区站点 SkillHub 目录页,与 DeepSeek / 幻方无官方从属关系;星标与版本以各页面当时展示为准(撰写时 GitHub 星标为 0)。
结尾¶
@goodandready/dsh-opencode-provider 把 OpenCode Console/Zen 与 OpenCode Go 收敛为 dsh 内两条 -direct 路由,在协议适配、多账户轮换、配额可视化与 /opencode 运维指令上形成完整闭环。若你正在 dsh 上拼装 OpenCode 调用链,可按上文 npm 命令安装对应版本,并在模型选择器中切换到插件路由。
- 目录页:https://www.skillhub.cn/plugins/GooDAnDReaDY/dsh-opencode-provider
- GitHub:https://github.com/GooDAnDReaDY/dsh-opencode-provider
- npm:https://www.npmjs.com/package/@goodandready/dsh-opencode-provider