dsh-deep-opencode:在 DSH 里走 OpenCode 免费模型,无需 API Key

前言

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 类似。

核心功能

独立 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 许可证。

典型用法

  1. 完成安装并重启 Harness(若文档或你的环境要求重启)。
  2. 在模型选择器里将 Provider 选为 opencode-free。
  3. 在列表中选择 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。

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

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

小夜