前言¶
DeepSeek Harness(DSH)采用插件化架构。在使用 OpenCode Zen 的免费模型车道时,通常需要 API 密钥才能访问,且直接集成到模型选择器较为困难。dsh-opencode-free-model 插件解决了这一痛点,它将 OpenCode Zen 免费模型车道直接放入模型选择器,且无需 API 密钥。
插件介绍¶
这是一个 Host-only 的 cordis 插件。它在 DSH 的 llm 服务上注册两个 provider 路由,将 OpenCode Zen 支持的所有三种线缆协议(Chat Completions / Responses / Messages)解码为 Harness 的 StreamChunk 协议,并使用后台探测来决定哪些模型被广告。
核心功能¶
- 无需密钥:该车道通过池化凭证(
Authorization: Bearer public)进行密钥管理。插件不存储任何用户的秘密。 - 三种线缆协议:实现了三种网关方言的解码,包括
/zen/v1/chat/completions、/zen/v1/responses和/zen/v1/messages。协议由请求的形状决定。 - 指纹工具门控:免费层要求请求体必须声明一个名为
read的工具。插件声明了该工具,并提供了bash/glob/grep以扩大指纹特征,通过将pwsh转换为bash来填补缺失的槽位。 - 稳定会话:每个对话映射到一个稳定的
ses_…ID,这是网关解码后的 ID 形式。ID 的生成方式确保了稳定性。 - 归属权:Harnes 要求每个请求都有归属权 User-Agent,该车道拒绝特定的产品令牌。插件保留了归属权,但将产品名称重写为
dsh,同时保留了版本和来源 URL。 - 可用性探测:一个并发度为 2 的后台探测将每个模型分类为可用/区域阻塞/不可用/限流/未知。出口变更会立即触发重新探测。
- 区域路由:区域敏感模型被路由到
opencode-free-model-region路由。 - 推理截止续写:在推理和未看到任何内容(无文本、无工具调用、无结束令牌)的情况下中断的轮次,将从检查点恢复。
- 思考级别控制:
reasoning_effort是真正的控制手段。每个模型都广播它实际接受的级别,插件将选定的级别原样转发。
安装与启用¶
使用以下命令安装插件:
dsh plugin --profile desktop add github:artorias-zj/dsh-opencode-free-model
安装后,重启 DSH,模型选择器中会出现一个 OpenCode Free 组。
配置¶
配置来自 bundle patch 的 config 键,并在每次挂载时应用。如果 bundle patch 中省略了某个键,将回退到默认值。
- insert:
- id: opencode-free-model
name: 'dsh-opencode-free-model'
config:
enabled: true # 主开关;false 不广告任何模型并因 CONFIG_DISABLED 导致调用失败
exposeRegionModels: true # 在第二个路由上广告区域受限的模型
probeIntervalMinutes: 15 # 后台重新探测周期(分钟)
defaultMaxTokens: 32768 # 每轮输出上限
streamRecovery: true # 允许一次推理检查点续写
环境变量 OPENCODE_FREE_MODEL_BASE 可覆盖上游根 URL(config.baseUrl 优先)。
兼容性与注意¶
- 运行环境:需要 Node.js
^22.15.0 || >=24.0.0。 - DSH 版本:针对 DeepSeek Harness
0.2.0-rc.2构建。 - 许可证:MIT License。
- 代码类型:纯 ESM,无原生模块,无构建步骤,无运行时依赖。无浏览器代码(无
dsh.client声明)。
结尾¶
该插件通过将 OpenCode Zen 免费模型车道集成到 DSH 中,解决了无密钥访问的问题,并通过稳定会话和协议解码提供了稳定的使用体验。
GitHub 仓库:https://github.com/artorias-zj/dsh-opencode-free-model