834 字
4 分鐘
AI Agent 調校筆記:從「說說而已」到「真的有做」

最近讓一個 AI coding agent 獨自跑開發任務,模型用 GPT-5.3-Codex,開發方式採 Spectra 的 SDD(Specification-Driven Development)流程。Spectra 的概念是把需求規格結構化,讓 AI agent 跨 session 也能保持上下文,理論上這樣 agent 不會因為 context 斷掉就忘記在幹嘛。

設定上讓 agent 自己寫 cron job 定期檢查有什麼 task 沒做完,然後自動繼續。理論很美好,但實際上完全不是這樣——agent 一直「說說」而已,根本沒有真的執行。

去問進度,它回報得頭頭是道,然後沒有然後了。一小時後再問,一樣的回覆,task 一個都沒被清掉。更煩的是它不是每次都這樣,有時候狀態好、執行得很順,有時候就一直鬼打牆,完全沒有規律可言。網路上看到別人說讓 AI 跑一整晚自動完成開發,不知道到底是怎麼辦到的。

這篇是我與另一個 AI 討論、調整 agent 設定之後的記錄。不保證有效,純個人備忘。


問題一:執行約束不夠硬#

原本的進度迴圈每輪只讀 task 清單、算剩餘數量,然後回報 total=N, next=xxx。這種設計只能知道「還有多少」,不能保證真的有清 task。Agent 說「下一個要做 xxx」,但說完就停了,下一輪又說一次一樣的話。

更根本的問題是「有效進度」根本沒定義清楚。沒有交付約束的狀態下,查狀態、整理思路、回覆訊息、承諾下一步,這些行為 agent 都可以自己當成進度。

所以同時做了兩件事:一是把 loop 的規則改死,每輪必須至少完成 1 個最小未完成 task,固定走完這個流程才算一輪——找 task、實作、最小驗證、更新清單、commit、補 memory note。二是在主規則檔補幾條硬性限制:

  • 只有 commit hash、build/test 結果、task 數量下降才算有效進度
  • 沒有新證據,不要回報進度
  • 30 分鐘內沒有新 commit 或 task 沒下降,視為失敗節奏
  • 被要求「做到結束」時,進入靜默執行模式,不要一直插嘴

回報格式也鎖死成:

hash: abc1234
build: ✅
tasks_done: task 3.1
files: module.ts, tasks.md
blocker: none

hash: nonetasks_done: none 就是本輪沒有交付,不算。另外為了防止這個改法慢慢退化回去,加了一個 watchdog job 定期抽查最近的 loop 樣本,只要又出現「回報了但沒產出」的模式就告警。


問題二:啟動雜訊掩蓋真正的錯誤#

Agent 的啟動規則會讀幾個固定檔案,但那些檔案根本不存在,每次啟動就噴一堆 ENOENT。這本身不是功能壞掉,但雜訊多了之後,真正有意義的錯誤會被淹沒——agent 到底是因為規則設定有問題才不動,還是單純啟動就爆了,很難分辨。直接補上 stub 版本把這些 ENOENT 壓掉,讓真正的問題比較好浮出來。


結果#

調整之後,agent 從「說好要做、回完就停」變成真的會清 task、回報裡會有 commit hash 和 build 結果。不保證這套在別的 agent 上有效,架構不同、問題根源也不同,這只是我這邊的狀況。

AI Agent 調校筆記:從「說說而已」到「真的有做」
https://laplusda.com/posts/ai-agent-tuning-execution-loop/
作者
Zero
發佈於
2026-03-20
許可協議
CC BY-NC-SA 4.0
這篇文章有幫助嗎?

回報錯字、失效連結,或告訴我你想看的延伸主題。