跳转到内容

快速上手

这一页是最短的上手路径:把 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 就够了。
  1. 复制 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)。

  2. 改三处。 在 .github/guard.toml 里,layout 加上你的目录和根目录文件,protected 加上评测和数据路径。在 scripts/run.toml 里设好 experiment、env_lock 和 gpus。让训练代码在启动时把解析后的完整配置写成 JSON,存到 $RUN_DIR/config.json,只由一个进程写。

  3. 填写 AGENTS.md 的 Project 一节,每个字段一行:Layout、Test、Language、Protected eval/data paths、Run、Run records。

  4. 安装 CI 依赖:改 .github/workflows/test.yml 里的 pip install 一行。job 名 guard 和 test 不要改,分支保护按这两个名字认检查。

  5. 推一次 main,再以管理员身份运行 setup.sh。 guard 跑的是 main 上的版本,所以接入提交直接推到 main;这是“never push to main”唯一的例外。然后:

    终端窗口
    bash scripts/setup.sh

    它建好五个 label,只允许 squash 合并,并保护 main,要求 guard 和 test 必过。

  6. 确认两种 agent 都读到了规则。 在仓库里开一个会话,确认四个 skill 都列出来了。

每一步的细节和坑,见接入 CVSM和适配自己的环境。

下面的事都在一个会话里用几句话完成。issue 编号只是示例:研究 #10,它的代码任务 #11 和运行任务 #12。

  1. 计划。 说“我们计划一下这个研究”。agent 按 plan skill 和你讨论,起草研究、它的规格和子 issue,这时还不建任何东西。

  2. 发布(关口 01)。 说“发布”。agent 先建研究 #10,再建代码任务 #11 和被 #11 挡住的运行任务 #12,并在 #10 上记下你的 Decision。

  3. 实现。 说“做 #11”。agent 认领任务、实现、请新会话审查,到 PR 待合并时停下:检查全绿,当前 head 有 Verdict: pass。

  4. 合并(关口 02)。 说“合并”。agent 用 merge.py --human squash 合并,#11 随之关闭。

  5. 运行。 说“把 #10 推到待分析”。agent 启动 #12 的各个 run,启动后马上对照规格核对,贴出结果评论并关闭 #12。子 issue 全部关闭后,它把整个研究的总表和规格核对贴到 #10 上。如果这些 run 会超出 GPU 预算,它会先在关口 03 停下。

  6. 下结论(关口 04)。 读完结果和规格核对,说“#10 下结论:……”。agent 带着你的结论关闭这个研究。

每次停下,agent 都汇报三行,带链接:Done:、Waiting for you:、Next:。随时可以问一句“看看等我的”。