來源溯源與核心概念
報告目錄導覽
近年在 AI Agent 社群廣為流傳的名言:「不要再直接 prompt coding agents,而要設計會去 prompt agents 的 loops」,經常被標註為 Andrej Karpathy 的發言。然而在進行事實查核後,需要先釐清精確的歷史出處。
然而,Andrej Karpathy(OpenAI 共同創辦人、前 Tesla AI 總監)在此方向上提供了更具體、具備完整可重現程式碼的開源實作:karpathy/autoresearch。在此之前,他更公開測試了一套由 4 個 Claude + 4 個 Codex、Git worktree 與 tmux 組成的「AI Research Organization」實驗。
範式轉移:從單輪對話到 Outer Loop
傳統使用 Coding Agent 的模式是「人類提出需求 → Agent 輸出代碼 → 人類人工審查 → 人類再次提示」。這種模式將人類置於每一個決策迴圈的中心,形成了嚴重的輸送量瓶頸。
傳統 Prompting 工作流(Human in the loop)
Human
↓ (Prompt)
Agent
↓ (Code)
Human Review
↓ (再 Prompt)
Agent
↓ (Code)人類必須不斷監看輸出並給出下一步指令,Agent 缺乏自我修正的客觀邊界。
Karpathy 的 Harness 閉環架構(Outer Loop)
Human
│ (修改 program.md / 制度)
▼
Claude Code / Codex
│ (修改 train.py)
▼
git commit
│
▼
immutable evaluator
(prepare.py)
│
▼
val_bpb improved?
┌────┴────┐
YES NO
│ │
KEEP git reset
│ │
└────┬────┘
▼
NEXT LOOP ↺人類負責編程研究制度(program.md),由客觀驗證器與 Git 狀態機接管每輪迴圈。
在這種架構下,人類工程師的工作不再是整天在終端機裡手打 Prompt,而是編寫「組織制度代碼(Programming the autonomous research org)」。
完整工具鏈與組件分工
在 karpathy/autoresearch 專案中,Karpathy 刻意使用極為精簡、標準的 UNIX 工具鏈,而非依賴龐大的外包第三方庫:
| 核心組件 | 技術實現 | 在 Harness 系統中的職責與角色 |
|---|---|---|
| Agent Runtime | Claude Code / OpenAI Codex | 可替換的推理與執行引擎(Execution Engine),負責閱讀指令並修改代碼。 |
| Control Policy | program.md | 核心營運程序(Standard Operating Procedure),定義目標、約束與無限迴圈策略。 |
| Mutable Surface | train.py | Agent 唯一主要允許修改的檔案。模型架構、優化器、超參數皆在此調整。 |
| Immutable Verifier | prepare.py | 不可篡改的驗證器(Ground Truth)。嚴格禁止 Agent 修改,防止其「修改考卷讓自己考滿分」。 |
| State & Rollback | Git (branch/commit/reset) | 作為狀態機與檢查點機制。驗證通過保留 Commit,驗證失敗直接 git reset。 |
| Persistent Memory | results.tsv + run.log | 長期狀態持久化至磁碟,避免大量歷史數據淹沒 LLM 的 Context Window。 |
| Hardware & Env | NVIDIA H100 GPU + uv + Python | 單卡自包含運行環境。每次實驗固定約 5 分鐘,每小時約可執行 12 次實驗迭代。 |
| Isolation & Multi-Agent | Git worktree + tmux | 多 Agent 場景下的檔案系統隔離與可視化監控,刻意不引入 Docker/VM 容器開銷。 |
program.md 狀態機解析
program.md 是整套系統的靈魂。它本質上是一個使用自然語言編寫的確定性狀態機(Natural Language State Machine)。
其核心運行邏輯可被精確抽象為以下虛擬代碼:
while True:
inspect_git_state()
idea = think_of_next_experiment()
edit("train.py", idea)
git_commit()
# 執行實驗並重定向日誌,不污染上下文
run("uv run train.py > run.log 2>&1")
# 僅提取核心數值
score = grep("val_bpb", "run.log")
memory = grep("peak_vram_mb", "run.log")
# 記錄至持久化磁碟
append_to_results_tsv(commit, score, memory, idea_description)
# 閉環決策:指標進步則保留,退步則回滾
if score < best_score:
keep_commit()
else:
git_reset_to_previous_best()
# 永久循環,永不自主停止Agent Harness 控制系統映射
從經典控制系統工程(Control Systems Engineering)與強化學習的視角拆解,Karpathy 的設計構建了一套完備的閉環回饋架構:
軟體工程與 AI 組件
LLM(Claude / Codex)program.mdtrain.pyprepare.pyval_bpb(Validation loss)Git Commit / Resetresults.tsvrun.log+grep
控制系統對應語義
Controller / Reasoner(控制器/推理機)
Control Policy(控制策略)
Plant / Mutable Env(受控對象/可變環境)
Ground Truth Verifier(客觀驗證器)
Reward Function(獎勵回饋函數)
State Checkpoint & Rollback(狀態存檔與回滾)
Persistent Memory(持久化記憶)
Observation Stream & Filter(觀測流與壓縮)
上下文工程(Context Engineering)與日誌過濾
在長時間運行的 Agent 系統中,Context Window 溢出與雜訊干擾是造成 Agent 幻覺和退化的首要原因。Karpathy 在 program.md 中實踐了極具啟發性的上下文工程。
系統執行命令為:
uv run train.py > run.log 2>&1關鍵規則:絕對不使用 tee 命令,禁止將完整的終端輸出直接刷入 Agent 的上下文。
資訊流壓縮機制:
當實驗成功完成時,Harness 僅透過 grep 抓取核心指標餵回 Agent:
grep "^val_bpb:\|^peak_vram_mb:" run.log僅在程式發生崩潰(Crash)時,才透過 tail 提取最後 50 行追蹤堆疊:
tail -n 50 run.log環境產生 50,000 Tokens 完整日誌
↓
Harness 進行精準觀測壓縮(Grep Filter)
↓
Agent 僅接收 20 Tokens 核心結果
↓
專注於下一輪假設推理(No Context Pollution)上下文工程的核心不是強求模型「記住更多無效細節」,而是由外部 Harness 精準過濾雜訊,確保模型注意力集中於關鍵決策。
雙層迴圈架構:Inner Loop vs Outer Loop
當前如 Claude Code 與 OpenAI Codex 這類 Coding Agent 本身已內建一層工具調用迴圈(Inner Agent Loop):
Inner Agent Loop(模型內部)
LLM 進行推理
↓
呼叫 Tool (Edit / Bash / Read)
↓
讀取 Tool 執行回傳
↓
再次思考推理
↓
呼叫下一個 Tool
↺ (直至單一任務完成)Outer Harness Loop(外部框架)
OUTER HARNESS LOOP
┌────────────────────────────────┐
│ 1. Propose Experiment (假設) │
│ ↓ │
│ 2. INNER AGENT LOOP (產出代碼) │
│ ↓ │
│ 3. Run Verifier (獨立評測) │
│ ↓ │
│ 4. Compare Metric (指標比對) │
│ ↓ │
│ 5. Keep Commit / Git Reset │
│ ↓ │
│ 6. Next Iteration ─────────────┘4 Claude + 4 Codex 實驗與反思
2026 年 2 月底,Karpathy 公開分享了他建立的多 Agent 自主研究組織實驗。他配置了 4 個 Claude 與 4 個 Codex 分別掛載於獨立 GPU 上,並測試了兩種不同的組織拓撲:
拓撲 A:8 個獨立研究員(Independent Researchers)
8 個 Agent 各自擁有獨立的 GPU 與 Git 分支,各自提出假設並並行驗證。
拓撲 B:首席科學家 + 初階研究員階層
1 位 Chief Scientist Agent 負責制定全局研究方向與分解任務,指派給多位 Junior Researcher Agents 執行。
在此實驗中,每個研究項目對應一個 Git Branch,Agent 透過 Git worktree 實現檔案系統隔離,透過純文字檔案進行通訊,並在 tmux grid 中集中監控各 session。Karpathy 刻意未引入 Docker 或 VM。
這證明了 Multi-Agent 並非「1 個不夠聰明就放 8 個(8 倍聰明)」。當 Agent 數量增加時,系統真正的瓶頸轉移至實驗設計、評估驗證、協調通訊、記憶管理與資源分配——也就是 Harness 本身。
Programming an Organization 與 Org Code
在多 Agent 實驗後,Karpathy 提出了一個極具前瞻性的概念:工程師未來的工作本質是**「Programming an Organization(為組織編程)」**。
未來的軟體源碼將不再僅由 .py、.ts 或 .go 組成,而是包含組織運行的全套規則:
Org Code 的範疇:
**Prompts & Roles:**各角色的思考邊界與責任範圍。
**Skills & Tools:**工具集與環境操作授權。
**Processes & Evaluation:**評測標準與驗收硬性指標。
**Communication Protocol & Handoff:**Agent 間的交接規格。
**Daily Standup:**將人類管理制度轉化為可執行的排程程式。
**Git Rules & Resource Allocation:**版本分支策略與 GPU/算力資源分配。
Codex 早退問題與 Supervisor Watchdog 迴圈
在 2026 年 3 月 8 日,Karpathy 於 autoresearch 倉庫提出了 Issue #57:他發現 Codex CLI 在執行數輪後會忽略 NEVER STOP 指令而自行退出,相比之下 Claude Code 對持續無限迴圈的支援較為穩定。
為了解決 Agent Runtime 自行退出的問題,社群提出的標準解決方案是在最外層封裝一個 Supervisor Watchdog Loop:
while true; do
codex exec "Read program.md and run the next experiment"
sleep 1
done三層穩健 Harness 架構:
Supervisor / Watchdog Loop (最外層:崩潰重啟與監控)
│
▼
Claude Code / Codex Session (中層:Inner Agent Loop 工具調用)
│
▼
Deterministic Verifier & Git State (底層:客觀驗證與狀態回滾)軟體工程實踐範式(General Software Engineering)
若將 Karpathy 的 autoresearch 設計模式推廣至日常軟體工程開發,標準專案架構與驗證機制如下:
my-project/
├── program.md # Agent 的作業系統與運行策略
├── src/ # Agent 可自由修改的可變代碼區
├── eval/ # 嚴格禁止 Agent 修改的驗證器
│ ├── unit-tests/
│ ├── integration/
│ ├── playwright/ # E2E 瀏覽器驗證
│ ├── benchmark/ # 效能基準
│ └── score.py # 評分腳本
├── state/ # 狀態記錄
│ ├── results.jsonl
│ ├── current-goal.md
│ └── best-commit.txt
├── logs/ # 完整日誌存檔
└── harness.sh # 驅動腳本為什麼初期不需盲目套用複雜框架
許多團隊在嘗試建立 Agent 系統時,一開始便引入 LangGraph、CrewAI、Temporal、Redis、Vector DB、Kafka 與 Kubernetes,然而最終往往陷入「框架複雜度極高,卻無法穩定產出」的困境。
關於網路流傳 LOOPS.md 的事實查核
近期社群流傳一份名為 LOOPS.md: Field Notes on Agents That Run for Days 的文件,並廣泛被標註為 Andrej Karpathy 的私人開發規範。
當前唯一具備 100% 權威性、由 Karpathy 本人編寫並開源的實作基準,依然是 karpathy/autoresearch 及其中的 program.md。
控制系統哲學與延伸資源
Karpathy 的 Loop / Harness 實作展示了 AI 軟體工程的根本性典範轉移:工程師的核心職責不再是教導模型如何寫代碼,而是為模型設計一個具備自我修正、能夠朝全域最佳解自動收斂的封閉環境。
「把 Prompt 從任務層級的指令,提升為系統層級的控制策略;再由確定性的回饋迴圈接管日常演化。」
權威參考資料與原始代碼鏈接
Tenten Skills Atlas · 繁體中文技術解析報告 · 資料來源:s4.tenten.co