🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

MX1syk/dsh-x-opencode-session

DeepSeek 客户端兼容 / 相关生态spec-screened扫描:低风险在 GitHub 查看 ↗
⚠ 装前注意

DSH 插件,用于向 LLM provider 请求注入动态/随机 HTTP 请求头例如 ${uuid} 模板——为…

基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/9 · 已提供中文文档

一个 DeepSeek Harness(DSH)插件,为 LLM provider 请求注入动态/随机的 HTTP 请求头。DSH 的 pi-ai provider 只支持静态 headers 字符串,无法表达动态值;本插件通过包装 globalThis.fetch,按 urlPatterns 匹配请求并注入 ${uuid} 等模板值(每个 DSH 进程铸造唯一且在进程内稳定的会话 id),解决 opencode-go 网关对 x-opencode-session 头的要求(缺失会返回 400 Model is unavailable)。零默认、卸载安全、日志自动脱敏凭据。

综合分
28.8
GitHub 分
28.8
用户评分
—
★ Stars
0
周下载量
—
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/MX1syk/dsh-x-opencode-session.git
信任档位:已验证本站已于 0 天前真实安装成功
是什么
生态插件(可安装,未声明 dsh 能力)
装得上吗
本站已真实安装成功(非静态推断)
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 16 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

🟢实装验证通过· 2026/9/25
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/21(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-x-opencode-session(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=18 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

未发布到 npm registry,仅可从源码安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/24 11:38:39

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-x-opencode-session

DSH 插件,用于向 LLM provider 请求注入动态/随机 HTTP 请求头(例如 ${uuid} 模板)——为 opencode-go 网关提供一个运行期间稳定的 x-opencode-session。

dsh-x-opencode-session 是一个 DeepSeek Harness(DSH)插件,用于向 LLM provider 请求注入动态 / 随机的 HTTP 请求头。DSH 的 pi-ai provider 只接受静态 headers 字符串——它无法表达每次运行的动态值。本插件在不改动 DSH 源码的前提下填补了这一空白。

DeepSeek Harness(DSH)插件:把动态 / 随机的 HTTP 请求头注入 LLM provider 请求,解决 DSH 的 pi-ai provider 只能配置静态 headers 字符串、无法表达“动态/随机数值”的问题。

典型场景:DSH 用 opencode-go provider(openai-completions 协议)向 OpenCode Go 网关发请求时,网关需要 x-opencode-session 会话头来做会话亲和/路由/缓存(自 2026-09-06 起缺失即 400 Model is unavailable)。静态硬编码会让所有 DSH 运行共用同一个会话 id;本插件让每个 DSH 进程(每个评测 run / 并行 runner)铸造一个唯一的随机会话 id,并在进程内保持稳定,互不串会话,且不修改任何 DSH 源码。

原理

- 包装 globalThis.fetch(当前 dsh-llm-deepseek 与 dsh-llm-pi-ai 适配器都经由全局 fetch 发请求),对 URL 命中 urlPatterns 的请求,把模板值 set() 到请求头上(覆盖同名头,包括 pi-ai 的归属 user-agent)。
- 零默认:headers 为空时插件完全惰性,不改任何请求、也不包 fetch。
- 卸载安全:仅当自己仍是当前包装器时才恢复上一个 fetch,不破坏后续包装者。
- verbose 日志自动脱敏 authorization / cookie / api-key 等凭据头。

安装

插件目前托管在 GitHub(尚未发布到 npm):

从 GitHub 安装
dsh plugin --profile web add github:MX1syk/dsh-x-opencode-session

本地目录开发(改代码调试时)
dsh plugin --profile web add link:/path/to/dsh-x-opencode-session

配置

包自带的 cordis.patch.yml 只插入一个空 config 的插件行(惰性 no-op)。把下面的完整 config 写到 profile 的 cordis.patch.yml 或 $DSH_HOME/cordis.patch.yml(同一 id 的补丁层会整体替换该行的 config):

$DSH_HOME/cordis.patch.yml
- insert:
- id: dsh-x-opencode-session
name: dsh-x-opencode-session
config:
只改这些 URL 的请求(大小写不敏感的子串匹配,命中任一项即注入)
urlPatterns:
- /chat/completions
动态请求头:值 = 普通字符串,可含模板占位符
headers:
x-opencode-session: "${uuid}"            # 进程级唯一、进程内稳定
x-opencode-request: "${uuid@request}"    # 每次请求新值
x-opencode-client: "dsh"
x-opencode-project: "dsh-bench"
user-agent: "opencode/0.2.1"
默认铸造作用域:run(进程级冻结)或 request(每次请求重铸)
scope: run
verbose: false

若网关 baseURL 路径不含 /chat/completions,把网关 host 也加进 urlPatterns,例如 - console.opencode.go。

值模板语法

| 模板 | 说明 |
| --- | --- |
| ${uuid} | UUID v4 |
| ${hex:N} | N 位小写十六进制(默认 16) |
| ${alnum:N} | N 位字母数字(默认 12) |
| ${digits:N} | N 位数字(默认 8) |
| ${int:min:max} | [min, max] 内整数 |
| ${ts} | epoch 毫秒 |
| ${iso} | ISO-8601 时间 |
| ${env:NAME} | process.env.NAME 在渲染时读取 |

作用域后缀:@run(默认,进程内铸造一次并冻结)或 @request(每次请求重铸)。scope 配置项决定没有后缀的占位符的默认作用域。注意:${env:...} 在 run 作用域下首次渲染后即冻结(如需每次重读环境变量,用 @request)。

未知函数 / 非法参数(如 ${hex:0}、${int:9:3})不会报错:保持原文发送,并在启动时告警,其余头照常生效。

与 provider 静态 headers 的取舍

- pi-ai provider profile 的 headers 只能写死静态值;本插件在其外层(fetch 层)覆盖,天然支持动态。
- 本插件可覆盖 user-agent(pi-ai 会把 profile 的 user-agent 剥离成归属 UA;fetch 层注入不受此限制),是否覆盖由你在 headers 里是否显式配置决定。
- 配置为组合层(composition entry)级别:修改需重启 DSH 生效。

本地开发与测试

node --test "tests/*.test.mjs"

- tests/templates.test.mjs:模板引擎(随机性、边界、非法 token 告警)。
- tests/wrapper.test.mjs:fetch 包装(URL 门控、头合并覆盖、run/request 作用域、卸载恢复、多层包装不被覆盖)。

用 verbose: true 观察实际注入的请求头(凭据头已脱敏)。

已知限制

- 依赖适配器通过全局 fetch 发请求(当前 DeepSeek 与 pi-ai 适配器均是);若未来某适配器改用自定义 dispatcher 则不在覆盖范围。
- 匹配目标是完整请求 URL 的子串;如需更精确匹配,请把完整 URL 片段写进 urlPatterns。
- 多个同样包装 fetch 的插件会互相覆盖:本插件卸载时只在自己仍是当前包装器时恢复原值。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群