TaxolYang0000/dsh-kanban-watcher0

dsh-kanban-watcher

DSH ↔ Hermes 双 Agent 协作管道的看板执行侧插件:监听 Hermes kanban 队列,把任务交给 DSH Agent 在 Web GUI 会话中执行,并把结果回写看板与 done 文件。 支持会话继承([会话继承:关键词] 续接历史会话)。

AI 分析

核心用途是实现 DSH 与 Hermes 之间的双智能体看板任务协同。适合需要跨系统自动派发、执行和跟踪 AI 任务的自动化工作流场景。

パッケージ
dsh-kanban-watcher
バージョン
0.2.0
ライセンス
NOASSERTION
最終更新
2026/08/14

インストール

検証済み bundle がないか、互換性チェックに失敗しています。先にリポジトリの説明を読んでください。 README 全文を読む ↗

ドキュメント

README 全文を読む ↗

配置项

全部配置走 cordis.patch.yml 里插件行的 config,均有默认值:

默认值说明
hermesBin$HERMES_BINhermes CLI 可执行文件路径(kanban 子命令入口)
boarddsh看板名;与 Hermes 侧 /dsh-send 创建任务用的 board 一致
assigneedsh认领归属人;只处理 assignee 为 dsh 的任务
triggerDir$DSH_TRIGGER_DIR触发文件目录:Hermes 下发任务后写 .trigger 到此,fs.watch 监听事件驱动唤醒
doneDir$DSH_DONE_DIRdone 文件目录:任务完成后写 .done 到此;Hermes 外部事件注入(external_event_steer)默认监听这里,可用 HERMES_DONE_WATCH_DIR 覆盖
pollIntervalMs30000兜底轮询间隔(fs.watch 事件可能合并/丢失)
taskTimeoutMs600000单任务硬超时(10 分钟);超时释放 agent 会话并走错误上报,防审批挂起拖死管道
permissionPresethermes-trustedwatcher 会话专用权限预设(danger-full-access + never):白名单落点免审批写、升级请求快速失败
cwd$DSH_WORKSPACE任务未指定工作区时的默认工作目录
allowedOutputDirs["$DSH_WORKSPACE", "$DESKTOP"]输出落点白名单(镜像 Hermes 下发侧白名单;拦截仍在 Hermes 侧)
modelMapflash→flash / __fallback__Hermes 模型规格 → DSH provider/model 翻译表;__fallback__ 为兜底

⚠️ 安全权衡(必读):hermes-trusted = danger-full-access + never,watcher 会话拥有全盘写权限。安全边界依赖 Hermes 下发侧白名单(任务源头过滤),不是沙箱。对不可信任务源需要另行防护。

使用

从 Hermes 侧下发任务(上游)

Hermes 侧用技能 /dsh-send(见 hermes-side/dsh-send-skill/SKILL.md):

/dsh-send --model deepseek-v4-flash 写一份本周进展周报

/dsh-send 会:创建 kanban 任务(hermes kanban --board dsh create ... --assignee dsh --created-by hermes --json)→ 写触发文件 ~/.dsh/kanban-trigger/.trigger → 返回任务 id。

watcher 认领执行(本插件)

  1. fs.watch 收到触发文件事件(或 30s 兜底轮询),drainOnce 启动;
  2. list --json --assignee dshready 任务 → claim (原子认领)→ show --json 读元数据;
  3. model_override/provider_overridemodelMap 翻译,agents.create 开 GUI 会话(挂 standard preset + hermes-trusted 权限预设),followup 注入任务,withTimeout 兜底;
  4. 执行完成后 comment + complete --result 回写看板,再 writeDoneFile.done

会话继承(v0.2.0,续接历史会话上下文)

任务正文携带 [会话继承:](或显式 [会话继承:])时,watcher 会在同一工作区内匹配历史会话并续接上下文,而不是每次新对话:

  • live 会话 → 直接复用(agents.get + followup,方案 A)
  • 冷会话agents.resume 恢复事件流后续接
  • 未命中 / 同会话二次占用 → 回退新建会话(行为不变)
/dsh-send --resume 继续讨论X 再分析一下刚才的结论