Skip to content

dsh-agent-sdk-bridge

Verified

dsh-agent-sdk-bridge · v1.1.8 · MIT · Web UI

DeepSeek Harness LLM adapter bridge for Qoder CN, Qoder International, Tencent CodeBuddy and MiniMax Code subscriptions. It reuses each provider's own SDK or official ACP server and CLI login, shows available quota, and exposes per-provider settings pages

Install

dsh plugin add dsh-agent-sdk-bridge

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Published to npm without a public repository. Inspect the package contents before installing.

Tags

Readme

dsh-agent-sdk-bridge

把 Qoder CN、Qoder 国际版、CodeBuddy 与 MiniMax Code 订阅接入 DeepSeek Harness(DSH)的 LLM 适配器插件。

  • 官方 SDK / 官方协议:Qoder 用 @qodercn-ai/qodercn-agent-sdk 与 @qoder-ai/qoder-agent-sdk; CodeBuddy 用 @tencent-ai/agent-sdk; MiniMax Code 通过其官方的 Agent Client Protocol 服务 mcode acp 接入。
  • 零凭据:复用本机 CLI 登录态,不需要 API key。
  • 额度可见:Qoder 显示套餐、已用百分比、剩余 credits、加量包与到期时间;CodeBuddy 通过其 计费接口显示积分余额与各积分包(与官方账号页同源),卡片上的「用量明细」可直接打开当前区域 官网的用量页。
  • 四套设置页:Qoder CN / Qoder 国际版 / CodeBuddy / MiniMax Code,各自独立的模型开关、 上下文窗口与登录面板。

为什么需要它

本项目直接依赖各家官方 SDK 完成调用:

登录、模型目录、会话生命周期与工具循环都交给官方实现;插件只负责把 DSH 的 LLM 请求翻译成 对应的 SDK / ACP 调用,再把流式回复、工具调用和用量翻译回来。这样行为始终与官方客户端保持一致, 上游升级时也只需跟随其接口,而不是维护一套自写的协议实现。

由于 Qoder 两家发行版各有一个独立的官方 SDK,且品牌在编译期写死,本插件按 provider 分别加载 对应的 SDK、分别建立会话,账号、模型目录与登录态互不串台。

安装

1. 装插件

插件 → 添加插件,填 dsh-agent-sdk-bridge 并安装(npm);也可用 github:k1-h2/dsh-agent-sdk-bridge 或本地目录。

若提示**「需要允许安装脚本」(SDK 下载自己的 worker runtime),点「允许这些脚本并重试」即可; 不授权也能用,SDK 会回退到 PATH 上的系统 CLI。装完按提示重启 DSH**。

2. 登录

插件不持有凭据,内层会话直接复用对应 CLI 的登录态:

版本 npm 包 登录方式 登录态目录
Qoder CN @qodercn-ai/qoderclicn 页面「一键配置」或 qoderclicn login ~/.qoder-cn/.auth
Qoder 国际版 @qoder-ai/qodercli 页面「一键配置」或 qodercli login ~/.qoder/.auth
CodeBuddy @tencent-ai/agent-sdk(已随插件安装) 页面选择区域后点「登录」 由 CodeBuddy CLI 管理
MiniMax Code @minimax-ai/code(页面可安装 / 卸载) 页面「安装 CLI」后点「登录」 ~/.minimax/auth/prod/<region>

设置 → Qoder CN / Qoder 国际版 → 页面底部「一键配置」:缺 CLI 就装,未登录就拉起浏览器授权, 输出实时显示。设置 → CodeBuddy → 顶部选择「国际版(codebuddy.ai)」或「国内版 (copilot.tencent.com)」,点「登录」后在浏览器完成授权。两个区域的登录凭据分别保存在本机 (~/.dsh/agent-sdk-bridge/codebuddy-state.json,权限 0600),切换区域会立即恢复对应账号的 账号、额度与模型表,各自启用哪些模型和上下文窗口也按区域独立保存;未登录时不会读取或显示 模型目录。浏览器由 CodeBuddy CLI 打开,插件不再重复打开。企业域名 / IOA 登录不在支持范围内。

设置 → MiniMax Code → 先点「安装 / 更新 CLI」,再选择「国内站(account.minimax.cn)」或 「国际站(account.minimax.io)」并登录。MiniMax 官方 CLI 同一时间只允许一个站点在线,切换站点 前需要先在原站点退出登录;插件不会复制或搬运另一个站点的凭据。安装使用官方要求的参数 (--include=optional --allow-scripts=@minimax-ai/code,better-sqlite3),否则 npm 12 会拦截 原生 SQLite 的安装脚本,装出来的 mcode 无法启动。

