dsh-roundtable-harness:在 DSH 里跑多模型圆桌辩论

前言

在 DeepSeek Harness(DSH)里,你往往已经配好了多个 Provider 和模型,但让它们围绕同一话题、带着不同人设多轮交锋,并把上下文和评分收口成一份可归档的报告,通常要自己拼调用链、记历史和算花费。下面介绍社区插件 dsh-roundtable-harness(维护者 HSM266,分类为工作流):它把「枚举本机已注册模型 → 共享历史发言 → 六维裁判打分 → 真实账本性价比 → Markdown / docx 战报」做成一条固定流水线,并在设置页与 Agent 工具里共用同一套实现。

这是什么

dsh-roundtable-harness 是面向 DSH 的 bundle 插件:自动读取 DSH LLM 服务里所有已注册的 Provider 与模型,由你为每位选手绑定 provider/model 与人设,围绕同一话题进行可控轮数的多轮讨论;每条历史发言会完整打包给下一位发言者。讨论结束后由裁判模型按六个维度加权打分,并单独用 dsh-cost-meter 的真实账本做性价比排行(实验性)。产物包括 Markdown《赛博圆桌战报》和可导出的 docx,已结束的讨论还可「续前讨论」追加轮次。

插件不在自身配置里保存 API 端点或密钥,凭据与 Provider 配置沿用 DSH 本体。当前包版本为 0.3.14(以仓库 package.json 为准),许可证 MIT,声明的 DSH 兼容范围为 >=0.2.0-rc.1 <0.3.0-0,运行环境要求 Node.js >= 20。

目录页:SkillHub 插件页。源码与说明:GitHub — HSM266/dsh-roundtable-harness。

核心功能

选手与上下文

  • 选手数量不限;每位选手独立人设注入 system prompt 高优先级槽位,并镜像到 personas/<id>.md,改文件同样生效。
  • 支持形象图(本地路径或 http(s) URL),导出 docx 时用于封面等;远程拉取有超时、大小与私网地址等安全限制。
  • 上下文共享是结构性的:每次调用都会带上「话题 + 全部历史发言」。

轮次、预算与裁判

  • maxRounds 可在 1–20 之间配置,设置页也可临时覆盖。
  • 上下文估算超过 tokenBudget 时,较早轮次由最便宜模型压成摘要,保留最近 N 轮原文;无法压缩时硬截断并记录。
  • 裁判可通过环境变量 JUDGE_MODEL、JUDGE_PERSONA 覆盖;未设置时默认解析到 qwen 路由。
  • 六维评分:攻击性 / 逻辑 / 人物形象还原度 / 趣味度 / 策略 / 深度,权重可在设置页调整,总分为六维加权平均。
  • 若裁判返回的选手 id 均无法匹配,记为降级,战报与 docx 标注「字数估算,非模型评分」;各处均声明 AI 裁判结论非权威。

性价比与战报

  • 性价比单独一榜:在每次调用前后读取 cost-meter 账本,按 provider:model 归因;任一轮归因失败则该选手整人排除,并说明原因。未安装 cost-meter 时退化为按输出 token 的代理口径,战报中会标明。
  • 讨论结束自动写出 roundtable-<时间>-战报.md;可导出含封面、形象图、逐轮与异常章节的 docx。
  • 内置敏感词过滤(中英文词库 + 自定义词/正则),命中替换;429 / 5xx 终止整场;「终止讨论」通过 AbortSignal 中断在途请求并跳过裁判,已完成发言仍写入战报。

界面与 Agent

  • 设置入口:设置 → 圆桌会议;另有可拖动的悬浮挂件打开同一面板。
  • 可选注册三个 Agent 工具:roundtable_start、roundtable_status、roundtable_export(由 cordis.patch.yml 中 exposeTools 控制)。

安装与启用

