前言¶
DeepSeek Harness(DSH)会从 models.dev 共享目录读取 opencode、opencode-go 等 Provider,有 OpenCode API Key 时可以正常调用。若只依赖 OpenCode 的免费档模型,网关会拒绝非 OpenCode 客户端,常见报错为:
OpenCode's free tier can only be used from within OpenCode
要在 Harness 里用同一批免费模型,又不能把请求伪装成「来自 OpenCode」,就需要本地真正跑起 OpenCode 进程,由它代为发起推理。下面介绍社区插件 dsh-deep-opencode(维护者 temidayoxyz)如何提供独立的 opencode-free 路由,并在不配置 API Key 的前提下解析这些模型。
这是什么¶
dsh-deep-opencode 是 DSH 的模型推理类插件:启动本机 opencode serve,把每一轮对话委托给该进程执行,使请求在网关侧被识别为来自 OpenCode,从而使用 OpenCode 当前提供的免费档模型。实现思路与 OpenChamber 类似。
- 包名:
dsh-deep-opencode(npm / 插件注册名) - 版本:0.1.0(以仓库
package.json为准) - 许可证:MIT
- 源码:https://github.com/temidayoxyz/deep-opencode
- 社区目录:https://www.skillhub.cn/plugins/temidayoxyz/deep-opencode(独立站点,与 DeepSeek / 幻方无官方从属关系)
核心功能¶
独立 Provider:opencode-free¶
Harness 原有 opencode / opencode-go 仍走需 Key 的路径;本插件新增 opencode-free。模型列表来自运行中的 OpenCode 服务,不由插件写死——OpenCode 新增或下线免费模型时,列表会随之变化。
README 注明:在 OpenCode v2.0.18 时,免费档包括 Big Pickle、Ling 3.0 Flash Fin Free、LongCat 2.5 Preview Free、MiMo-V2.6-Flash Free、Muse Spark 1.3 Free、Nemotron 3.5 Lightning Free、Nemotron 3 Ultra Free、Space Bunny Free 等(以你本机安装的 OpenCode 版本为准)。
本地托管 OpenCode 服务¶
插件管理一次 opencode serve:绑定地址、端口、启动与单轮超时等均可通过 cordis.yml 配置(见下文)。默认在回环地址上监听,端口 0 表示由操作系统分配空闲端口。
会话与工具桥接¶
reuseSessions(默认true):同一 Harness 会话对应一个 OpenCode 会话,多轮对话可延续上下文;设为false则恢复为「每个请求一个 Provider 会话」。bridgeHarnessTools(默认true):当前请求的 DSH 工具 schema 会进入主轮次;OpenCode 侧通过dsh_call/dsh_list调用 Harness 工具,无需单独配 MCP。forwardHarnessContext(默认false):是否在 system 中附加能力名摘要;Harness 指令与上下文仍经 companion 转发。
一次 Harness 请求会跟随 完整的 OpenCode Agent 执行(含工具调用步进);取消 Harness 会中断 Provider 侧 Agent,而不只是关事件流。
扩展事件(Host 插件)¶
其他 Host 插件可订阅 Cordis 事件,例如 deep-opencode/event(原生事件)、deep-opencode/permission、deep-opencode/form(权限与表单需 Handler 或走 DSH 现有审批 UI)。
安装与启用¶
前置条件¶
系统 PATH 上需已安装 OpenCode v2 CLI,可先确认:
opencode --version
安装插件¶
npm 发布后从 registry 安装:
dsh plugin add dsh-deep-opencode
从 GitHub 安装(仓库已提交构建产物,无需本地 build):
dsh plugin add https://github.com/temidayoxyz/deep-opencode
也可在 profile 的 cordis.patch.yml 中声明:
- name: dsh-deep-opencode
Windows 旧版升级:若更新时出现 ERR_PNPM_EPERM,可先禁用本插件并完全重启 Harness,在插件禁用状态下更新,更新完成后再启用并重启。较新版本改为监视临时副本,而不再监视插件安装目录。
插件以当前 dsh 进程权限运行;安装前请自行审阅 源码与 MIT 许可证。
典型用法¶
- 完成安装并重启 Harness(若文档或你的环境要求重启)。
- 在模型选择器里将 Provider 选为
opencode-free。 - 在列表中选择 OpenCode 当前提供的免费模型,按平时方式对话即可。
需要改 OpenCode 可执行文件路径、超时或会话策略时,在 cordis.yml 中为插件增加 config,例如:
- name: dsh-deep-opencode
config:
opencodeCommand: opencode
turnTimeoutMs: 1200000
常用配置项(完整表见 README):
| 字段 | 默认值 | 含义 |
|---|---|---|
opencodeCommand |
opencode |
可执行名或路径 |
cwd |
harness 工作目录 | 无项目会话时的项目目录与模型目录读取位置 |
host |
127.0.0.1 |
托管服务绑定地址 |
port |
0 |
监听端口,0 为自动选取 |
startupTimeoutMs |
120000 |
等待服务就绪的最长时间 |
turnTimeoutMs |
900000 |
单轮委托上限,0 表示不限制 |
reuseSessions |
true |
是否按 Harness 会话复用 OpenCode 会话 |
logDiagnostics |
true |
加载时输出服务版本与发现的模型 |
bridgeHarnessTools |
true |
是否桥接 DSH 工具到 OpenCode |
诊断报告默认写入 Harness 主目录下的 deep-opencode/diagnostics.json(字段 diagnosticsPath 可改)。
适用场景与注意¶
适合:已在用 DSH 做智能体或自动化,希望试用 OpenCode 免费档模型、又不想申请或维护 OpenCode API Key;本机可以安装并运行 OpenCode v2 CLI。
注意:
- 免费模型名单与网关策略由 OpenCode 决定,插件只负责「从 OpenCode 内部」发起请求。
- 单轮耗时受
turnTimeoutMs约束,长 Agent 任务请按需调大。 - 依赖本地
opencode serve,需保证 CLI 版本与网络环境满足 OpenCode 自身要求。 - DSH 生态理念是「一切皆插件」;本插件来自社区维护者,使用前请阅读源码与许可证,并理解其在本地启动外部进程的行为。
结尾¶
dsh-deep-opencode 通过本地 opencode serve 与 opencode-free Provider,把 OpenCode 免费档模型接进 DeepSeek Harness,避开「非 OpenCode 客户端无法用免费档」的限制,且无需 API Key。更多信息见社区目录 skillhub.cn/plugins/temidayoxyz/deep-opencode 与 GitHub 仓库 temidayoxyz/deep-opencode。