~/VibeHandbook
免費 PDF

07 · 12

護具工程(Harness Engineering)

習慣是你必須記得去做的事。在搭建工作空間時,下一個臺階是把這些檢查變成 AI 無法跳過的東西。那就是護具(harness)。

把護具想成一個立在智慧體與真實世界之間的安檢口。在每一個危險的步驟,它會做三件事之一:記錄發生了什麼、發出警告,或者乾脆攔截這個操作。在命令執行之前、在檔案被寫入之前、在提示被提交時、在提交(commit)時、在推送(push)時——都有一道閘門。你可能會在凌晨兩點忘了跑測試,但智慧體繞不過它。

智慧體採取的每一個危險操作都會先通過護具,每一道閘門都能在它觸及真實世界之前記錄它、警告你,或者攔截它:

   ┌─────────┐                                   ┌──────────┐
   │  代理   │                                   │   真實   │
   │  動作   │                                   │   世界   │
   └────┬────┘                                   └──────────┘
        │                                              ▲
        ▼                                              │
   ╔═════════════════ 護欄(關卡) ═════════════════╗    │
   ║                                              ║    │
   ║   ┌────────┐    ┌────────┐    ┌────────┐     ║    │
   ║   │  記錄  │    │  警告  │    │  攔截  │     ║────┘
   ║   │  日誌  │    │  告警  │    │  停止  │     ║  允許
   ║   └────────┘    └────────┘    └───┬────┘     ║
   ║                                   │          ║
   ╚═══════════════════════════════════╪══════════╝
                                       ▼
                                  ┌─────────┐
                                  │  拒絕   │
                                  └─────────┘

為什麼說它是必須的?氛圍程式設計的根本賭注是"讓 AI 全力衝刺,你來掌舵"。這隻有在你眨眼的瞬間 AI 不可能衝下懸崖時才成立。護具把安全從警惕(讀每一個 diff、記住每一條規則)轉移到程式碼(自動強制執行的規則)。對任何要擺到真實使用者面前的東西來說,這不是可有可無的打磨——它正是讓自主變得安全的那個東西。

一個好的護具遵循幾條值得了解的原則:

  • 成功時安靜,失敗時響亮 — 一切正常時它什麼都不說,所以一條警告才仍然有分量。
  • 絕不自動修復 — 它提議、攔截或警告;它不會偷偷"糾正"智慧體從而把問題藏起來。
  • 新增新規則前,先退役休眠的規則 — 保持精簡且可信,而不是變成一堆陳舊檢查的堆積。
  • 由配置驅動 — 一個引擎,按專案配置,能插入任何程式碼庫。
  • 只追加(append-only)的日誌 — 一份記錄智慧體實際做了什麼、且能識別篡改的賬本。

你不必從零造這套東西。已經有現成的、即插即用的護具——dancinlab/harness 就是一個與專案無關的引擎,可以接到編碼智慧體的工具生命週期上。說句實話:護具並不能讓 AI 變得正確,它只是讓 AI 的錯誤變得便宜可抓——當你跑得很快時,這就是這場仗的大半。

想離線閱讀?

免費下載整本書的 PDF 或 EPUB。