两个站点都只在各自的服务区域内可用:本机 IP 不在国际站范围时,国际站会把请求重定向回国内站, 插件会判定该区域不可用,提示「本机 IP 不在服务区域」并清空该区域的模型表,而不是显示一份 读不到的账号或额度。换网络后点「刷新额度」即可重新探测。

也可以手动执行 Qoder 的两步:

npm install -g @qodercn-ai/qoderclicn && qoderclicn login   # Qoder CN
npm install -g @qoder-ai/qodercli       && qodercli login    # 国际版

qoderclicn status / qodercli status 能列出 Username 即登录成功。Qoder 的一键配置只支持 Windows。

QODERCLI_PATH 若指向另一版本的 CLI,对应版本会明确报错,而不是借用那个账号回答。国际版 专用覆盖变量是 QODER_CLI_PATH。更多见 常见问题。

设置页

设置 → Qoder CN、设置 → Qoder 国际版、设置 → CodeBuddy、设置 → MiniMax Code 是四个独立入口:

  • 额度 / 登录卡片:Qoder 显示套餐、已用百分比进度、套餐 / 加量包 / 组织资源包剩余量、到期时间, 以及官方用量与升级链接;CodeBuddy 显示登录区域、账号、积分余额与已用百分比,积分包默认折叠为 一行摘要(包数、合计额度、最近到期),点「详细信息」才在限高滚动区里展开逐包明细 (通过其账号页使用的计费接口读取);MiniMax Code 显示登录区域、CLI 安装状态、账号、套餐、 剩余积分,以及 Token Plan 的 5 小时 / 每周剩余百分比、重置时间与进度条(与官网控制台同源)。
  • 模型清单:来自账号实时目录,逐个启用 / 关闭、指定上下文窗口;倍率取自上游报价。
  • 高级设置:并发会话数、目录缓存、超时、默认思考档位、模型别名、分组名称等,可折叠。
  • CLI 分组:Qoder 页面有一键配置 / 重新登录 / 卸载 CLI;MiniMax Code 页面有安装 / 更新 / 卸载 CLI(卸载前确认,保留登录凭证),均附实时输出。
  • 再次打开页面时先显示上次快照,模型与账户在后台更新,不再每次都停在「正在读取」。

每个 provider 只注册一条路由(qoder-cn / qoder-intl / codebuddy / minimax-acp),只服务 订阅自带的模型;BYOK 自定义模型会被过滤掉。

四个入口是否出现,在插件 → Agent SDK Bridge → 启用的版本里控制。关闭后对应的设置页、模型 列表、选择器分组与 provider 路由一起移除;已保存的模型选择保留,重新打开即可恢复。

用 YAML 配置

设置页之外,也可以直接写进 profile 的 cordis.patch.yml:

- id: llm-qoder-cn
  name: dsh-agent-sdk-bridge
  config:
    cnEnabled: true
    intlEnabled: false                # 关闭国际版:设置页与模型分组一起移除
    displayName: Qoder CN (工作号)
    intlDisplayName: Qoder (Global)
    maxSessions: 4
    disabledModels: [mmodel]          # CN:关闭的模型
    modelContextWindows:
      qmodel_38max: 1000000           # CN:按模型指定窗口(token)
    intlDisabledModels: [auto]        # 国际版:独立的关闭清单
    intlModelContextWindows:
      dmodel: 1000000
    intlModelAliases:
      claude-sonnet: dmodel
    codebuddyRegion: cn                 # global(国际版)或 cn(国内版)
    codebuddyDisplayName: CodeBuddy
    codebuddyCnDisabledModels: [glm-5.2]
    codebuddyCnModelContextWindows:
      glm-5.3: 1000000
    codebuddyModelAliases:
      cb-fast: fast-model
    minimaxEnabled: true
    minimaxRegion: cn                   # cn(国内站)或 global(国际站)
    minimaxDisplayName: MiniMax Code
    minimaxCnDisabledModels: []
    minimaxCnModelContextWindows:
      "m:minimax:MiniMax-M3:v:thinking": 512000
    minimaxModelAliases:
      minimax-fast: "m:minimax:MiniMax-M3.1-Flash:v:thinking"

各个 provider 的模型开关、窗口和别名是分开的字段;并发会话数、超时、思考档位等运行参数共享。

更多

免责声明

本项目仅供个人学习和研究使用,请勿用于商业用途或超出个人合理使用的场景。

上游条款由你遵守。使用各渠道即表示你同意对应上游的服务条款与用量政策;因违反上游政策导致的 限流、封禁或其它后果由使用者自行承担。插件不对任何上游的可用性、准确性或连续性作任何承诺。

许可

MIT。本仓库是 JiamingZang/dsh-llm-qodersdk (MIT)的衍生作品,上游许可与版权声明保留在 LICENSE.original,出处与 改动清单见 NOTICE。