关于 herdr-quorum
用于通过 Herdr 执行 Agent 多方协作的技能,涵盖范围确定、并行启动、报告收集与综合。它规定运行记录和失败处理,并将审批决定留给用户。
主要功能
- 01确定配置与任务范围
- 02并行启动工作者
- 03逐步收集报告
- 04跟踪失败与工作者覆盖情况
- 05综合并标注来源的发现
适用场景
- 01执行范围明确的多 Agent 评审
- 02任务运行期间收集工作者报告
- 03汇报覆盖缺口与失败情况
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scottwater/ skills --skill herdr-quorum安装后在 Claude Code 中输入/herdr-quorum确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlprofiles/review.mdreferences/cli-arguments.mdscripts/collect.pylaunch.pytests/test_launch.py详细介绍
Herdr Quorum
确定任务范围
使用 profiles/ 中指定的配置;默认使用 review。只加载该配置。将用户请求确定为精确范围;若存在歧义,应先询问,不要推断为整个仓库的任务。对于提交范围,在一次调用中确定并固定端点哈希,同时检查工作树状态。将差异清单和源码调查留给工作者。
要求设置 HERDR_ENV=1。阅读 Herdr 技能,了解终端操作和安全事项;如果技能目录中没有该技能,则通过 herdr --skill 加载。如果 Herdr 或其说明不可用,请停止。对于 quorum 的文档所述操作,直接使用随附的合约;Herdr 的一般发现说明不需要在此处增加预检。
当配置、范围和 Herdr 执行环境均已明确时,即可完成此步骤。
准备任务说明
准备一份通用任务说明,其中包含配置的工作者指示、已确定的范围、用户约束,以及当前上下文中适用的项目规则。将综合指示交由主负责人保管。工作者在任务过程中可根据需要加载更多项目指导;发现可选规则目录不是启动前提。若可选目录不存在,则结束该查找。
将配置中的 cli|model|reasoning 元组视为数据。launcher 会验证其结构、拒绝重复项和未映射的 CLI,并转换随附的 CLI mappings。信任这些映射和请求的标识符。执行过程就是兼容性检查:启动前不要调用帮助、列出模型、搜索配置或探查文档。兼容性诊断应与 quorum 运行分开进行。
当精确范围和一份通用任务说明准备就绪时,即可完成此步骤。直接开始启动;不要先执行工作者的调查。
启动一次
使用 python3 调用启动器,传入其相对于技能目录的绝对路径,并为每个选定的元组传入一个 --worker。使用带引号的 heredoc,通过 stdin 发送一次通用任务说明。例如,将示例元组和任务说明替换为选定的配置文件与已明确的任务:
python3 /absolute/skill/path/scripts/launch.py \
--worker 'pi|provider/exact-model|high' <<'QUORUM_BRIEF'
<common brief>
QUORUM_BRIEF
从项目目录运行。选择一个未出现在任务说明中的 heredoc 分隔符,并将每个元组作为单个参数进行 shell 引号处理。只有在用户要求采用该首个分割方向时,才传入 --direction right 或 --direction down。为启动器命令留出 120 秒;之后,工作进程仍会独立继续运行。
启动器会创建同级窗格而不移动焦点,仅对其自身的工作进程区域进行分区,并发启动全新的交互式 Agent,并在每个 Agent 就绪后立即提示。它会保留原生配置和权限。每个工作进程都会收到通用任务说明,以及十分钟的节奏安排指示:留出最后一分钟用于汇报,并说明尚未完成的范围。工作进程无法看到彼此的结论,也无法看到负责协调的 Agent 提出的答案。
启动器的 JSON 输出会打印一个私有临时 run_dir,其中包含 brief.txt、run.json 和 monitor.log。一个分离运行的监控进程负责并发调用 agent prompt --wait、持久化收集事件,以及从提交时起计算每个工作进程的截止时间。它只会在截止时间检查并中断本次运行中由它启动的工作进程,并记录结果不确定或仍在运行的情况。即使负责协调的 Agent 正在审阅报告,或收集命令被中断,监控进程也会继续运行。
当每个工作进程都已尝试等待或记录了失败时,启动器就会返回;waiting 并不能证明提示词已送达或任务已完成。退出码 0 表示返回时没有记录失败,并不表示工作进程已成功;退出码 1 表示存在已记录的失败或启动/监控问题;退出码 2 表示输入或上下文无效。发生任何中断(包括工具超时)后,都要检查清单。切勿自动重新运行启动器,也不要在 shell 中重新生成其机制。
启动或派发失败意味着覆盖范围缺失:继续使用仍在运行的工作进程,不要重试、替换或修复。布局失败会停止启动,但会保留已创建的部分窗格 ID。将审批决定留给用户。
当启动器返回,或其被中断后的结果已在记录的运行目录中检查完毕时,即视为完成。
逐步收集
使用 collector,而不是轮询 Agent 状态:
python3 /absolute/skill/path/scripts/collect.py --run-dir '<run_dir>' --after 0
每条 collector 命令允许运行 390 秒。命令会阻塞,直到出现新事件、监控完成或到达五分钟检查点;已记录的事件会立即返回。及时读取刚刚完成的工作者报告,并在其他工作者继续运行时核查其来源。将这些发现交给主 Agent,以便其余工作者继续在不知情的情况下工作。处理完这一批后,在下一次调用中将返回的 cursor 作为 --after 传入。调用中断时可安全地重复使用上一次的 cursor;收集操作不会消耗事件。
检查点允许对本次运行中尚未解决的工作者进行一次健康状态检查,然后再次阻塞收集。已完成状态(包括 blocked)仅表示需要检查,并非可用报告。通过 Herdr 检查失败、阻塞、未知、截止时间和中断事件。complete: true 表示监控已结束,并不代表每个工作者都成功。综合之前,先核对返回快照中的每个工作者,包括仍在运行的工作者。如果监控不可用,请检查 run.json、monitor.log 和记录的窗格;在不重新启动工作者的前提下,于其剩余预算内处理仍在运行的工作者。
如需取消本次运行,请使用同一 collector,并传入 --cancel,允许运行 720 秒。它会检查并中断本次运行中正在工作的 Agent,但不会响应审批对话框,也不会关闭窗格。如果取消操作与耗时较长的提交重叠,会等待该工作者在其原始预算内完成活动。检查记录的结果,并报告仍在运行的 Agent;如果监控已结束,collector 不会发送新输入,而是指示通过 Herdr 进行清理。仅 collector/工具超时不会停止监控和工作者;使用同一个 cursor 重新连接。如果取消期间监控不可用,请仅通过 Herdr 直接检查并中断本次运行中正在工作的 Agent。
使用 Herdr 的近期未封装输出读取报告。如果无法恢复完整响应,请按照其较大读取和临时 Markdown 回退流程操作。即使报告伴随生命周期异常,只要仍可用,也要保留,并披露该异常。若观察到工作者未遵守明确指定的模型或推理设置,应将其视为工作者失败。缺少输出表示覆盖缺失,而非意见一致或没有发现。
当每个工作者都有可用报告或失败原因时,即可完成。
综合
按照配置文件中的综合说明处理带有来源标注的报告。若只有一份报告可用,将结果标记为单工作者结果;若没有报告可用,则返回失败摘要,不进行综合。
为每个工作者补充覆盖信息:名称、请求的 CLI/模型/推理设置、创建时的窗格 ID,以及结果或失败原因。区分请求的设置与观察到的不匹配情况。保留工作者窗格,以便检查和跟进。
当综合结果和覆盖信息涵盖每个选定的工作者时,即可完成。
维护配置文件和映射
添加 profiles/<name>.md,其中包含 Workers YAML 块,以及 Worker instructions 和 Synthesis instructions 部分。将任务策略保留在配置文件中,将执行机制放在启动器中。配置文件是参考文档,不能单独作为技能调用。
只有在被要求诊断兼容性或添加 CLI 时,才查阅已安装的帮助信息或权威文档,并同时更新 CLI contract、启动器和测试。运行 python3 -m unittest discover -s /absolute/skill/path/tests -v;测试使用虚假的 Herdr,不会启动真实 Agent。