- delete herdr start/dispatch scripts, herdr_agents.py and its test - drop Herdr section from PROJECT.md and row from .doc/README.md taxonomy - roster and handoff docs migrated to .doc/archive (history preserved, not deleted); test-reports mentioning herdr kept as dated evidence
12 KiB
Herdr 多 Agent 编排 v1.2
更新:2026-09-21;owner:Herdr 任务协调者;本轮规范修订 herdr-v1.2。本文件是 Herdr 角色、额度、审批与备援的唯一来源,取代原 2026-09-13 路由。实现/核验见任务记录。
1. 生效范围与前提
仅在明确使用 Herdr 编排、启动或派发任务时适用本表分工。 普通 Codex、Claude Code、Cursor 独立会话,以及仅研究/编辑本规范的任务,不自动套用 Cursor 唯一实施通道,也不自动启动多 Agent。通用授权、分支、锁、验证、清理始终遵循 AGENTS 与 worktree 操作规范。
只有 HERDR_ENV=1 才能查看/控制当前 Herdr 会话;外部会话可读规范、跑 dry-run 与隔离测试。用户已授权这些客户端自动通过工具请求;不为已授权步骤再等待人工批准。自动审批不产生额外环境、外部写入或破坏性操作授权。
Herdr 中的 PI CLI(例如 context_pi)是工程协作客户端;Compose 中“产品 PI Agent Runner”是业务执行器。二者不共享验收结论,不修改产品模型配置来满足本表。
2. 资源与取舍
订阅价格与个人额度优先级来自用户本次说明,是预算输入,不是实测余额或供应商无限量承诺。
| 资源 | 用户预算 | Herdr 纪律 |
|---|---|---|
| Cursor Ultra | $200/月,实施优先 | 默认唯一产品代码实施通道;高额度仍监测限流/余额,不自动开启额外付费 |
| Qwen 3.8 max/flash | 百炼最高档,充裕 | max 分析、报告、监督判断;flash 例行检查和执行已有测试 |
| GLM 5.3/flash | 高档 token plan,充裕 | 规划、执行跟踪、代码审查;模型额度共享时不把两个客户端当两份预算 |
| MiniMax M3 | ¥119/月,中等 | 失败归因、二线审查;每个失败问题至多两轮归因,重复失败转交带证据复核 |
| Kimi Code | ¥699/月,个人调研/报告优先 | Herdr 默认不用;仅可选正式报告终稿检查,或有理由的应急借用;合计每逻辑任务最多一次 |
| Codex / GPT-6 | 稀缺 | 终审仲裁、高歧义与两轮审查仍未解决的争议;不作日常监督/机械实施 |
| agy / Antigravity | 最低档,极少 | 轻量杂活与测试想法;耗尽转 flash,不做高频轮询或安全终审 |
修正“Cursor 订阅不限量”:官方用量说明仍描述用量池/限制。其他“充裕”也只是调度优先级,任务开始记录 available/low/exhausted/unknown;unknown 不等于无限。价格不写进程序阈值。
3. 角色、客户端与路由
模型路由基于本机帮助和已配置别名,启动后还须确认实际模型。pi --list-models 只证明配置目录可识别,不证明账户余额、远端可用或本任务真实输出质量。
| 角色 / lane | 默认 → 备援 | 交付边界 |
|---|---|---|
例行监督 supervision |
qwen_flash → qwen_max → verifier_antigravity | 读任务/测试/锁状态;阻塞判断交 max,僵局显式 critical-review |
需求分析 analysis |
qwen_max → qwen_flash | 可验收需求、歧义、边界;高歧义显式终审升级 |
规划 planning |
reviewer_glm → qwen_max → glm_pi | 步骤、依赖、允许写范围、测试计划 |
执行计划 execution |
reviewer_glm → qwen_max | 调度、跟踪、核对产物;不与实施者同时改产品代码 |
实施 implementation / ui |
implementer_cursor | 可运行改动、回归测试;仅明确写入接管理由时追加 reviewer_glm → qwen_max |
代码审查 code-review |
reviewer_glm → context_pi | 对冻结 diff 独立审查;两轮未过显式 critical-review |
系统测试 test |
qwen_flash → verifier_antigravity | 执行确定性测试命令;不能以“模型判断通过”替代进程退出码与断言 |
失败归因 test-analysis |
context_pi → reviewer_glm | 可重现输入、原因、最小修复建议;修复回实施通道 |
报告 report |
qwen_max → qwen_flash | max 写交付稿;flash 仅草稿,须回 max 定稿 |
报告二审 report-review |
reviewer_glm | max 自审后,GLM 独立查来源/逻辑/未验收声明 |
可选终稿 report-final-check |
context_kimi | max 完成正式交付稿后,至多一次,非每任务必经 |
终审 critical-review |
orchestrator_codex → reviewer_glm | GPT-6 仲裁;GLM 若是原作者/审查者须独立上下文并补跨模型复核,未解决风险保留 blocked |
轻量杂活 fast-check |
verifier_antigravity → qwen_flash | 小范围静态核对和整理 |
长材料 long-context |
qwen_max → glm_pi | 相关证据扫描,不默认占 Kimi |
特例借用 quota-emergency |
context_kimi | 百炼等故障、任务确需借个人额度;与终稿入口共用一次计数 |
兼容旧 lane governance 转到规划 GLM → max,已移除日常 Codex/Kimi 路由。Cline、Devin 和旧 reserve_claude 不在 v1.2 活跃路由;Claude Code 是客户端名称,本机路由到 GLM,不把它算作另一份 Claude 高端模型额度。
| profile | 标准逻辑名 | 启动选择 |
|---|---|---|
| claude | reviewer_glm | Claude Code --model opus,本机 Opus 别名配置为 GLM 5.3;不修改全局配置 |
| codex | orchestrator_codex | 默认已配置 GPT-6;仅角色名称兼容旧脚本,其职责收窄为终审 |
| cursor | implementer_cursor | cursor-agent 的已配置模型 |
| pi-max | qwen_max | qwen-token-plan-cn / qwen3.8-max |
| pi-flash | qwen_flash | qwen-token-plan-cn / qwen3.8-flash |
| pi-glm | glm_pi | zai-coding-cn / glm-5.3 |
| pi | context_pi | minimax-cn / MiniMax-M3 |
| kimi | context_kimi | Kimi Code 已配置模型 |
| antigravity | verifier_antigravity | agy 已配置模型 |
独立上下文审查有价值,但规划和审查都用 GLM 仍可能同源盲点;高风险争议增加 MiniMax/GPT-6 跨模型意见。简单任务采用“实施 → 验证/审查 → 收口”最短路径,不强制走九个角色;大任务按依赖拆分,最多一个产品代码写者/重叠范围,独立 worktree 可并行。
4. 预算闸门
- 每任务记录一个不可随子任务/重试变化的 task_id、角色调用、升级原因、审查/归因轮次、实际来源与结果。轮询优先直接读机器状态,只在状态改变或阻塞时调用模型。
- Kimi 默认不进入普通分析、代码审查、测试归因或报告撰写备援。协调者在既有授权内判断是否值得调用,显式填
--kimi-reason,不用再向用户索取工具批准。 - 派发器在发送前向主仓
.locks/state.sqlite的herdr_kimi_uses原子登记;同一 task_id 两个入口合计 ≤1。发送失败/结果未知也占用,不自动退款,不通过新 task_id 重置。此计数是一次投递,不是模型内部工具轮数或真实账单 token 上限;输入只含最终稿/必要来源,禁止继续发多轮 Kimi。 - 个人调研额度告急时,协调者在主仓
.locks/herdr-kimi.disabled留停用标记,所有后续受管 Kimi 派发拒绝;确认恢复后移除此标记。它不控制个人在 Herdr 之外的 Kimi 主业,也不能自动读取个人用量。 - Kimi 停用:max 自审 + GLM 二审。GPT-6 耗尽:GLM 复核;仅交付文档可以用尚未使用的 Kimi 终稿检查,不能拿文稿检查顶替代码安全/发布终审。百炼故障先用 GLM/MiniMax 支撑,确需 Kimi 才借用;故障消除即回原通道,不形成新默认。
- 机器强制范围是统一派发入口的一次计数;直接在 Kimi pane 手工发问可绕过,禁止据此声称全账户硬限额已完成。MiniMax 轮次/GPT 升级由任务记录管理,尚无跨供应商余额 API。
5. 自动通过请求与实际启动
所有 Herdr 启动均走 start;仅影响该次进程参数,不改个人客户端的全局审批设置。以下来自本轮安装 CLI --help,不是猜测同名产品能力。
| 客户端 | 参数 | 说明 |
|---|---|---|
| Claude Code | --dangerously-skip-permissions --model opus |
自动通过工具权限,使用用户已配置 GLM 别名 |
| Codex | --ask-for-approval never --sandbox danger-full-access |
不再等待批准;授权内操作仍须 agentctl/Git 门禁 |
| Cursor | --force --sandbox disabled --approve-mcps --trust |
Run Everything + MCP 自动批准 + workspace trust;显式 deny 仍有效 |
| agy | --dangerously-skip-permissions |
自动通过工具请求,不再添加旧脚本的限制性 sandbox |
| PI CLI | --approve + 明确 provider/model |
内置工具本就无逐工具弹窗;该参数处理项目文件信任,不能说它关闭了不存在的权限系统 |
| Kimi | --auto |
Never Ask;--yolo 仍可能询问,不替代 auto |
Cursor 参数、Kimi 参数、Claude 参数与本机帮助一起核对。CLI 升级后先重新核验 flags;外部认证、显式 deny、企业策略或扩展交互无法由统一参数保证消失,失败写 blocker,不反复向用户弹批准,不擅自清除已有安全规则。
# 先用 agentctl 注册 task-id。名称可用 base__短任务后缀,完整长度最多 32。
./scripts/herdr-agent-start.sh --dry-run pi-max qwen_max__demo w1:p2
./scripts/herdr-agent-start.sh --task task-id pi-max qwen_max__demo w1:p2
./scripts/herdr-agent-dispatch.sh --explain report
./scripts/herdr-agent-dispatch.sh --task task-id report '根据已提交证据撰写报告'
./scripts/herdr-agent-dispatch.sh --task task-id --kimi-reason '正式报告的一次终稿核验' report-final-check '核验最终稿与来源'
./scripts/herdr-agent-dispatch.sh --task task-id --implementation-fallback 'Cursor 额度已耗尽,已核对无在途写入' implementation '接续已登记范围'
启动/派发仅接受注册任务的直接 .worktrees 工作区;目标 pane/agent cwd 必须匹配。标准名后缀支持不同任务同时有自己的同角色 Agent;同任务同角色出现多个可用实例时拒绝歧义。旧命名实例先由其 owner 完成/交接,不自动抢占、改名或停止。
6. 监督、失败、恢复与交接
- 协调者读取任务与本规范,确认预算、角色、分支、允许写路径、实际客户端/模型和精确 head。启动后核验身份;标准名字只能表达意图,不能证明客户端模型没被手工切换。
- Herdr 的新 pane 不是
agentctl withsupervisor 的子进程;禁止把短命令租约凭据复制进去。worker 按每条写命令取自己的任务 path 租约,提交另取 git:index;共享 CURRENT/MATRIX 用 docs apply。监督者不长期持有所有资源锁。 - 只投递同任务的 idle/done Agent;已工作/blocked/unknown 不发第二份。等待最多 60 秒;超时只观察,不把超时当未执行或自动终止任务。
- 已选实例的 prompt RPC 出错统一视为可能已发送,不根据输出里出现 quota/auth 字样自动转发。只有已 settled 且返回本轮唯一 HERDR_RETRY 标记、明确未写入/无副作用时才可备援;仍是合作协议,不是任意工具副作用的机器证明。
- 不抢主目录、不切他人分支、不覆盖旧 CURRENT;合入/环境验收由独立协调者按机器锁串行处理。模型返回“完成”不等于测试通过或 dev 已部署。
- 每次交接含冻结 SHA、改动范围、实际验证/缺项、未完成副作用、下一执行者与预算用量。owner 退出并确认文件/进程/祖先证据后再清理;异常现场保留 cleanup_pending,不强删。