快速上手
这一页是最短的上手路径:把 CVSM 复制进仓库、打开它,再带一个研究走完四个关口。每一步都可以交给会话里的 agent 去做;你只需要拍板,并在需要时提供管理员账号。
- 一个默认分支叫
main的 GitHub 仓库。setup.sh、guard 和各个 skill 都按 main 写。 - 已登录的
gh命令行。运行 setup.sh 需要管理员账号。 - Claude Code 或 Codex。
- 启动运行的机器上有 Python 和 MLflow。参考实现
run.py和results.py用 MLflow;默认的 SQLite 存储装mlflow-skinny加sqlalchemy和alembic就够了。
接入 CVSM
Section titled “接入 CVSM”-
复制 CVSM 的文件。 只复制被跟踪的文件,这样未跟踪的本地文件不会带过去,
.claude/skills软链也会保留:终端窗口 git -C <cvsm clone> archive HEAD AGENTS.md .agents .claude .codex .github scripts tests ':!.github/workflows/pages.yml' | tar -x -C <你的仓库>pages.yml构建的是 CVSM 自己的文档站,所以不复制。再把 CVSM 的.gitignore几行并进你的,并在接入提交的信息里记下复制自 CVSM 的哪个 commit(git -C <cvsm clone> rev-parse HEAD)。 -
改三处。 在
.github/guard.toml里,layout加上你的目录和根目录文件,protected加上评测和数据路径。在scripts/run.toml里设好experiment、env_lock和gpus。让训练代码在启动时把解析后的完整配置写成 JSON,存到$RUN_DIR/config.json,只由一个进程写。 -
填写 AGENTS.md 的 Project 一节,每个字段一行:
Layout、Test、Language、Protected eval/data paths、Run、Run records。 -
安装 CI 依赖:改
.github/workflows/test.yml里的pip install一行。job 名guard和test不要改,分支保护按这两个名字认检查。 -
推一次 main,再以管理员身份运行 setup.sh。 guard 跑的是 main 上的版本,所以接入提交直接推到 main;这是“never push to main”唯一的例外。然后:
终端窗口 bash scripts/setup.sh它建好五个 label,只允许 squash 合并,并保护 main,要求
guard和test必过。 -
确认两种 agent 都读到了规则。 在仓库里开一个会话,确认四个 skill 都列出来了。
跑第一个研究
Section titled “跑第一个研究”下面的事都在一个会话里用几句话完成。issue 编号只是示例:研究 #10,它的代码任务 #11 和运行任务 #12。
-
计划。 说“我们计划一下这个研究”。agent 按
planskill 和你讨论,起草研究、它的规格和子 issue,这时还不建任何东西。 -
发布(关口 01)。 说“发布”。agent 先建研究 #10,再建代码任务 #11 和被 #11 挡住的运行任务 #12,并在 #10 上记下你的 Decision。
-
实现。 说“做 #11”。agent 认领任务、实现、请新会话审查,到 PR 待合并时停下:检查全绿,当前 head 有
Verdict: pass。 -
合并(关口 02)。 说“合并”。agent 用
merge.py --humansquash 合并,#11 随之关闭。 -
运行。 说“把 #10 推到待分析”。agent 启动 #12 的各个 run,启动后马上对照规格核对,贴出结果评论并关闭 #12。子 issue 全部关闭后,它把整个研究的总表和规格核对贴到 #10 上。如果这些 run 会超出 GPU 预算,它会先在关口 03 停下。
-
下结论(关口 04)。 读完结果和规格核对,说“
#10下结论:……”。agent 带着你的结论关闭这个研究。
每次停下,agent 都汇报三行,带链接:Done:、Waiting for you:、Next:。随时可以问一句“看看等我的”。