⚠️ 源单薄性声明 本条目全部素材来自 Karpathy 一人的 autoresearch 项目及其二手解读——
program.md本体 + README + 一篇分析文 + 索引里的 Karpathy 段。同作者多份 = 单一视角。 已讲清楚:program.md 具体是啥 / Karpathy 想说什么 / “窄 loop”原则 还没听到:其他人用同样思路的独立案例、反对观点、理论局限 本条目是”Karpathy 的一家之言”。
一句话
Karpathy 认为:AI agent 的编排产物是一份 markdown 文档(他叫 program.md),它既是说明书也是程序——md 就是代码。
来源是什么
Karpathy 2026 年初开源的实验项目 autoresearch(github.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 给的结论——一家之言注意)
- 先想清楚 loop 有多窄——你要让 AI 自己跑的流程,是什么级别的收敛?能窄到”改一个参数跑一次”吗?不能的话 → 你的自主化会产生 junk science。
- program.md 的写法要学——看他原文怎么写”CAN do / CANNOT do”、怎么写”NEVER STOP”——很不一样于你给同事的 spec。
- 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 路径的局限边界