dsh-fetch-router
在终端中运行以下命令:
dsh plugin install leolee9086/dsh-fetch-router
将以下提示词粘贴到 DeepSeek Harness 对话框中:
在 DeepSeek Harness 插件管理器中执行 dsh plugin install leolee9086/dsh-fetch-router,或通过 GitHub 地址 https://github.com/leolee9086/dsh-fetch-router 安装。
插件介绍
在 DSH 里,模型与工具链发出的 HTTP 往往要穿过不同网关与代理;有的上游对会话头、路径或 body 有硬性要求,缺一项就整段请求失败。OpenCode Zen 网关便是典型:缺少 x-opencode-session 会直接返回 400 MissingSessionID。单靠改 profile 或手搓脚本很难在「每条出网请求」上稳定、可观测地统一处理。
dsh-fetch-router 接管 DSH 的 fetch 出网路径,按 host 与 path 做端点路由:可注入或改写请求头、把请求改写到另一目标,或在允许 mock 时本地应答。它与内容改写分层——中间件在路径匹配前按规则改 JSON/text body,端点层再决定注头、改址或 mock,未命中规则的请求仍照常出网。包内默认规则已针对上述 Zen 会话头场景,也可在 profile 的 cordis.patch.yml 里用同 id 覆盖 config 定制 match 与模板变量。
右侧栏提供 DSH 原生监控:逐条看到命中规则、头字段名、转发/mock/跳过/错误与耗时,并汇总当前路由表;数据面仅 loopback,敏感头值默认不展示。适合在桌面 profile 下折腾多模型、多网关的开发者,以及需要可回放、可暂停记录的出网调试;仅在测试 profile 下才应考虑本地 mock,以免破坏「模型可见即已记录」的约定。
使用场景
- 修复 OpenCode Zen 等网关因缺少会话头导致的 400
- 按 host 与 path 为不同模型或提供商注入或改写请求头
- 在测试 profile 下用本地应答调试而不真实出网
适合人员
- 在 DSH 桌面 profile 使用多网关的开发者
- 需要观测每条出网请求与命中规则的调试者
- 通过 cordis.patch 定制 fetch 路由的高级用户