⚠️ 源单薄性声明 本条目全部素材来自 Karpathy 一人的 autoresearch 项目及其二手解读——program.md 本体 + README + 一篇分析文 + 索引里的 Karpathy 段。同作者多份 = 单一视角。 已讲清楚:program.md 具体是啥 / Karpathy 想说什么 / “窄 loop”原则 还没听到:其他人用同样思路的独立案例、反对观点、理论局限 本条目是”Karpathy 的一家之言”。

一句话

Karpathy 认为:AI agent 的编排产物是一份 markdown 文档(他叫 program.md),它既是说明书也是程序——md 就是代码

来源是什么

Karpathy 2026 年初开源的实验项目 autoresearchgithub.com/karpathy/autoresearch)。这项目的目标:让 LLM 自己做 ML 研究。他没写复杂的 agent 框架——就一份 program.md,LLM 读它干活。

raw 里的 program.md 文件(karpathy/autoresearch/other-md/program.md)是这份实际程序——124 行 markdown,定义:

  • 实验如何启动(git 分支、数据准备、基线建立)
  • 实验如何运行(5 分钟时间预算、可改什么、不可改什么)
  • 如何记录(results.tsv 的 5 列格式)
  • 如何判断(val_bpb 降了就 keep,不降就 git reset)
  • 最重要的:“NEVER STOP”(直到人工中止)

三个具体设计原则

原则 1:窄 loop(Karpathy 这个项目最核心的说法)

program.md 里:单 metric(val_bpb)× 单文件(train.py)× 单时间预算(5 分钟)。

每次实验就做一件小变化,跑 5 分钟,看 val_bpb 降没降。降了 keep,不降 reset。

对比他自己的 8-agent 实验失败(见 案例_Karpathy 的 8-agent 实验为什么失败):宽 loop(多 agent × 多变量 × 跨文件)产生 junk science。

Karpathy 自己的总结(从 autoresearch-analysis.md 提炼):agent 能做的研究边界 = loop 的窄度。loop 越窄,agent 越靠谱。

原则 2:md 要能当编译目标

autoresearch 的 program.md 不是”给人看的文档”——是给 LLM 执行的指令。写法因此很特殊:

  • 每个动作都有明确条件(“if X then Y”)
  • 每个边界都明确写出(CAN do / CANNOT do 两段对照)
  • 连情绪化的禁令都有(NEVER STOP 全大写重复强调)

这和”给人看的文档”不一样。给人看的文档留余地、讲风格、带氛围;给 LLM 看的 program.md 要消灭歧义

原则 3:autonomy 有明确边界

program.md 里 “NEVER STOP” 段是个耐人寻味的设计:

“Once the experiment loop has begun (after the initial setup), do NOT pause to ask the human if you should continue. … The human might be asleep, or gone from a computer and expects you to continue working indefinitely until you are manually stopped.”

翻译:明确告诉 LLM “你是自主的,不要问我要不要继续”。但这个自主是受限的——修改哪些文件、时间预算、评估方式,全由 program.md 框死。

自主 ≠ 无限自由。框架内的自主。

这对你搭系统的启发

(这部分是我的推断,不是 Karpathy 给的结论——一家之言注意

  1. 先想清楚 loop 有多窄——你要让 AI 自己跑的流程,是什么级别的收敛?能窄到”改一个参数跑一次”吗?不能的话 → 你的自主化会产生 junk science。
  2. program.md 的写法要学——看他原文怎么写”CAN do / CANNOT do”、怎么写”NEVER STOP”——很不一样于你给同事的 spec。
  3. autonomy 先给小段路——Karpathy 的做法:先让 LLM 跑 1 个实验看结果,确认机制靠谱,再放它跑 100 次。不要上来就”全自动”。

与本 wiki 其他条目的对比

  • 什么是 MD-based System:MD-based 是范式(md 当系统),program.md 是这范式下的一个极致案例(md 直接驱动自主循环)
  • CLAUDE.md 完全解读:CLAUDE.md 是”交互式 AI 助手的人设+规则”;program.md 是”自主 agent 的完整程序”。前者 AI 帮你,后者 AI 自己跑
  • raw → wiki 知识沉淀机制:本项目的 AI 学者 agent 协议 ai-xueze.md 某种意义上就是一份 program.md——只是人工策展那一步保留了人介入,不走 NEVER STOP

陈彬视角

Karpathy 这套东西最容易被误读的点:以为”md 就是代码”是在替代编程。不是。是在扩展谁能编程

原来只有懂 Python 的人能写程序。现在会写 markdown、能说清自己想要什么的人,也能写程序——给 LLM 执行。门槛不是消失,是转移:从”会语法”转移到”能说清楚”。

但也别神化。Karpathy 自己的 8-agent 实验就失败了(见下一条目)。md 能驱动 agent 不等于 agent 能搞定所有事。当前现实:窄 loop 能 work,宽 loop 不行;实现能 work,研究不行;判断少的事能 work,判断多的不行。

needs_sources(明确待补)

  • 非 Karpathy 的独立 “md-as-program” 实践案例
  • 反对此观点的声音
  • program.md 路径的局限边界

关联