TL;DR: AI 代理失控通常不是模型的問題,而是缺少足夠的結構。這篇整理了我們在實踐中觀察到的幾個痛點,以及 Agentic OS 試著用哪些方向來應對——不保證這是最好的做法,AI 工具本身也還在快速演化。
如果你已經在用 Claude Code、Cursor 或 Copilot 一段時間,你大概知道那種感覺:有時候它快得讓你懷疑自己為什麼還要打字,但有時候你盯著它的輸出,心裡只有一個念頭——「等等,它在幹嘛?」
印象更深的往往是後者。我發現有幾類問題會反覆出現,跟你用哪個模型或哪個工具關係不大,比較像是讓 AI 代理參與真實開發這件事本身帶來的結構性挑戰。
如果你讀過從「下指令」到「蓋系統」,這篇可以看成那個思路的延伸——當你開始用 agent 做真實開發,「結構不夠」這件事的代價變得具體很多。
Agentic OS 是站在很多公開工作的肩膀上做出來的。AGENTS.md 這個慣例最初來自 OpenAI Codex 的設計,後來被 Cursor、GitHub Copilot 等主流 AI 工具廣泛採納;Anthropic 有自己的 CLAUDE.md;Cursor 有 .cursor/rules——各自代表不同工具對「怎麼讓 AI 記住專案規則」這個問題的嘗試。我們參考了這些設計,加上 Hacker News、Reddit 社群裡的實測討論,還有 Pete Hodgson、Addy Osmani、Thorsten Ball 等工程師整理的失效模式分析,試著把它們整合成一套對我們自己有用的東西。
幾個反覆出現的痛點
以下整理自我們自己踩過的坑,也有部分來自社群的集體觀察。算是實踐者的筆記。
輸出難以核查
AI 完成任務後,你拿到的往往是一段文字說「已完成」或「功能已實作」。問題是「完成」的依據是什麼?在單一短對話裡這不是大問題,但一旦任務橫跨多個 session,或者事後需要追溯某個決策的來源,你往往什麼都找不到——沒有 commit SHA、沒有測試輸出、沒有可以指著說「它在這裡」的東西。只有對話紀錄,而對話紀錄不算數。
這個問題後來直接影響了我們的框架設計。Agentic OS 裡有一條規則:就算是「重讀同一份文件」這個動作,也必須留下一筆收據。聽起來很囉嗦,但沒有這個,「我讀過了」和「我沒讀過」在紀錄裡是完全一樣的。
跳過中間步驟
給 AI 一個任務,它的自然傾向是直接往結果走。這在小任務上沒問題。但任務稍微複雜一點——比如需要同時異動前端、後端和資料庫——省掉的「先確認範圍」、「列出影響的模組」這些步驟,往往要在後面以更大的代價補回來。工程師 Pete Hodgson 在他的文章裡提到,當一個問題有很多不同的解法時,AI 選到你心目中那個的機率趨近於零——提前對齊方向,跟模型能力無關,是流程問題。
跨對話的連貫性
在那篇談 Prompt 局限的文章裡,我說過 AI「只活在那一次的對話框裡」。這個限制在用 agent 做持續開發的時候感受更強烈。每次開新對話,你得重新交代背景:這個專案的架構決策是什麼、上次決定用哪種設計模式、之前踩過什麼坑。這件事本身就很麻煩,也會讓同樣的問題被重新發現、同樣的決策被重新討論。(IEEE Spectrum 有一篇報導講的是另一種退化:新一代模型比較少寫出會當掉的 code,比較常寫出看起來跑得過、結果卻是錯的 code。跟這裡講的失憶不是同一件事,但都屬於「錯得很安靜」。)至於長 session 後期重複造輪子、忘掉早先講好的 convention,我沒找到可靠的量測數據,這是我自己的觀察。
資源使用的不確定性
AI 代理讀文件、呼叫工具、產生輸出,這些都有成本,而且差距可以很大。我們在 Agentic OS v1.1 的 benchmark 裡(2026 年 4 月量測)跑了幾個真實場景:quick-win 等級任務(例如修一個 CSV 格式問題)實際消耗約 17,041 token;涵蓋 API、認證、資料庫的複雜功能開發則約 51,000 token,相差接近三倍。這些數字來自特定的任務類型與工具組合——我們用的估算公式是 chars / 4,接近多數 OpenAI tokenizer,但不完全一致——不同模型、context 策略下的結果可能差距顯著。
更複雜的是,這個計算現在又多了一層變數。主流模型——包括 Claude 和 OpenAI 的系列——已經有 prompt cache 機制,在某些條件下可以大幅降低重讀相同 context 的成本。這讓我們原本關於「怎麼控制 context 讀取策略」的很多設計假設需要重新檢視。我們還在觀察這個演變,舊的建議不一定還適用。
範圍的模糊
這類問題比較難描述,因為它不一定會報錯——它只是靜靜地做了你沒有要求它做的事。安全研究員 Johann Rehberger(筆名 Embrace the Red)花 $500 測試了 Devin AI 的 prompt injection 抵抗力,並於 2025 年 4 月將結果通報給 Devin 的開發商 Cognition。他在一個 GitHub issue 裡埋了惡意指令,Devin 讀進去之後就照著走——連上攻擊者的網站、把下載來的東西在自己環境裡跑起來,甚至裝上 C2 工具。他的報告是一次完整的案例示範,沒有給出量化的整體成功率。這是極端的例子,但「AI 自己決定任務邊界」這件事的普通版本,每天都在發生——它只是偷偷多改了一個 config 檔,或者順手重構了你沒說要動的模組。
我們試著做的事
Agentic OS 的出發點,是試著在這些問題上加一些結構。主要思路有幾個方向:
我們把核心原則叫做 “No Evidence = No Completion”——這概念借自軟體工程裡的 CI/CD gate,只是把它搬到了 AI 代理的工作流程裡。每個任務的交付都要附帶某種形式的 evidence,不一定很複雜,但要有東西可以查。同時,根據任務的規模,要走的流程也不一樣:單行改動走輕量路徑;功能開發走比較完整的流程,包含計劃、實作、審查幾個階段。這個分層設計部分參考了 Anthropic 和 Cursor 社群分享的做法,調整成對我們自己比較實用的版本。
用 Work Log 保持連貫性。 每個任務有一份對應的工作記錄,記關鍵決策和目前狀態,讓下一個 session 能直接接續。這是個很笨的方法(基本上就是強迫 AI 寫日記),但在我們找到更好的方式之前,它目前還算有用。
至於資源分配,我們試著把不同分類的任務對應到不同的 skill 載入策略,不一次讀所有東西。
一些誠實的話
這套框架有用,但不是沒有問題——有些設計現在回頭看也不一定是最好的決定,只是當時看起來合理。Addy Osmani 把這個現象稱為「70% 問題」:AI 能很快帶你到 70% 的完成度,但剩下的 30% 往往需要更多工程判斷力,不是更少。設計一套治理框架也一樣——結構能幫你避開很多坑,但它改變不了你還是需要做設計決策這件事。
AI 工具的演進速度,讓任何固化的解法都有保鮮期的問題。有些我們在設計時試圖解決的問題,現在模型本身可能已經部分處理了;反過來,也有我們沒預想到的新狀況冒出來。我們把 Agentic OS 定位為一個持續演進的實驗。這個系列會把框架的各個機制拆開來談。如果你也在摸索怎麼讓 AI 代理在實際開發工作裡更可控、更可追溯,希望有些地方能對你有參考價值。
下一篇:只用 Prompt 和技能也能做好治理:實用技巧與範例
Agentic OS 是開源專案,歡迎看看我們怎麼實作,也歡迎指出你覺得不對的地方:github.com/KbWen/agentic-os
延伸閱讀
- Work Log:跨 session 的記憶機制 — 解決「下一個 session 還記得我們做到哪」的笨方法
- Skill 邊界設計:從能力到合約 — Skill 亂跑的時候,問題通常不在能力,在邊界
- Token 成本的真相:分級,但別分太細 — 治理會花錢,但比起失控的成本還是便宜很多


