Skip to content

研究状态

AutoResearch 把所有研究状态持久化在磁盘上。这是系统最核心的设计决策之一 — context 会清空,但磁盘不会。

目录结构

.omc/research/
├── pipeline.yaml          # 流水线配置(阶段定义、gate 类型)
├── status.yaml            # 当前 Pipeline Status
├── contract.md            # Research Contract(claim-evidence 契约)
├── ideas/
│   ├── idea-001.md        # 候选 idea 卡片
│   ├── idea-002.md        # 每个 idea 独立文件
│   └── scores.yaml        # Judge 评分记录
├── experiments/
│   ├── exp-001.yaml       # 实验配置
│   ├── exp-001-results.md # 实验结果
│   └── baselines.yaml     # Baseline 记录
├── training/
│   ├── runs.yaml          # 训练运行记录
│   ├── monitoring.yaml    # 监控配置
│   └── checkpoints.yaml   # Checkpoint 追踪
├── paper/
│   ├── outline.md         # 论文大纲
│   ├── sections/          # 各章节草稿
│   └── reviews/           # 审稿意见和修改记录
└── findings.md            # 跨阶段关键发现

每个文件的作用

status.yaml — 项目仪表盘

这是编排器每次启动时第一个读的文件。它记录了项目的完整状态:

yaml
stage: training
idea: "基于对比学习的细粒度特征解耦"
contract: contract.md
current_branch: feature/contrastive-decouple
baseline: "CUB-200 acc=87.3(base paper 86.8)"
training_status:
  server: ic2
  gpus: [0, 1, 2]
  tmux: train-exp03
  wandb_run: abc123def
  started: "2025-03-15T14:30:00Z"
next: "等待训练完成,预计 18h"

必须及时更新

编排器在每次状态变化时必须立即更新 status.yaml。这是新 session 恢复的唯一依据。

contract.md — Claim-Evidence 契约

这是整个研究的"合同"。一旦确定,所有后续工作都围绕它展开:

markdown
# Research Contract

## Claim
我们的方法通过对比学习解耦细粒度特征,在不增加推理开销的前提下
提升细粒度识别精度。

## Evidence Required
1. CUB-200 数据集上 top-1 accuracy 超过 base paper (86.8%)
2. 推理 FLOPs 不超过 base paper 的 110%
3. 消融实验证明解耦模块的贡献

## Base Paper
- 论文: "Fine-Grained Recognition via ..." (CVPR 2024)
- 代码: github.com/xxx/fine-grained-baseline
- 我们的实验 setting 与其完全一致

## Non-Goals
- 不追求 SOTA(只需证明方法有效)
- 不做多数据集泛化实验(除非审稿人要求)

findings.md — 过程发现

跨阶段的关键发现,最新的在前面。这不是实验日志 — 只记录会影响决策的发现:

markdown
# Findings

## 2025-03-16: 学习率 warmup 关键
发现对比损失在前 500 步极不稳定。加 linear warmup 后训练稳定。
已调整 training config。

## 2025-03-15: Base paper 代码有 bug
base paper 的 data augmentation 代码在 resize 后没有归一化。
修复后 baseline 精度从 85.1% 提升到 86.8%(与论文一致)。

ideas/ — Idea 管理

每个候选 idea 是一张卡片:

markdown
# Idea Card: contrastive-decouple

## 一句话
通过对比学习让模型自动解耦共性特征和判别性特征

## Base Paper
- 论文: xxx (CVPR 2024)
- GitHub: github.com/xxx
- 代码已确认可用 ✓

## 预估资源
- 模型: ResNet-50 (~25M params)
- 数据: CUB-200 (5994 train / 5794 test)
- GPU: 2×A5000, 约 8h
- 在 24h 预算内 ✓

## Judge 评分
feasibility: 8/10
novelty: 6/10
significance: 7/10
overall: go

experiments/ — 实验记录

已完成实验的正式记录。与 findings.md 的区别:findings 记过程,experiments 记结论。

yaml
# exp-001.yaml
name: "baseline reproduction"
method: "原封不动跑 base paper 代码"
config:
  model: resnet50
  dataset: CUB-200
  epochs: 100
  lr: 0.01
  batch_size: 32
  gpus: 2
server: ic2
wandb_run: baseline_001

两层信息架构

载体特点用途
工作记忆Context 窗口快速、有限、易失当前任务执行
长期记忆.omc/research/持久、无限、可追溯跨 session 状态

规则

  1. 任何需要跨 session 存在的信息 → 写磁盘
  2. Agent 返回一行摘要到 context,详细结果写磁盘
  3. 新 session 从磁盘重建状态,不依赖 context 历史

Context 满了怎么办

当 context 接近容量限制时:

  1. 不要慌 — 所有重要状态都在磁盘上
  2. 编排器自动触发 compact — 把当前上下文压缩为摘要
  3. 如果需要新 session,写 HANDOFF.md 记录交接信息
  4. 新 session 读取 status.yaml + contract.md + HANDOFF.md 即可恢复
markdown
# HANDOFF.md(新 session 交接文件)

## 当前进度
- Stage: training
- 实验 exp-003 正在 ic2 上训练,tmux=train-exp03
- 预计还需 6h 完成

## 下一步
1. 检查 tmux 和 wandb 状态
2. 训练完成后进入 analysis 阶段
3. 重点关注 CUB-200 上的 top-1 accuracy

## 需要注意
- 学习率 warmup 已修复(见 findings.md 2025-03-16)
- baseline 精度是 86.8%,不是论文最初报告的 85.1%

恢复流程

新 session 启动时:读 status.yaml → 读 contract.md → 读 HANDOFF.md(如果存在)→ 检查远程训练状态 → 继续。整个过程不需要前一个 session 的 context 历史。

下一步

AutoResearch — Multi-agent Deep Learning Research System