Research Methodology — Selective Harvesting Robotics Intel
主控 Claude Code (Opus 4.7) · 2026-05-19
多进程、可扩展、可审查的情报调研协议。本文用于复现 / 二轮迭代 / 团队接力。
1. Architecture
┌─────────────────────┐
│ Main controller │ Opus 4.7
│ (this Claude Code) │
│ - 设计 / 合并 / 审查 │
└──────────┬──────────┘
│
┌──────────────────┼──────────────────────────────┐
│ │ │
┌───────▼──────┐ ┌──────▼────────┐ ┌──────────▼─────────┐
│ shared/ │ │ master_* │ │ outboxes/<id>/ │
│ • registry │ │ • projects │ │ (per-agent │
│ • candidates│ │ • orgs │ │ append-only) │
│ • findings │ │ • biblio │ │ │
│ • review_q │ │ • index.csv │ │ │
└──────────────┘ └──────────────┘ └──────────┬─────────┘
│
┌─────────────┬──────────────┬──────────────┬───┴─────────┐
│ │ │ │ │
┌──────▼────┐ ┌──────▼────┐ ┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
│scope_disc │ │lit_patent│ │company_fnd│ │crop_workerN│ │ review │
│ Sonnet │ │ Sonnet │ │ Sonnet │ │ Sonnet │ │ Sonnet │
└───────────┘ └──────────┘ └───────────┘ └────────────┘ └───────────┘
各 sub-agent 在独立 tmux 窗口运行 claude -p,写自己的 outbox + crop 目录。
主控周期合并 outbox 到 shared/ + master_*。
2. Why multi-process
- 隔离 context:单 agent 的 context window 一旦塞满,质量下降;分散到 sub-agent 让每个有干净 context。
- 真并行:多个 sub-agent 同时跑 WebSearch / WebFetch,I/O 等待重叠。
- 职责清晰:crop_worker 不需要懂全局 ID 命名空间;主控不需要做单作物深度搜索。
- 可重启:sub-agent 失败不影响其他 agent;主控可重新调度。
3. Why Sonnet for workers, Opus for main
- 质量分工:Opus 综合判断、跨作物去重、审查纠偏;Sonnet 结构化搜索 + JSONL 输出,性价比高;
- rate limit 隔离:8 个并行 Opus 子进程在 Max 订阅下会撞限;Sonnet 缓解;
- 预算控制:每个 sub-agent
$3上限,Max 订阅近乎兜底;首轮所有 agent 在预算内完成(Sonnet 单 run 平均 $0.5–1.5)。
4. Outbox vs direct write
| 写入方向 | 谁写 | 何时 |
|---|---|---|
| `outboxes/ | sub-agent | 实时(每个发现追加一行) |
| `outboxes/ | sub-agent | 实时 |
| `outboxes/ | sub-agent | 退出前一次性 |
| `crops/ | crop_worker 本身 | 边搜索边写 |
| `shared/*.jsonl` | 主控 (merge_outboxes.sh) | 周期性合并 |
| `master_*.jsonl` / `master_index.csv` | 主控 | 合并后聚合 |
| `master_bibliography.bib` | literature_patent 追加 + 主控 | append-only |
| `12_review_notes.md` | review_agent **追加** | 每轮 review |
5. Evidence levels
- A: 官方页面 / 论文 / 专利 / 公司公告 / 政府或高校页面
- B: 可信新闻 / 行业媒体 / 投资数据库公开页
- C: 视频说明 / 博客 / 二手转述 / 展会宣传
- D: 论坛 / 社媒 / 不可验证
不允许把 D 写成事实。不确定写 unknown / low confidence。每条结论保留 URL。
6. Stage taxonomy
stage_0_not_relevant
stage_1_concept
stage_2_algorithm_or_component_only
stage_3_lab_bench_prototype
stage_4_single_arm_or_end_effector_prototype
stage_5_controlled_environment_demo
stage_6_field_or_greenhouse_prototype
stage_7_pilot_trial
stage_8_commercial_limited
stage_9_commercial_scaled
stage_x_terminated_or_dormant
stage_unknown
7. Quality assurance
- review_agent 每轮抽查首批 crop_worker 输出:scope / stage / source / image / commercial / dedup;
- 高优 issue 立即由主控应用 (urgent corrections),中低优进入二轮处理;
- master_ 永远是 derived,可随时从 crops//01_project_inventory.jsonl + outboxes/*/organizations.jsonl 重建。
8. Round 1 经验数据
| Sub-agent | 用时 | 关键产出 |
|---|---|---|
| scope_discovery | 8 min | 14 candidates |
| literature_patent | 12 min | 34 papers + 8 patents + 7 cross-crop |
| company_funding | 15 min | 24 organizations |
| crop_worker_001_strawberry | 17 min | 16 projects, 7 lang |
| crop_worker_009_pepper | 13 min | 8 projects, 6 lang |
| crop_worker_010_tomato | 15 min | 12 projects, 7 lang |
| crop_worker_003_apple | 20 min | 11 projects, 7 lang |
| review (round_1) | ~10 min | 17 issues, 15 recommendations |
平均 single-agent: ~15 min, ~$1.5; 总 round_1 wall-clock 21 min(最长 = apple worker)。
9. Round 2 计划
详见 scripts/orchestrate_rounds.sh。共 7 个 batch (R2B-R2X),每 batch 5 agent,串行执行,~2.5 hours wall-clock 估计(加上 rate limit 时段可能 4-6 hours)。
10. 复现 / 二轮指令
完整重启 round 1:
cd selective_harvesting_robotics_intel
tmux kill-session -t selective_harvest_intel 2>/dev/null
./scripts/start_tmux.sh
加跑单个作物:
./scripts/launch_agent.sh crop_worker <id> <slug> <cn_name> <en_name>
仅合并:
./scripts/merge_outboxes.sh
监控:
./scripts/agent_status_dashboard.sh
tail -f logs/orchestrator.log
tmux list-windows -t selective_harvest_intel
11. 已知坑
1. claude -p 默认 model 是 user 的 default;用 --model claude-sonnet-4-6 显式指定避免随用户全局变化;
2. --max-budget-usd 是软上限;agent 仍可能在最后一个 tool call 中超出;
3. sub-agent 在 bypassPermissions 下写入仅限于 --add-dir 列出的目录;务必传整个项目根;
4. tmux window 命名包含 / 会被替换为 -;保留 ASCII;
5. JSONL append-only 但读取顺序非保证;以 timestamp 字段为权威;
6. project_id 跨作物共享时需在所有相关 inventory 中标记;本项目尚未统一全局 ID 命名空间。