DSH 派发台 (dsh-dispatch)

DeepSeek Harness (DSH) 采用插件化架构。本插件(dsh-dispatch)允许将任务派发给本机 ZCode CLI 的无头进程,并在 DSH 页面右下角的悬浮面板中监视这些进程。它提供单写者互斥、用量聚合和通道管理等功能。

安装

本项目不发布 npm 包,必须从 GitHub 仓库安装并指定子目录。

dsh plugin --profile web add "github:Shuffle-1992/dsh-dispatch#path:dispatch"

说明:#path:dispatch 不能省略。本仓库是 monorepo,插件本体位于 dispatch/ 子目录中。DSH 实际执行 pnpm add 时,pnpm 默认取仓库根目录,根目录没有插件 package.json,装出来只会得到占位符。

核心功能

本插件主要提供以下能力:

  • 派发:支持将 prompt、任务文件或目标描述交给 ZCode 运行,支持 build / edit / plan / yolo 四种模式。
  • 单写者互斥:通过 repo / memory 文件锁及进程内 FIFO 队列,确保同锁任务串行执行,冲突任务排队不报错,避免多会话并发互相干扰。
  • 实时监视:显示每个 job 的状态、耗时、上下文占用、退出码及锁持有者,支持拉取最近输出(tail)。
  • 续跑 / 重跑:支持同会话内 --resume 重发原提示词,或在同一会话里发送新指令。
  • 通道与降级链:支持切换套餐通道 / 模型;额度耗尽或未开通时按降级链自动交接重跑。
  • 免费额度通道:支持 ZCode Start Plan(活动赠送额度),通道 ID 为 account:<family>-start-plan(如 account:bigmodel-start-plan),面板显示为“免费额度(Start Plan)”。
  • 用量聚合:本地台账支持 5 小时滚动、本周、今日统计,并显示套餐剩余额度(数据源不可用时如实标注 available:false)。
  • 派发总开关:一个跨会话的真值文件,设为 false 时任何会话都不得派发。
  • Agent 工具:注册 dispatch 命令,与面板操作一一对应。

配置

插件字段在 dispatch/ 目录下的 cordis.patch.yml 中配置。

字段 默认值 说明
demo false UI 演示模式,使用内置假数据渲染,不触达 dispatcher。
maxConcurrent 3 同时运行的 run 上限。
runnerPath '' runner 脚本绝对路径。
ledgerPath '' 台账 dispatch-runs.jsonl 绝对路径;留空则跳过用量聚合。
workRoot '' 派发器工作根目录(存放 locks/、state/、logs/);留空则落到插件目录 .data/。
switchPath '' 派发总开关真值文件路径;留空则开关不可写。

注意:runnerPath 与 workRoot 任一为空则不创建 dispatcher。面板会走 demo 降级,agent 工具返回可读错误。这是刻意设计,不静默跑错。

Agent 工具

插件注册了 dispatch 工具,支持以下子命令:

dispatch | list | kill | dismiss | tail | quota | status | switch | channels | channel | retry | fallback

  • dispatch:派发任务,参数包括 kind(prompt/task/target)、provider、mode、lock、cwd 等。
  • list / tail(id,n):查看任务列表及输出。
  • kill(id) / dismiss(id):终止任务并从列表移除。
  • quota:查看用量。
  • status / switch(enabled):读取或切换派发总开关。
  • channels / channel / retry / fallback:管理通道、重试、降级链。

注意事项

  1. 依赖 ZCode CLI:插件不自己存储凭据,而是读取 ZCode CLI 的 ~/.zcode/v2/config。若 ZCode 更新凭据后未同步回 config,可能导致 401 错误。
  2. 免费额度限制:免费额度通道是时间窗口型,不支持 --resume/--target/--memory-bench;官方 MCP 在托管进程内不可用。
  3. 与姊妹项目区别:本项目提供独立的 ZCode 进程和工具支持;姊妹项目 dsh-connect-zcode 将免费额度接成 DSH 的模型对话通道,但 DSH 工具层不参与(如 browser_*、Agent Teams 等)。若需 agent 自主使用工具,优先使用派发台。
羽毛球分组比赛记分
小程序二维码

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

小夜