前言¶
DeepSeek Harness (DSH) 开发者在对接 OpenCode Zen 或 Muse 模型时,常遇到协议不兼容、会话头缺失或 reasoning 数据过滤困难的问题。直接修改 node_modules 容易引入风险,且维护成本高。下面介绍一个社区维护的独立插件,用于处理这些兼容性问题。
插件定位¶
这是一个 DeepSeek Harness 的独立 Cordis 插件,由 dooooling 维护。它提供了一套 OpenCode Zen 请求所需的会话格式、客户端版本头以及 Muse reasoning 回传兼容处理方案。插件独立运行,不依赖构建脚本,且不提供模型、密钥或额度。
核心功能¶
- 会话与头处理:为 OpenCode Zen 请求提供会话格式和客户端版本头,支持转换会话 ID 和生成请求 ID。
- Muse 兼容:处理 Muse reasoning 回传兼容性,从 Muse Responses 请求中删除加密的 reasoning 内容。
- 协议支持:支持
openai-responses协议。 - 免费层补齐:补齐免费层兼容性工具声明(如 bash、edit、glob 等)。
安装与启用¶
安装:
安装前请先停止正在运行的 DSH。使用以下命令安装指定版本:
dsh plugin --profile web add github:dooooling/dsh-opencode-compat#v0.1.3
dsh web
配置 Provider:
在 llm-pi-ai 提供方配置中,Muse 必须选择 openai-responses 协议,并设置正确的 baseURL 和模型 ID。已有提供方配置继续生效。
llm-pi-ai:
providers:
opencode-muse:
apiKeyEnv: OPENCODE_API_KEY
api: openai-responses
baseURL: https://opencode.ai/zen/v1
models:
- id: muse-spark-1.3-contributor-free
启用插件功能:
默认启用身份头、reasoning 和免费层兼容处理。需要自定义时,在 ~/.dsh/profiles/web/cordis.patch.yml 添加覆盖配置(已有内容应合并):
- id: opencode-compat
config:
enabled: true
clientVersion: 1.18.31
rewriteClientHeaders: true
stripMuseReasoning: true
completeFreeTierFingerprint: true
作用范围与限制¶
- 运行范围:仅处理 HTTPS
opencode.ai的 POST 请求,路径限定为/zen/v1/或/zen/go/v1/下的responses、chat/completions、messages。它会全局包装globalThis.fetch,同一 DSH 进程内所有匹配请求都会受影响。 - 依赖与权限:包直接包含可执行 ESM,无需 prepare/build 脚本。插件不读取凭据文件、不记录请求正文或密钥、不修改模型列表和默认模型。
- 注意事项:这是一个社区兼容方案,非 DeepSeek 或 OpenCode 官方插件。客户端身份头会被改为配置的版本;上游可能改变校验或拒绝第三方使用。插件不保证免费额度、地区可用性或服务条款允许的接入范围。
- 兼容性验证:仅对 JSON Muse Responses 请求执行 reasoning 过滤。捕获旧 fetch 引用、使用独立 HTTP 客户端或显式自定义 fetch 的适配器可能绕过插件。完整 DSH 多轮工具执行兼容性尚未验证。
总结¶
该插件通过独立补丁的方式,降低了接入 OpenCode Zen 的门槛,重点解决了会话头和协议兼容问题。开发者应根据实际需求配置,并关注上游服务的协议变更。