dsh-qoder-link:通过官方 Qoder CLI 接入 DSH

前言

在 DeepSeek Harness(DSH)里接第三方模型,常见做法是直连 HTTP API 或自己维护令牌。Qoder 提供官方 CLI(国际版 qodercli、中国版 qoderclicn),登录态由 CLI 本地保存,并支持 ACP stdio 协议。若要在 DSH 里复用这套 CLI 的模型选择与对话能力,同时仍由 DSH 管理历史、系统提示和工具执行,就需要一个模型适配器插件。dsh-qoder-link 由社区维护者 liubaicai 开发,分类为客户端插件,作用是将 Qoder CLI 接入 DSH 的对话、模型选择与工具调用链路,无需逆向模型 API。

这是什么

dsh-qoder-link(仓库 liubaicai/dsh-qoder-link)通过原生 ACP stdio 与官方 CLI 通信。插件不管理账户、不获取或注入令牌;v0.1.2 起仅使用 CLI 本地登录态,在设置中选择国际版或中国版即可。DSH 侧历史、系统提示词和工具结果会组成完整上下文,工具调用交回 DSH 校验和执行;模型提供商标识为 qoder,默认入口为 qoder/default。

核心功能

模型与委派

  • 支持配置账户可用的模型 ID;首次打开设置会自动调用所选 CLI 的 --list-models,也可手动刷新,不访问私有模型 API。
  • 独立工具 qoder_ask:委派时不发送当前 DSH 历史,不切换当前模型;默认同样禁用 CLI 内置工具。

ACP 与会话

  • 覆盖 ACP 初始化、会话创建、提示请求、流式文字与思考、工具状态、取消与进程清理;用量仅在 CLI 返回时报告。
  • 每次请求启动全新 CLI,以 --acp 运行,经 stdin/stdout 交换 JSON-RPC,完成 initialize、session/new、session/prompt;不恢复旧 ACP 会话,完整历史由 DSH 管理。

并发与运行记录

  • 进程级 FIFO 并发队列,支持排队超时、无进展超时与取消;持续产生进展的任务不会因固定十分钟上限被终止。
  • 运行记录仅保存在当前 DSH 进程内,保留最近 max(5, maxConcurrency) 条(约 5~16 条),设置页与 /qoder runs 共用同一批元数据。

Web 设置

  • 参照 CodeBuddy Link 的紧凑布局:区域选择、模型启用、默认模型、权限与推理强度、折叠运行记录和高级配置。
  • 包内自带预构建 dist、双语标题与说明、Qoder logo、Cordis 安装补丁。

安全边界(模型适配器)

  • 模型适配器始终禁用 CLI 内置工具(--tools ""、严格空 MCP、dont_ask 等);模型按 JSON 返回工具请求,插件转为 DSH 工具块,由 DSH 执行。
  • 子进程会清除从宿主继承的 QODER_PERSONAL_ACCESS_TOKEN / QODERCN_PERSONAL_ACCESS_TOKEN(含大小写变体),不再注入 PAT。
  • 仅支持文本输入;图片会明确报错。CLI 是本地外部进程,不是隔离容器。

安装与启用

环境要求

需要支持第三方模型适配器与 Web 插槽的 DSH,Node.js 22.18 或更高。插件不会自动安装 Qoder CLI。

1、安装并登录 CLI

参考 国际版安装 或 中国版安装。在运行 DSH 的同一台机器、同一操作系统账户下完成登录:

# 国际版
npm install -g @qoder-ai/qodercli
qodercli login
qodercli --version
qodercli --list-models

# 中国版
npm install -g @qodercn-ai/qoderclicn
qoderclicn login
qoderclicn --version
qoderclicn --list-models

新版官方安装器也可能提供 qoder / qodercn 命令;若只安装了新别名,可在高级设置中填写该命令或完整路径。插件不会在国际版与中国版之间自动回退。

2、安装插件

推荐固定到 Release 安装包(示例版本 v0.1.11):

dsh plugin --profile web add "https://github.com/liubaicai/dsh-qoder-link/releases/download/v0.1.11/dsh-qoder-link-0.1.11.tgz"

也可从指定标签安装:

dsh plugin --profile web add "github:liubaicai/dsh-qoder-link#v0.1.11"

web 为 DSH 配置名称;若使用其他 profile,请替换。安装后按提示重载插件或重启 DSH,刷新网页,在 设置 → Qoder Link 中选择区域,并确认终端里对应 CLI 已登录。

本地 .tgz 示例:

dsh plugin --profile web add /absolute/path/dsh-qoder-link-0.1.11.tgz

3、配置

打开 设置 → Qoder Link:

  1. 选择 qodercli 国际版或 qoderclicn 中国版。
  2. 路径通常留空,插件会从 PATH 与官方默认安装目录查找 CLI;自定义位置在高级设置中填写完整路径。
  3. 获取模型列表,启用模型并选择默认项,保存后在 DSH 模型选择器中使用 qoder/default 或具体模型 ID。

Web 保存值写入 $DSH_HOME/plugins/dsh-qoder-link/settings.json(未设置 DSH_HOME 时为 ~/.dsh/plugins/dsh-qoder-link/settings.json)。常用项包括 cliVariant、defaultModel、models、reasoningEffort(auto / low / medium / high)、maxConcurrency(1–16,默认 2)、timeoutMs(无进展超时,默认 600000)等;完整表格见仓库 README。

插件默认启用;不使用时请在 DSH 禁用插件,页面不再提供独立启用开关。

典型用法

在 DSH 对话中选择 qoder/default 或已启用的 Qoder 模型,正常对话与工具流程由 DSH 驱动,底层经 ACP 与 CLI 通信。

插件提供的斜杠命令:

/qoder status
/qoder models
/qoder runs
/qoder help

status 只显示配置,不声称登录有效。思考等级非 auto 时会透传 --reasoning-effort,是否生效取决于所选模型与 CLI。

开发侧可本地打包:

npm ci
npm run check
npm test
npm pack

本机若需验证 ACP 与 DSH ToolRuntime 只读闭环,可构建后运行 node scripts/verify-acp-tools.mjs(会消耗模型额度)。README 注明:中国版已完成真实 ACP → 工具结果闭环验证;国际版此前真实推理无进展超时,尚未通过端到端推理验证,使用国际版前建议自行运行探针。

适用场景与注意

适合:已在本地使用 Qoder 官方 CLI,希望在 DSH Web 界面统一选模型、走 DSH 工具运行时,且接受「CLI 子进程 + ACP」而非直连 API 的集成方式。

注意:

  • 插件以当前 DSH 进程权限启动 CLI,工作目录随 workspaceRoot、会话工作区或进程目录而定;安装前请阅读源码与 MIT 许可,确认行为符合工作区安全策略。
  • 旧版 accounts.json 与 PAT 注入已不再参与认证;升级前请先在 DSH 所在机器完成 CLI 登录,并自行清理不再使用的旧凭据。
  • 社区插件目录 skillhub.cn 与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本文事实以 GitHub README 与 Release 为准。

结尾

dsh-qoder-link 把 Qoder 官方 CLI 的登录态与模型目录接到 DSH,用 ACP 传对话、用 DSH 执行工具,适合双区域 CLI 用户在同一套 Harness 里开发智能体。

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

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

小夜