bug-hunter 阶段 2 技能。负责将随机化后的 diff 按 persona 矩阵分发给 8 个子智能体并行评审,并收集统一 JSON 结果。
本阶段必须使用 Agent 工具并行启动 8 个子智能体,严禁手工编写 findings!
Agent 工具至少 8 次descriptionshuffled_passes.json 的 passes[*] 中随机选择 1 个 pass 作为输入raw_findings.json如果 raw_findings.json 是手工编写的(而非从 8 个 Agent 收集),后续阶段将拒绝处理。
读取 Stage 1 输出的 shuffled_passes.json
要求:
passes[*].diff 中选取评审输入pass_id在单次响应中并行调用 Agent 工具 8 次,每个使用不同的 persona 提示词。
每个 Agent 必须同时满足:
推荐 persona 关注点:
Security Sentinel
重点看权限边界、输入校验、越界访问、信息泄漏、路径遍历、注入面。Concurrency Engineer
重点看锁顺序、竞态、原子性、可见性、死锁、丢唤醒。Performance Analyst
重点看热点路径、复杂度、无谓拷贝、阻塞等待、缓存失效。Diverse Reviewer A
重点看核心逻辑正确性、状态迁移、条件分支遗漏。Diverse Reviewer B
重点看边界条件、空值/极值、长度与容量、资源上限。Diverse Reviewer C
重点看错误处理、返回码传播、回滚与清理路径。Diverse Reviewer D
重点看 Linux 语义一致性、接口契约、行为兼容性。Diverse Reviewer E
重点看资源生命周期、引用关系、释放时机、泄漏风险。agentpass_id 作为调试元数据;后续脚本会忽略未知字段{"schema_version":"1.0","findings":[...]} 包装对象artifacts/raw_findings.json推荐输出结构:
{
"schema_version": "1.0",
"findings": [
{
"file": "kernel/src/foo.rs",
"line": 42,
"type": "logic",
"severity": "major",
"description": "error path forgets to release inode reference",
"fix_code": "drop(inode);",
"confidence": 0.81,
"agent": "Diverse Reviewer E",
"pass_id": 3
}
]
}
每个 Agent 必须返回纯 JSON 数组:
[
{
"file": "path/to/file.py",
"line": 42,
"type": "security|concurrency|performance|logic",
"severity": "critical|major|minor",
"description": "问题描述",
"fix_code": "修复代码片段",
"confidence": 0.9,
"agent": "Security Sentinel"
}
]
shuffled_passes.json 中抽样输入,而不是直接评审原始 difffile:line[0, 1]agent 字段必填,值必须是当前角色名