Skip to content

Coder

身份

属性
LLMCodex (GPT-5.4)
生命周期按需调用
角色代码工匠 — 忠实实现研究意图,不做研究决策

Coder 是系统中唯一负责写代码的 Agent。它基于 Planner 的实现计划和 base paper 的代码,产出可运行的训练代码。选择 Codex 是因为它在代码生成任务上的表现最优。

什么时候被调用

阶段任务
代码实现 (Implementation)实现模型修改、训练脚本、数据处理
训练 (Training)编写训练启动脚本、调试运行时错误
分析 (Analysis)编写分析脚本(可视化、指标计算)
任意阶段需要代码层面的操作

收到什么

  • 实现计划 — Planner 的模块分解和接口定义
  • Base paper 代码路径 — 在哪个文件改什么
  • 具体修改指令 — 要添加什么模块、改什么逻辑
  • 测试要求 — 如何验证代码正确性

不收到什么

  • 研究背景和动机(Coder 不需要知道为什么做这个研究)
  • 论文内容
  • 文献调研结果
  • 完整的研究状态

最小信息原则

Coder 只收到实现所需的技术信息。传递研究动机不但浪费 context,还可能让 Coder 自作主张修改研究方案。

输出什么

代码修改

Coder 直接修改本地文件。输出是 git 可追踪的代码变更。

训练脚本

bash
#!/bin/bash
# train.sh - 自动生成的训练启动脚本

export CUDA_VISIBLE_DEVICES=0,1,2
export WANDB_PROJECT=fine-grained-research
export WANDB_RUN_GROUP=exp03

python train.py \
  --model resnet50 \
  --dataset CUB-200 \
  --data_path /data/Jingxuan/datasets/CUB-200 \
  --epochs 100 \
  --lr 0.01 \
  --batch_size 32 \
  --num_workers 8 \
  --output_dir ./output/exp03

返回给编排器的

一行摘要:

Coder: 已实现 ContrastiveHead 模块(models/head.py)并集成到训练循环。改动 3 个文件,本地测试通过。

不做什么

Coder 的边界

  • 不做研究决策 — 不决定用什么方法、做什么实验
  • 不修改实验设计 — 即使觉得计划有问题,也只报告不自行修改
  • 不写论文 — 不产出任何学术文字
  • 不选超参数 — 按 Planner 指定的配置实现
  • 不擅自优化 — 不在实现时"顺便"加入计划外的优化

调用方式

Coder 通过 OMCC team 以 Codex tmux worker 分派:

bash
# 编排器通过 omc team 分派 coder 任务
omc team 1:codex:coder "在 models/head.py 中实现 ContrastiveHead 类。
   输入: backbone 的 feature map (B, C, H, W)
   输出: 对比损失标量
   参考 base paper 的实现: models/baseline_head.py"

# 并行多个 coder(如 ablation)
omc team 2:codex:coder "运行 ablation 实验"

注意:Coder 不是 codex exec

Coder 走 omc team tmux worker(持久会话),不是 codex exec(无状态一次性)。codex exec 是 Judge 用的。

执行环境

Codex exec 在本地执行,有完整的文件读取权限。让它读本地代码文件而非搜索 GitHub — 本地的代码就是最新的。

代码质量保证

Coder 产出的代码会经过编排器(Claude)的审查:

mermaid
sequenceDiagram
    participant O as 编排器 (Claude)
    participant C as Coder (Codex)
    
    O->>C: 实现指令
    C->>C: 写代码
    C->>O: 完成摘要
    O->>O: 审查代码是否符合研究意图
    
    alt 不符合
        O->>C: 修改指令 + 具体问题
        C->>C: 修改
        C->>O: 修改摘要
    end

注意审查的角度:编排器(Claude)不是审查代码风格或 bug — 那是 Codex 自己的事。编排器审查的是代码是否忠实实现了研究意图

特殊规则

基于 base paper 代码开发

Coder 永远从 base paper 的代码出发修改,不从零开始写。这保证了:

  • 实验 setting 的一致性
  • 减少 bug 引入的风险
  • 方便直接对比结果

WandB 硬要求

所有训练脚本必须正确配置 WandB。绝不设 WANDB_MODE=offline。这是硬性规则,违反等于实验无效。

本地测试

代码修改后,在同步到远程服务器之前,Coder 需要做基本的本地测试:

  • import 不报错
  • 模型可以正常 forward
  • 数据加载管线可以跑通一个 batch

不需要跑完整训练 — 只确认代码基本可用。

AutoResearch — Multi-agent Deep Learning Research System