README 强调:须让 Harness 从 profile 的包作用域解析模块,请用 tarball、npm 或 GitHub 安装,不要使用 dsh plugin add ./dsh-roundtable-harness 这类 link: 本地目录挂载;装完或换版后若出现 failed to import,需重启 dsh web。用 tarball 安装时,profile 会记录 tgz 的绝对路径,勿在安装后删除该文件。

从 GitHub 安装

dsh plugin --profile <PROFILE> add github:HSM266/dsh-roundtable-harness

若 pnpm ≥10 拒绝执行 git 依赖的 prepare,按提示在 profile 的 pnpm-workspace.yaml 中加入 allowBuilds: dsh-roundtable-harness: true 后重新 add;建议将版本钉到 commit:github:HSM266/dsh-roundtable-harness#<sha>。

从 npm 安装

dsh plugin --profile <PROFILE> add dsh-roundtable-harness

从本地 tarball 安装(自用)

在插件源码目录执行 npm install && npm pack 得到 dsh-roundtable-harness-<版本>.tgz 后:

dsh plugin --profile <PROFILE> add ./dsh-roundtable-harness-<版本>.tgz
dsh --profile <PROFILE> --dump-config | grep roundtable

装完重启 dsh web,打开「设置 → 圆桌会议」确认 bundle 生效。

可选依赖:强烈建议同时安装 dsh-cost-meter,以便性价比榜使用真实账本;运行时依赖 docx(导出 docx 时懒加载)。

配置要点

主配置文件(无 API Key 字段):

$DSH_HOME/roundtable.json          # 设置了 DSH_HOME 时
~/.dsh/roundtable.json             # 未设置时的回退

人格镜像目录:$DSH_HOME/roundtable/personas/<id>.md。示例见仓库 examples/roundtable.example.json。

常用环境变量:

变量 作用
JUDGE_MODEL 覆盖裁判模型(provider/model 等格式);设置后裁判强制启用
JUDGE_PERSONA 覆盖裁判人格
ROUNDTABLE_OUTPUT_DIR 覆盖导出目录
ROUNDTABLE_LEDGER_SETTLE_MS 读账本前等待毫秒数,默认 2200

插件行配置片段(cordis.patch.yml):

- id: roundtable-harness
  name: 'dsh-roundtable-harness'
  config:
    exposeTools: true
    injectPromptSection: true
    promptOrder: 1

典型用法

  1. 在 DSH 中先配置好各 Provider 与模型密钥;按需安装 dsh-cost-meter。
  2. 按上文方式安装插件并重启 dsh web。
  3. 打开「设置 → 圆桌会议」:在 Provider 目录中测连通性;在「参赛选手」里为每位选手选 provider/model、填写人设与可选形象图;在「裁判」与「六维权重」中设定裁判与权重;在「讨论参数」中填写话题、轮数、tokenBudget 等。
  4. 在「开一场」面板输入话题,点击开始;过程中可查看实时发言流与榜单,需要时「终止讨论」或结束后「续前讨论」「导出 docx」「查看战报」。
  5. 若启用 exposeTools,可在 Agent 侧调用 roundtable_start / roundtable_status / roundtable_export,与设置页逻辑一致。

适用场景与注意

适合谁:需要在同一 DSH 环境里对比多个已配置模型的观点与文风、并希望产出结构化战报与 docx 归档的开发者或团队;分类上属于「工作流」型插件,而非单点模型封装。

权限与安全:插件以当前 dsh 进程的权限运行,会发起多轮 LLM 调用、读写本地配置与战报、在允许条件下拉取形象图 URL。安装前请阅读源码与 MIT 许可证,确认符合你的合规要求;敏感词与内容过滤能减少部分风险,但不替代业务侧审核。

生态说明:DSH 社区插件目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系;本文事实以插件 README 与 package.json 为准。

结尾

dsh-roundtable-harness 把多模型、共享上下文、六维裁判与 cost-meter 账本串成可复现的圆桌流程,适合在 DSH 里做可控的多轮「同台」对比。进一步了解请访问 SkillHub 目录页 与 GitHub 仓库。

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

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

小夜