架构
系统拓扑
mermaid
graph TB
User([用户]) --> Orch[编排器<br/>Claude Opus]
Orch --> Planner[Planner<br/>Claude Opus]
Orch --> Writer[Writer<br/>Claude Opus]
Orch --> Scout[Scout<br/>Gemini]
Orch --> Coder[Coder<br/>Codex]
Orch --> Judge[Judge<br/>Codex]
Planner --> State[(研究状态<br/>.omc/research/)]
Writer --> State
Coder --> State
Judge --> State
Scout --> Web((互联网))
Coder --> GPU[GPU 集群<br/>远程服务器]
State --> Orch
GPU --> Monitor[监控系统]
Monitor --> OrchAgent 名单
| Agent | LLM | 生命周期 | 职责 |
|---|---|---|---|
| 编排器 | Claude Opus | 常驻 | 读取状态 → 决策 → 分派任务 |
| Planner | Claude Opus | 按需 | 制定研究计划、实验设计、claim-evidence 契约 |
| Writer | Claude Opus | 按需 | 论文写作、摘要、Related Work |
| Scout | Gemini | 按需 | 文献检索、论文摘要、相关工作调研 |
| Coder | Codex (GPT-5.4) | 按需 | 代码实现、训练脚本、数据处理 |
| Judge | Codex (GPT-5.4) | 按需 | 独立评估 idea、审查实验结果、代码审查 |
为什么 Judge 用 Codex?
Judge 需要独立于编排器和 Planner(都用 Claude)。用不同的 LLM 做评审,避免同一个模型既出方案又评方案的"自己审自己"问题。
跨 LLM 审查原则
这是系统最重要的设计决策之一:工作永远由不同的 LLM 审查。
mermaid
graph LR
A[Claude 产出] -->|审查| B[Codex Judge]
C[Codex 产出] -->|审查| D[Claude 编排器]
E[Gemini 产出] -->|审查| F[Claude Planner]具体来说:
| 产出方 | 产出物 | 审查方 | 审查内容 |
|---|---|---|---|
| Planner (Claude) | 实验计划 | Judge (Codex) | 可行性、GPU 预算、是否 match 论文 setting |
| Coder (Codex) | 训练代码 | 编排器 (Claude) | 是否忠实实现研究意图 |
| Scout (Gemini) | 文献调研 | Planner (Claude) | 完整性、相关性、是否遗漏关键工作 |
| Writer (Claude) | 论文草稿 | Judge (Codex) | 逻辑严密性、claim 是否有数据支撑 |
这不是额外的开销 — 它是质量保证的核心机制。不同模型有不同的认知偏差,交叉审查能捕获单一模型会忽略的问题。
两层信息架构
AutoResearch 把信息分为两层:
工作记忆(Context)
Claude Code 的上下文窗口。优点是读写极快,缺点是有容量限制,session 结束就清空。
- 当前任务的详细信息
- Agent 之间的即时通信
- 编排器的决策过程
长期记忆(磁盘)
.omc/research/ 目录下的文件。持久、可版本控制、容量无限。
- Pipeline Status(当前阶段、进度)
- Research Contract(claim-evidence 契约)
- 实验记录(Experiment.md)
- 过程发现(findings.md)
核心规则
永远不要依赖 context 保存重要状态。 任何需要跨 session 存在的信息,必须写入磁盘。Context 是工作记忆,磁盘是长期记忆。
信息流
mermaid
sequenceDiagram
participant D as 磁盘状态
participant O as 编排器
participant A as Agent
O->>D: 读取 Pipeline Status
O->>O: 决策:下一步做什么
O->>A: 分派任务(带精简上下文)
A->>A: 执行任务
A->>O: 返回一行摘要
O->>D: 更新状态文件注意 Agent 返回的是一行摘要,不是完整的工作日志。详细结果写到磁盘。这是控制 context 膨胀的关键设计。