PILLAR 02 · AGENT ORCHESTRATION
工作编排:以假设拓展探索,以证据裁定结论
swarm 不是把任务丢给一群 agent 各干各的——它是套在 Phase 0-4 主循环外的编排壳: 假设分支有界探索、编号证据持久化、独立评审放行结论,Coordinator 状态全程落盘可无损重启。
ARCHITECTURE
Coordinator · Investigator · Reviewer
swarm 模式不是 Phase 0-4 的替代品,而是套在它外面的编排壳:每个分支内部仍然走 Phase 0 定位 → Phase 1 静态 → Phase 2 动态 → Phase 3 验证 → Phase 4 沉淀的主循环; swarm 层只负责「把哪些候选机制并行查、用证据裁定谁对谁错、结论过独立评审后才算数」。
有界探索
证据持久化
动态假设裁决
对抗式评审
ROLE PROTOCOL
三个角色,三条硬边界
Coordinator 由主 agent 自己担任;Investigator 与 Reviewer 由 Coordinator 用 task 工具按需动态拉起,不预定义 agent 配置文件。每个角色都有一条不可违反的硬边界。
| 角色 | 职责 | 关键硬约束 |
|---|---|---|
Coordinator主 agent · 唯一 | 提出与拆分假设、维护假设树与证据库、派发分支、裁决假设状态、判断收敛、做统一审计与整体测试; 证据库是唯一权威来源,对话只是缓存。 | 反循环论证:goal 不得作为任何假设的支撑证据; 规划无兜底——证据不足时承认空转、可见地失败,不硬编宽泛派发填充进度; 统一审计不下放给任何 subagent。 |
Investigator按分支动态拉起 | 在有界 context 内把单个假设推进为「证实 / 证伪 / 新证据」三者之一,分支内自主完成 Phase 0-3 局部分析与局部验证,回传 supported / refuted / inconclusive / blocked。 | 任务小、职责单一:单次只判定一个问题,预期 ≤ 30 次工具调用、≤ 15 分钟; 只回传结构化证据,不回传过程流水账; 无权宣布结论「已验证」;每条有效发现立即增量落盘 evidence.md。 |
Reviewer独立拉起 | 对分支提交的候选结论做对抗式评审:挑战「可复现吗」「真的回答了原问题吗」,抽查复现 ground truth 样本,输出 approve / reject + 逐项理由与补救建议。 | 不得由产生该结论的 Investigator 上下文延续而来,不继承分支对话历史,只看简报、证据库与可复现产物; 6 项对抗检查清单(可复现性、验证强度、标签诚实、回答原问题、替代解释、边界一致)任一不过即 reject。 |
HYPOTHESIS LIFECYCLE
假设的一生:可验证、可证伪、可翻案
假设树登记在 hypotheses.yaml 中,status 字段是状态机唯一权威来源。假设的对象是「目标工作机制的候选结论」(语义层),保护类型(CFF / MBA / VMP)不构成假设、不影响分支划分。
EVIDENCE PROTOCOL
协同只认编号证据,不认对话记忆
evidence.md 是追加式日志,只增不改;编号 E<n> 全局单调递增、永不复用。简报、评审报告、假设树之间的证据引用一律用编号(「E7 显示……」),不允许贴大段原文。
analysis/swarm/ ├── hypotheses.yaml # 假设树(状态机唯一权威来源) ├── evidence.md # 追加式编号证据日志(只增不改,E<n> 全局单调递增) └── ground-truth/ # 全分支共用的输入→输出配对样本
已证伪路径必须登记(type: refuted-path,claim 写清「试过什么、为什么排除」),下轮派发简报必列,避免重复试错。
写入前去重:归一化比对 claim 后语义相同则不新增条目,在原条目追加 corroborated_by 分支号——独立佐证提高可信度。
标签诚实:沿用 Phase 3 三级标签,未对拍的观察最高只能标「已验证推断」;不放行的证据不能作为 verified 假设的支撑。
## E7
- hypothesis: H1
- branch: H1
- type: observation # observation | reproduction | refuted-path | audit
- claim: "sub_1A3F0 的 0x20 字节常量与样本 S3 的 HMAC 密钥逐字节一致"
- method: "Frida hook sub_1A3F0 取第 2 参数,与 ground-truth/S3.json 对拍"
- samples: [ground-truth/S3.json]
- label: 已验证 # 已验证 | 已验证推断 | 推测
- review: approved-by-R2
- date: 2026-07-29DELIVERABLE CONTRACT
「基本搞清楚了」不算交付
简报的 deliverable 字段不是自由文本承诺。按任务类型对照下表,缺任一项即视为未交付——「发现了 AES」「基本搞清楚了」「找到了相关函数」只算过程自述。任务覆盖多行时取并集。
| 任务类型 | 最少交付物(缺一不可) |
|---|---|
| 定位(找到目标函数) | 函数地址 + 入口到目标的完整调用链 + 别名登记(IDB 重命名或符号注册表) |
| 算法还原 | 伪代码或等价结构化描述 + 参数语义表(每个输入的来源与含义)+ 关键常量在二进制中的地址 |
| 动态证据(hook / trace) | hook 脚本路径 + 未裁剪的原始输出 + 与静态结论的对应关系(哪个输出证明了哪个 claim) |
| 对拍验证 | 复现脚本路径 + 全量样本逐条对拍结果(不允许只贴一条成功的) |
| 最终结论(回答 goal) | 上述相关项的组合 + Phase 4 离线复现脚本 + goal 验收条件逐条达成说明 |
HUMAN IN THE LOOP
中途纠偏是 Hint,不是推倒重来
用户在 swarm 运行中途的任何输入(纠偏、补充线索、否决候选)都是 Hint。Hint 的价值在于把「错误候选」转译成下一轮可执行的约束;推倒重来会丢掉已落盘的证据与已排除的路径,是对 Hint 最贵的响应方式。
① 登记为证据
② 派发 follow-up
③ 从错误处继续
ANTI-PATTERNS
协议里写死的 23 条反模式,审计逐项排查
以下行为均为协议违规,Coordinator 统一审计时逐项排查。这里摘出 8 条最容易犯的代表。
分支间传递对话历史
Investigator 自己宣布已验证
保护类型当假设
证伪路径不登记
Reviewer 不独立
静默超支
证据攒批回传
无租约操作真机
完整清单(共 23 条)见 references/orchestration/agent-swarm.md。