← 返回部落格

如何撰寫好的 program.md:AI 代理指令實踐指南

· Save Team
markdownaiprogram-mdautoresearchkarpathyguidebest-practices

Andrej Karpathy 的 autoresearch 證明了一個寫得好的 Markdown 檔案可以指導 AI 代理在一夜間做出真正的科學發現。但並非所有 program.md 檔案都是平等的。

你的 Markdown 指令品質直接決定 AI 代理輸出的品質。模糊的 program.md 產生隨機、無方向的實驗。精確的指令則產生有重點的、複合改進的結果。

以下是如何撰寫一個真正有效的 program.md

好的 program.md 結構

每個有效的 program.md 都需要五個部分,無論你是在做 ML 研究還是任何其他代理導向的工作。

1. 上下文:代理需要知道什麼?

代理從零開始,對你的專案毫無了解。你的第一項工作是給它足夠的上下文來做出明智的決策。

應包含的內容:

  • 專案做什麼
  • 程式碼庫的樣子
  • 關鍵檔案及其用途
  • 特定領域的術語
  • 當前狀態和已知問題

應跳過的內容:

  • LLM 已經知道的顯而易見的資訊
  • 它可以從程式碼中讀取的實作細節
  • 不影響當前決策的歷史

2. 目標:代理應該優化什麼?

這是最關鍵的部分。代理需要一個清晰、可測量的目標。

在 autoresearch 中,目標很簡單:減少 val_bpb(驗證每位元組位元數)。代理可以在每次 5 分鐘的訓練執行後測量這個值。

對於你自己的專案,用代理可以評估的術語定義成功:

  • 「將頁面載入時間減少到 2 秒以下」
  • 「將測試覆蓋率提高到 80% 以上」
  • 「將打包大小減少至少 15%」

「讓程式碼變得更好」這樣模糊的目標會產生模糊的結果。可測量的目標會產生有重點的改進。

3. 約束:代理永遠不應該做什麼?

約束和目標同樣重要。沒有約束,代理可能會找到你不想要的創造性解決方案——比如刪除所有測試來「改進」建構速度。

常見約束:

  • 不修改測試檔案或評估程式碼
  • 不改變公共 API
  • 不引入新相依項
  • 不超過記憶體預算
  • 保持程式碼可讀和可維護

在 autoresearch 中,關鍵約束是只能修改 train.py。資料管道、評估程式碼和測試集是鎖定的。這防止代理對指標做手腳。

4. 策略:代理應該如何處理問題?

這是你的領域專業知識發光的地方。你知道代理不知道的事情——哪些方向有前途,哪些是死胡同。

好的策略指令:

  • 「在架構改變之前先調整超參數」
  • 「專注於注意力機制——當前實作可能不夠最優」
  • 「先嘗試正則化技術:dropout、權重衰減、層歸一化」
  • 「避免將訓練時間增加超過 10% 的改變」

糟糕的策略指令:

  • 「嘗試一切」(太模糊)
  • 「將學習率改為 0.001」(太具體——你在微管理)

甜蜜點是給代理在富有成效的邊界內探索的方向性指導。

5. 評估:代理如何判斷成功?

代理需要知道如何測量其改變是否有所幫助。在 autoresearch 中,這內建於迴圈中:如果 val_bpb 改進了,就保留改變;如果沒有,就回退。

對於其他情境,定義你的評估標準:

  • 哪些指標重要?
  • 什麼閾值算作改進?
  • 代理應該如何處理模糊的結果?
  • 代理什麼時候應該停下來並回報?

常見錯誤

過於模糊

「讓模型變得更好」沒有給代理任何方向。要具體說明「更好」意味著什麼,如何衡量它,以及先嘗試哪些方法。

過於具體

「將第 47 行改為使用學習率 3e-4」違背了 agentic 工程的目的。你應該設定方向,而不是規定實作細節。讓代理去探索。

忘記約束

沒有約束,代理會找阻力最小的路徑——這往往不是你想要的。被告知「減少訓練時間」的代理可能會跳過一半的訓練資料,如果你沒有另外說明的話。

不迭代

你的第一個 program.md 不會是完美的。觀察代理的行為,看看它哪裡出錯,並更新你的指令。最好的 program.md 檔案經過數十次迭代演化而來。

迭代迴圈

撰寫 program.md 不是一次性的過程,而是一個迴圈:

  1. 撰寫初始 program.md
  2. 執行代理
  3. 審查代理所做的事情
  4. 更新指令,基於什麼有效、什麼沒有
  5. 重複

每次迭代都使你的指令更加精確。經過幾輪之後,你將擁有一個能持續產生好結果的 program.md

這是 agentic 工程的核心技能:不是寫程式碼,而是透過迭代撰寫越來越有效的代理指令。

建構你的參考庫

最好的 program.md 檔案不是憑空而來的。它們建立在對領域的深刻了解之上——文件、論文、最佳實踐和範例。

當你在網路上遇到有用的參考材料時,將其儲存為 Markdown。然後在撰寫 program.md 時,你可以引入相關上下文,引用特定技術,並給代理提供所需的背景知識。

從 autoresearch 中獲得最佳結果的研究人員不只是優秀的寫手。他們是擁有良好組織參考材料的領域專家,能夠將其綜合成清晰的代理指令。


Save 將任何網頁轉換為乾淨的 Markdown——完美適合建構驅動有效 program.md 檔案的參考庫。免費試用 Save