用 Autoresearch 原理建立可以自我進化嘅 Claude Code Skills

🕐 約 10 分鐘


🎯 問題同靈感來源

  • 手動改 skill 嘅痛點:每次跑 skill 發現問題就要打開 skill.md 手動改,重複、緩慢、唔一致,由 v1 去到可靠版本通常要幾個星期
  • Karpathy 嘅 Auto Research 概念:Andrej Karpathy(OpenAI 創始成員、前 Tesla AI 主管)分享嘅思路 — 畀 AI 一個改善目標 + 一個清晰量化指標,讓佢自動 loop
  • Loop 邏輯:嘗試改動 → 跑測試 → 分數好就保留(git commit)→ 分數差就 rollback(git reset)→ 繼續
  • 最重要一句話:「Never stop — 就算你瞓覺都要繼續跑,唔好問我係咪繼續」

🗂️ Karpathy 原版框架拆解

  • program.md:指令文件,告訴 Agent 做咩、點樣衡量成功
  • 固定數據檔案:記錄所有實驗結果,唔會被 Agent 亂改
  • Training script(train.py:Agent 實際去修改嘅檔案,每次 iteration 改呢個
  • 核心邏輯:整個 loop 約 10 行代碼,改 → 跑 → 睇 val 值 → 好就 advance branch,差就 reset

🔁 第一層優化:Skill 觸發率(已內置,唔使自己建)

  • 觸發率問題:YAML description 模糊時,Claude 決定係咪激活 skill 嘅準確率低至 20%
  • 內置解決方案:Anthropic Skill Creator 已有自動改善觸發率嘅 loop,唔使自己重新發明
  • 運作方式:跑測試 queries → 檢查觸發準確率 → 用 improved_description.py 提議更好 description → 重新測試 → 循環
  • 結論:呢層完全唔洗自己建,直接用 Skill Creator 就得

📊 第二層優化:輸出質量(需要自己建)

  • 舊做法(上一條影片):用「persuasion toolkit」測試文案,有 click-through dashboard 睇定性 feedback
  • 舊做法嘅死穴:每次仍需人手睇結果同判斷,唔係自我改善嘅系統
  • 今次目標:將呢個 loop 改成自主跑,Karpathy 風格,overnight 無需人手介入

⚙️ 自建 Autonomous Loop 嘅原理

  • 同 Karpathy 嘅分別:改嘅係 skill.md(skill 指令文件)而唔係 train.py,其餘邏輯完全一樣
  • Loop 步驟:讀 skill.md → 改一個值 → 跑測試 → 睇 pass rate → 好就 git commit,差就 git reset → 重複
  • Binary Assertions(二元斷言)係關鍵:所有測試指標必須係 True/False,唔可以係主觀判斷
  • Binary 例子:「唔含 em-dash」、「字數少於 300」、「最後一句唔係問句」、「含至少一個具體數字或統計」
  • 唔係 Binary 嘅例子:「subject line 係咪吸引?」→ 兩個人可以有不同答案,無法完全自動化
  • 為何 binary 咁重要:冇咗人為主觀判斷,loop 先可以真正 overnight 自主跑

🛠️ 實際 Setup 示範(Marketing Copywriting Skill)

  • 目錄結構:喺 skill 資料夾建立 eval/ 子目錄,入面放 evals.json
  • evals.json 內容:25 個 binary assertions,跨 5 個唔同測試 prompts
  • Assertion 例子:「第一行係獨立句子」、「唔以問句結尾」、「字數少於 300」、「含至少一個具體數字」
  • 自動生成方法:唔使手寫,直接喺 Claude Code 打:

    「請根據我嘅 skill.md 幫我生成 evals.json,每個 assertion 必須係 True/False 可驗證嘅,唔可以係主觀判斷」

  • Loop 指令精髓

    「用 evals.json 跑 self-improvement loop。有 assertion fail 就改 skill.md 一個地方,改完重跑;分數升就 commit,分數跌就 reset 再試新方向。唔好停、唔好問我,直到完美分數或我手動停止你」


🎬 Live 示範結果

  • 背景:呢個 Marketing Copywriting skill 已係第五個版本,之前已經過多次人手迭代
  • 第一次跑:23/24(95.8%)— 一個 assertion 失敗
  • 失敗原因詳情:「唔以問句結尾」呢條規則存在於兩個地方但內容有衝突 — tone_of_voice.md(reference 檔案)有寫,但 skill.md(主指令檔案)冇寫,skill 執行時跟 skill.md 為準所以規則被忽略
  • 系統自動修復:識別衝突 → 自動喺 skill.md 加規則:「LinkedIn post must not end with a question — close with declarative statement, CTA, or punchy fragment」
  • 第二次跑:24/24(100%)✅
  • 重要提醒:呢個只係需要兩次 loop 嘅例子。如果係全新 skill,可能需要幾十次 loop 先達到完美分數

⚠️ 限制同架構總結

Binary Loop(Layer 2)Qualitative Dashboard
擅長格式、字數、禁用詞、結構規則語氣、創意質量、context 引用準確性
唔適合主觀判斷、創意評估大量自動化、overnight 跑
需要人手?唔需要需要

完整兩層架構:

  • Layer 1:Skill Creator 內置 loop → 改善觸發率(描述準唔準)
  • Layer 2:自建 Karpathy loop → 改善輸出質量(結果好唔好)

最終建議:唔好將 skills 當獨立工具用。Skills 之間共享 brand context、互相傳遞 output,先係真正嘅 AI Operating System。