dsh-opencode-session-header:DSH 中 OpenCode Go 的会话头注入

前言

在使用 DeepSeek Harness (DSH) 调用 OpenCode Go 模型时,需要 x-opencode-session 请求头来处理会话路由和提示缓存。DSH <= 0.1.2-rc.1 在默认配置下不发送该头,导致所有 OpenCode Go 请求返回 400 MissingSessionID 错误。上游修复方案尚未发布,此插件填补了这一本地修复的空白。

插件介绍

dsh-opencode-session-header 是一个为 DeepSeek Harness (DSH) 编写的插件,由 beihzb 维护。它通过注入 x-opencode-session 头部,修复了 OpenCode Go 的会话校验错误,同时保持原有的路由和缓存优化机制。

核心功能

  • 单会话注入:为每个 DSH 会话注入独立的 x-opencode-session 头。
  • 修复报错:解决 400 MissingSessionID 拒绝问题。
  • 优化保留:保持 OpenCode 的按会话路由和提示缓存优化。
  • 严格范围:仅对 opencode.ai 域名生效,不影响其他 Provider。
  • 无需重启:通过配置文件即时开关,无需重启 DSH。
  • 零依赖:不引入额外的第三方库。

安装与启用

在终端执行以下命令安装插件:

dsh plugin --profile web add dsh-opencode-session-header

安装后,需要重启一次 dsh web 服务以加载插件。启动日志中应显示插件加载信息。

运行时开关

插件提供运行时开关功能,无需重启服务即可生效。

开关文件位于:
<DSH_HOME>/plugins/dsh-opencode-session-header.json

默认内容为:

{ "enabled": false }
  • false:关闭注入,请求头保持原样。
  • true 或文件缺失:开启注入。
  • 插件会在每次 LLM 请求时读取该文件,修改后立即生效。

注意事项

  • 版本要求:插件已针对 DSH 0.1.2-rc.1 验证。
  • 依赖环境:依赖 DSH 使用进程全局的 fetch 进行 LLM 流量转发。如果未来 DSH 更换网络栈,插件将失效。
  • 退役计划:当 DSH 官方支持原生按会话注入会话头(讨论 #5495)时,建议卸载此插件。

总结

该插件通过拦截并修改 HTTP 请求头,为 DSH 中的 OpenCode Go 请求补全了必要的会话信息,解决了报错问题。它不破坏现有功能,且配置简单,适合需要在当前版本 DSH 下使用 OpenCode Go 的场景。

更多详情请访问插件目录或 GitHub 仓库:
- 插件目录
- GitHub 仓库

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

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

小夜