前言¶
DeepSeek Harness (DSH) 采用“一切皆插件”的理念。在使用开源模型时,配置 API Key 或维护本地进程(Sidecar)通常比较繁琐。opencodezen4dsh 插件通过原生 DSH 适配器,直接对接 OpenCode Zen 的免费通道,省去了注册与鉴权步骤,并在会话日志处理和思考级别上做了改进。
插件介绍¶
这是一个维护 fork 项目,基于 FishBottle7/opencode2dsh(上游 0.3.11)。它向 DSH 注册了一个原生 LlmAdapter,直接流式传输来自 OpenCode Zen 匿名免费通道的响应。
安装与启用¶
安装插件需要先下载构建好的 .tgz 包,然后通过 DSH CLI 添加。
1、下载 Release 附件中的 .tgz 包,或从源码构建:
# 从源码构建(位于 packages/plugin)
git clone https://github.com/defaver04/opencodezen4dsh.git
cd opencodezen4dsh/packages/plugin
pnpm install && pnpm pack
2、使用 DSH CLI 安装插件:
dsh plugin --profile web add ./opencodezen4dsh-dsh-plugin-<version>.tgz
3、重启 dsh web 以加载新插件。因为 Cordis 在进程启动时导入插件模块,仅刷新选择器无法生效。
4、在模型选择器中找到 opencodezen4dsh 分组,选择一个模型即可开始对话。
配置说明¶
默认配置即可工作,如需调整,可在对应配置文件中编辑 cordis.patch.yml:
- id: opencodezen4dsh
name: '@opencodezen4dsh/dsh-plugin'
config:
mode: adapter # 默认模式,原生适配器
providerId: opencodezen4dsh
refreshSeconds: 300 # 目录刷新间隔(秒)
主要配置项:
* mode:默认为 adapter,使用原生流式适配器;sidecar 为遗留模式,不包含在发布包中。
* refreshSeconds:控制模型目录的刷新频率,默认 300 秒。
* restartDelayMs / restartMaxDelayMs / maxConsecutiveCrashes:适配器或 Sidecar 的重启退避与熔断配置。
核心特性¶
- 零凭据,零设置:利用 OpenCode Zen 的匿名免费通道,无需 API Key 或注册。
- 原生适配器:单个 npm 包,无子进程,无本地端口占用。
- CLI-identical disguise:请求头包含 OpenCode CLI 的 User Agent 和会话关联头,伪装成 CLI 流量。
- 可选思考级别:推理模型支持
xhigh和max思考级别(强制覆盖);仅响应模型(如 muse-spark-*)保持上游支持的级别。 - 图片输入:仅当模型在 models.dev 中声明支持图片输入时才允许附件,否则拒绝。
- 自愈能力:包含快速启动重试、定期刷新和健康快照诊断。
- 会话日志安全:修复了无 ID 工具调用(如文本模拟工具调用)可能导致日志损坏的问题,将其降级为普通文本处理。
注意事项¶
- 环境要求:DSH 版本需 0.1.7 或更高,且需启用 Web Profile;Node.js 版本需 ≥ 20。
- 网络要求:需要出站 HTTPS 连接至
opencode.ai和models.dev。 - 已屏蔽模型:以下模型在当前 fork 中被屏蔽:
jev-1.13-free(仅限 SystemOne)exo-freeling-3.0-flash-fin-free
- 维护状态:插件维护 fork 了上游项目,主要修复了会话日志污染问题并解锁了部分 muse-spark 模型。
生态背景¶
DSH 社区目录是独立站点,与 DeepSeek 或幻方无官方从属关系。本插件旨在提供一种无需 API Key 的本地化模型接入方案。