研究報告

Tenten Research Report · 2026 技術專題

Andrej Karpathy 的 Loop / Agent Harness 到底是怎麼實作的?

深度拆解 Andrej Karpathy 的 autoresearch、program.md 自然語言狀態機、4 Claude + 4 Codex 實驗、Immutable Verifier、Context Engineering 與 Org Code 閉環架構。

從「不要再直接 prompt coding agents」到自律運行的自主研究組織:完整拆解 Karpathy 的 autoresearch、program.md 自然語言狀態機、不可篡改驗證器(Immutable Verifier)、上下文工程與 Org Code 閉環架構。

karpathy/autoresearch
星標
—
分支
—
授權
—
資料截至
—
閱讀時間
11 分
更新日期
開啟原始報告
語言
繁體中文
技術領域
Coding Agents / Harness Engineering
核心專案
karpathy/autoresearch
資料來源
s4.tenten.co

01章節

來源溯源與核心概念

報告目錄導覽

近年在 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」實驗。

02章節

範式轉移:從單輪對話到 Outer Loop

傳統使用 Coding Agent 的模式是「人類提出需求 → Agent 輸出代碼 → 人類人工審查 → 人類再次提示」。這種模式將人類置於每一個決策迴圈的中心,形成了嚴重的輸送量瓶頸。

傳統 Prompting 工作流(Human in the loop)

text
Human
  ↓ (Prompt)
Agent
  ↓ (Code)
Human Review
  ↓ (再 Prompt)
Agent
  ↓ (Code)

人類必須不斷監看輸出並給出下一步指令,Agent 缺乏自我修正的客觀邊界。

Karpathy 的 Harness 閉環架構(Outer Loop)

text
        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)」。

03章節

完整工具鏈與組件分工

在 karpathy/autoresearch 專案中,Karpathy 刻意使用極為精簡、標準的 UNIX 工具鏈,而非依賴龐大的外包第三方庫:

核心組件技術實現在 Harness 系統中的職責與角色
Agent RuntimeClaude Code / OpenAI Codex可替換的推理與執行引擎(Execution Engine),負責閱讀指令並修改代碼。
Control Policyprogram.md核心營運程序(Standard Operating Procedure),定義目標、約束與無限迴圈策略。
Mutable Surfacetrain.pyAgent 唯一主要允許修改的檔案。模型架構、優化器、超參數皆在此調整。
Immutable Verifierprepare.py不可篡改的驗證器(Ground Truth)。嚴格禁止 Agent 修改,防止其「修改考卷讓自己考滿分」。
State & RollbackGit (branch/commit/reset)作為狀態機與檢查點機制。驗證通過保留 Commit,驗證失敗直接 git reset。
Persistent Memoryresults.tsv + run.log長期狀態持久化至磁碟,避免大量歷史數據淹沒 LLM 的 Context Window。
Hardware & EnvNVIDIA H100 GPU + uv + Python單卡自包含運行環境。每次實驗固定約 5 分鐘,每小時約可執行 12 次實驗迭代。
Isolation & Multi-AgentGit worktree + tmux多 Agent 場景下的檔案系統隔離與可視化監控,刻意不引入 Docker/VM 容器開銷。

04章節

program.md 狀態機解析

program.md 是整套系統的靈魂。它本質上是一個使用自然語言編寫的確定性狀態機(Natural Language State Machine)。

其核心運行邏輯可被精確抽象為以下虛擬代碼:

python
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()
    
    # 永久循環,永不自主停止

05章節

Agent Harness 控制系統映射

從經典控制系統工程(Control Systems Engineering)與強化學習的視角拆解,Karpathy 的設計構建了一套完備的閉環回饋架構:

軟體工程與 AI 組件

  • LLM(Claude / Codex)

  • program.md

  • train.py

  • prepare.py

  • val_bpb(Validation loss)

  • Git Commit / Reset

  • results.tsv

  • run.log + grep

控制系統對應語義

  • Controller / Reasoner(控制器/推理機)

  • Control Policy(控制策略)

  • Plant / Mutable Env(受控對象/可變環境)

  • Ground Truth Verifier(客觀驗證器)

  • Reward Function(獎勵回饋函數)

  • State Checkpoint & Rollback(狀態存檔與回滾)

  • Persistent Memory(持久化記憶)

  • Observation Stream & Filter(觀測流與壓縮)

06章節

上下文工程(Context Engineering)與日誌過濾

在長時間運行的 Agent 系統中,Context Window 溢出與雜訊干擾是造成 Agent 幻覺和退化的首要原因。Karpathy 在 program.md 中實踐了極具啟發性的上下文工程。

