反饋循環(AI Coding)

讓 AI 助手能驗證自己的工作成果——執行自己寫的 code、跑測試、看錯誤訊息。Boris Cherny 列為 13 條心法中最重要的一條

“Probably the most important thing to get great results out of Claude Code — give Claude a way to verify its work. If Claude has that feedback loop, it will 2-3x the quality of the final result.”

繁中:「想從 Claude Code 取得好結果,最重要的事情可能就是——給 Claude 一個驗證自己工作的方式。如果 Claude 有這個反饋循環,最終結果的品質會提升 2 到 3 倍。」

Boris 的另一句更白話的版本:

“You wouldn’t ask an engineer to make a website without a browser.”

繁中:「你不會叫一個工程師在沒有瀏覽器的情況下做網站。」

核心理念

無論工具多強大,沒有驗證機制就無法確保輸出正確。LLM 是個會幻覺的引擎,唯一能讓它自我修正的方式是「讓它看見自己工作的結果」。

人類開發者本來就是這樣工作的:寫 → 執行 → 看錯誤 → 修正 → 再執行。把這個循環給 Claude,它就從「一次性產出工具」升級為「能自我修正的協作者」。

完整閉環

寫程式碼 ─▶ 執行測試 ─▶ 發現問題 ─▶ 修復 ─▶ 再測試
   ↑                                              │
   └──────────────────────────────────────────────┘

實踐方式

要建立反饋循環,至少要給 Claude 三件能力:

能力在 Claude Code在 Cowork
執行 code終端機 + bash沙箱 Linux
跑測試npm test / pytest同上
讀錯誤自動讀 stderr / log同上

更進階的反饋來源:

  • CI 結果 — Headless mode 跑完後讀 log
  • Linter 輸出Hooks PostToolUse 自動跑 lint
  • 型別檢查 — TypeScript / mypy 把訊息回灌
  • 整合測試 — 用 Connectors 連到 Sentry 看 production error
  • 瀏覽器 — 前端用 Claude Chrome Extension,Claude 能開瀏覽器、看 UI、自己發現問題
  • Computer Use — 桌面 App 用 Computer Use,Claude 像人一樣操作
  • Docker logs — 分散式系統用 docker logs 排錯

Boris 團隊的兩個專用驗證 Sub-agent

Anthropic 內部的 .claude/agents/ 目錄有完整一套:

Subagent角色
verify-app端到端測試 — 詳細的 E2E 步驟
code-simplifier實作後自動清理(後來變成 /simplify 的前身)
code-architect架構審查
build-validator確認 build 過
oncall-guideoncall 應對協助

→ 這些是 Sub-agent任務型 subagent,不是「資深架構師」這種角色型——直接對應一個明確的 verification 動作。

Boris 的硬規則:沒通過驗證,不准標記任務完成。

為什麼是「最重要」

Boris Cherny 13 條心法 把這條列為 #13 最重要,理由:

  1. 品質倍增:數據顯示有反饋循環的工作流程輸出品質提升 2-3 倍
  2. 減少人工介入:Claude 自己抓自己的錯,使用者只看最終產物
  3. 可規模化:沒有反饋循環的話,並行多 agent 反而擴大錯誤;有反饋的話可以放大到 Agent Teams 規模

反饋循環 vs 一次性產出

場景沒有反饋循環有反饋循環
寫一個函式LLM 寫完就完寫完跑單元測試,看到 fail 就修
改 schema改完 commit改完跑 migration、讀 error log、回頭修
寫腳本寫完丟給人類試寫完自己 chmod +x、./script.sh、讀 stdout

反模式

「給我寫個 X」然後就走開——沒有反饋通道
--dangerously-skip-permissions 全開放——失敗時 LLM 看不到具體 error
CI 只跑不讀——log 沒回灌就等於沒跑

相關概念

強連結(原文明確提及)

推斷連結(LLM 認為相關,待確認)

深入閱讀(外部資源)

← 回到 wiki