系統執行命令為:

bash
uv run train.py > run.log 2>&1

關鍵規則:絕對不使用 tee 命令,禁止將完整的終端輸出直接刷入 Agent 的上下文。

資訊流壓縮機制:

當實驗成功完成時,Harness 僅透過 grep 抓取核心指標餵回 Agent:

bash
grep "^val_bpb:\|^peak_vram_mb:" run.log

僅在程式發生崩潰(Crash)時,才透過 tail 提取最後 50 行追蹤堆疊:

bash
tail -n 50 run.log
text
環境產生 50,000 Tokens 完整日誌
              ↓
Harness 進行精準觀測壓縮(Grep Filter)
              ↓
Agent 僅接收 20 Tokens 核心結果
              ↓
專注於下一輪假設推理(No Context Pollution)

上下文工程的核心不是強求模型「記住更多無效細節」,而是由外部 Harness 精準過濾雜訊,確保模型注意力集中於關鍵決策。

07章節

雙層迴圈架構:Inner Loop vs Outer Loop

當前如 Claude Code 與 OpenAI Codex 這類 Coding Agent 本身已內建一層工具調用迴圈(Inner Agent Loop):

Inner Agent Loop(模型內部)

text
LLM 進行推理
   ↓
呼叫 Tool (Edit / Bash / Read)
   ↓
讀取 Tool 執行回傳
   ↓
再次思考推理
   ↓
呼叫下一個 Tool
   ↺ (直至單一任務完成)

Outer Harness Loop(外部框架)

text
        OUTER HARNESS LOOP
┌────────────────────────────────┐
│ 1. Propose Experiment (假設)    │
│       ↓                        │
│ 2. INNER AGENT LOOP (產出代碼) │
│       ↓                        │
│ 3. Run Verifier (獨立評測)      │
│       ↓                        │
│ 4. Compare Metric (指標比對)   │
│       ↓                        │
│ 5. Keep Commit / Git Reset     │
│       ↓                        │
│ 6. Next Iteration ─────────────┘

08章節

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 本身。

09章節

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/算力資源分配。

10章節

Codex 早退問題與 Supervisor Watchdog 迴圈

在 2026 年 3 月 8 日,Karpathy 於 autoresearch 倉庫提出了 Issue #57:他發現 Codex CLI 在執行數輪後會忽略 NEVER STOP 指令而自行退出,相比之下 Claude Code 對持續無限迴圈的支援較為穩定。

為了解決 Agent Runtime 自行退出的問題,社群提出的標準解決方案是在最外層封裝一個 Supervisor Watchdog Loop:

bash
while true; do
  codex exec "Read program.md and run the next experiment"
  sleep 1
done

三層穩健 Harness 架構:

text
Supervisor / Watchdog Loop (最外層:崩潰重啟與監控)
        │
        ▼
Claude Code / Codex Session (中層:Inner Agent Loop 工具調用)
        │
        ▼
Deterministic Verifier & Git State (底層:客觀驗證與狀態回滾)

11章節

軟體工程實踐範式(General Software Engineering)

若將 Karpathy 的 autoresearch 設計模式推廣至日常軟體工程開發,標準專案架構與驗證機制如下:

text
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          # 驅動腳本

12章節

為什麼初期不需盲目套用複雜框架

許多團隊在嘗試建立 Agent 系統時,一開始便引入 LangGraph、CrewAI、Temporal、Redis、Vector DB、Kafka 與 Kubernetes,然而最終往往陷入「框架複雜度極高,卻無法穩定產出」的困境。

13章節

關於網路流傳 LOOPS.md 的事實查核

近期社群流傳一份名為 LOOPS.md: Field Notes on Agents That Run for Days 的文件,並廣泛被標註為 Andrej Karpathy 的私人開發規範。

當前唯一具備 100% 權威性、由 Karpathy 本人編寫並開源的實作基準,依然是 karpathy/autoresearch 及其中的 program.md。

14章節

控制系統哲學與延伸資源

Karpathy 的 Loop / Harness 實作展示了 AI 軟體工程的根本性典範轉移:工程師的核心職責不再是教導模型如何寫代碼,而是為模型設計一個具備自我修正、能夠朝全域最佳解自動收斂的封閉環境。

「把 Prompt 從任務層級的指令,提升為系統層級的控制策略;再由確定性的回饋迴圈接管日常演化。」

— Agent Harness Engineering 核心思想

權威參考資料與原始代碼鏈接

Tenten Skills Atlas · 繁體中文技術解析報告 · 資料來源:s4.tenten.co

參考資料