← 所有文章

AI 代理想要編譯

AI 代理開始編譯了。2026年年中,整個技術堆疊上下,同一種分離正從四面八方推出:模型負責決策,執行的則是模型以外的東西。代理不再於模型迴圈內即時行動,而是產出一份確定性的產物——一份計畫、一張 DAG、一段工作流程指令碼——再交給一個能像處理一般軟體那樣重播、續跑、稽核的執行環境。模型正逐漸成為編譯器的前端,把雜亂的意圖解析成中間表示法。確定性執行環境則成為後端。即時代理(live agency)正被重新定價,成為您保留給探索、新型失敗與品味的昂貴模式。 {.answer-block}

7月1日,一則 Show HN 貼文出現了,標題讀來就像一句論綱:「在執行前,將意圖編譯成確定性 DAG 的編碼代理」。這個專案叫 Rigorix,是一套 Rust 執行環境,自稱是「一套確定性的編碼代理執行環境,用於可重複、可稽核的 AI 軟體工程」,並用一句話交代它的分工:「由LLM產生程式碼,由 Rigorix 治理執行。」3 十四個讚、一則留言,很容易一滑就過去。我停在這則貼文上,是因為這已是短短數週內第三次,我看著同一種形態從不同方向推出——而真正的故事,是這個形態本身,不是任何單一工具。

TL;DR

  • Anthropic在2024年12月劃下了經典的分界線:工作流程「透過預先定義的程式碼路徑」運行,代理則「動態主導自己的流程」1。那曾是由人在設計階段所做的分叉選擇。如今它正移往執行階段,而做選擇的是模型。
  • Claude Code的動態工作流程讓模型寫出一段JavaScript調度指令碼,交由執行環境在對話之外運行:可帶著快取結果續跑、可與先前的執行相互比對差異、也可存成一道供您反覆重跑的指令2
  • 同一種形態還從另外三個方向湧現:把自然語言任務編譯成可執行 DAG 的獨立工具(Rigorix)3、拒絕運行未編譯圖的框架(LangGraph)4,以及把代理迴圈包進可重播工作流程的持久化執行基礎設施(Temporal)5
  • 編譯帶來的,一如以往:快取、增量重建、可比對差異的產物、執行前的審查。它的代價,也一如以往:判斷在編譯當下就被凍結。
  • 即時代理仍然勝出的領域是探索、新型錯誤狀態與品味。運作準則是:第一次執行是研究,之後的每一次執行都想成為一次建置(build)。

那道分叉曾在設計階段,如今正移往執行階段

這個領域的先行文獻,是Anthropic發表於2024年12月19日的〈Building Effective Agents〉,至今仍是此領域的標準分類法。文中將工作流程定義為「LLM與工具透過預先定義的程式碼路徑被調度的系統」,將代理定義為「LLM動態主導自身流程與工具使用、並掌控如何完成任務的系統」。它對如何抉擇的建議是:對於定義明確的任務,工作流程提供可預測性與一致性;而當需要在規模化下具備彈性與模型驅動的決策時,代理才是更好的選擇1

有十八個月,那句話讀起來像一份菜單。身為系統設計者,您在寫下任何一行程式碼之前,就先挑好了左欄或右欄。2026年的轉折在於:這份菜單正塌縮成一條管線。代理只在計畫階段進行一次彈性、模型驅動的推演,而這次推演的產出就是一套工作流程——為這項任務、按需生成的預先定義程式碼路徑。同一套系統,分階段地讓您在編譯階段取得代理的彈性,在執行階段取得工作流程的可預測性。

「要工作流程還是代理?」這個問題,如今得到的解答,正如編譯器當年回答「要彈性還是速度?」一樣:兩者兼得,中間隔著一份產物。

三個訊號,同一個方向

先是執行環境變得確定

代理框架層比代理更早抵達這裡。掛鉤會在生命週期事件上觸發,帶著模型無從商量的退出碼(exit code)。權限規則在工具呼叫之前、而非之後就先行評估。2026年整套代理架構的紀律,就是在一個隨機性核心外面包上一層確定性外殼;而它坦率承認的是:凡是每次都必須發生的事,我們不再去問模型,而是改在邊界上強制執行。確定性最先抵達的,是這些邊緣地帶。

接著,持久的產物勝過了對話

第二個訊號,是什麼能在一次會話之後留存下來。對話會蒸發;而檢查、規格、測試會留存,而且代理針對它們最佳化得如此用力,以致檢查變成了規格。底層的教訓是:逐字紀錄(transcript)不是產出,產物才是——因為它是下一次會話、下一個代理、下一位工程師唯一能握住的東西。一旦您在驗證這件事上接受了這一點,把它推廣到執行計畫也就只差一步。如果持久的檢查能比催生它的那場對話活得更久,那麼持久的計畫也一樣。

如今,計畫本身就是那份產物

第三個訊號是全新的,也正是本文的主旨。代理已經開始把自己的執行,當成一等(first-class)產物來產出,而不是即時演出。

Claude Code把這件事做成了一個產品層面。一個動態工作流程,就是「一段大規模調度子代理的JavaScript指令碼」:Claude為您描述的任務寫出這段指令碼,執行環境則在背景運行它,同時會話仍保持回應。文件明白寫出交接的是什麼:「工作流程把計畫搬進了程式碼。」在它自己的比較表裡,「由誰決定接下來要跑什麼」的答案不是Claude,而是那段指令碼。每一次執行都會把這段指令碼寫進一個檔案,您可以打開它、與前一次執行的指令碼比對差異、編輯,再重新啟動。中斷一次執行後再續跑,「已經完成的代理會回傳它們的快取結果,其餘的則即時運行」2

Rigorix 從獨立開發的方向打造出同一種形態,而它的架構讀起來就像一本編譯器教科書:規劃階段依序經過意圖分類、參數萃取,再到 DAG 生成;一個由範本驅動的引擎,在風險關口、預算與權限的約束下執行這張圖,並以 HMAC 簽章的稽核封包留下軌跡。它對這份回報的定義相當精確:「可重複,意味著在相同的範本與政策下,相同的意圖會產生相同的執行結構。」3

這些框架其實早就在那裡,只是把同一個想法藏在一個API動詞裡。LangGraph 把代理邏輯建模成由邊(edge)串連的節點(「用來編碼您代理邏輯的函式」),而它的文件用粗體寫出了這項要求:「您必須先編譯圖,才能使用它。」搭配檢查點器(checkpointer)編譯,「LangGraph 會在超步(super-step)邊界儲存檢查點」,這正是讓一次做到一半的執行能夠續跑的關鍵4

而基礎設施層則由下而上抵達。持久化執行平台 Temporal,把代理的推理迴圈包進工作流程,讓其進度在任何行程(process)之外持續留存:「Temporal 會追蹤應用程式的進度,並儲存所有 Activity 的結果」,因此崩潰的代理會「從中斷的地方接著往下走」,而不必從零重新推理。它與 OpenAI Agents SDK 的整合於2025年7月30日發布,讓這種包裝成為一條受支援的途徑,而不是您得自己手工拼湊的模式5

獨立工具、產品層面、框架、基礎設施。四個方向,同一種形態:模型決策,產物執行。

認真看待這個編譯器類比

AI 寫作中的類比通常只是裝飾。但這一個是承重結構,因為種種預測都是從它推導出來的。

編譯器前端會解析原始碼、檢查語意,並產出一份中間表示法。這正是這些系統所執行的規劃階段:Rigorix 的意圖分類就是解析,參數萃取就是語意分析,DAG 生成就是程式碼生成。工作流程指令碼就是那份 IR。後端接著做後端該做的事:排程平行處理、強制資源上限(Claude Code把一次執行限制在同時16個代理、總共1,000個2),並進行記憶化(memoize)。由此帶出四項後果。

計畫會擁有建置快取。 續跑的語意就是增量編譯。Claude Code在續跑時回傳快取的代理結果;Temporal 對代理開發者的訴求,是從失敗點恢復能保住 token,而不必重跑模型去重新生成已經丟失的成果5。下一步是內容定址(content-addressed)的計畫階段:重跑一個早期階段未曾變動的工作流程時,會像 make 跳過未變動的目的檔那樣,直接略過那些階段。

計畫會被拿來比對差異。 工作流程文件邀請您把一次執行的指令碼,與前一次執行的相互比對差異2。一旦計畫成了文字,計畫漂移就會像程式碼漂移一樣變得可見,而「這次遷移的調度自上一季以來變了」便成為一次可在 pull request 中審查的事件,而不是一場橫跨多份逐字紀錄的考古工程。

計畫成為審查的介面。 在一個工作流程運行之前,Claude Code會先顯示規劃好的各個階段,並在您同意之前提供「檢視原始指令碼(View raw script)」的選項2。這一環,正好接上審查未來的走向。我曾主張代理取代的是審查者,而不是審查本身:人的工作,從檢視差異轉移到擁有意圖。編譯後的計畫,正是這份被轉移的審查得以發生的產物,因為那是在執行花費任何成本之前、意圖唯一清晰可讀的地方。您無法審查一萬個即時決策,卻可以審查一段四十行的指令碼。可以預期,大型代理作業的簽核,將從事後核准差異,遷移到事前核准計畫。

漂移觸發的是重新編譯,而不是打補丁。 當一個編譯好的計畫因為世界變了而失敗——某個API改了名、某個相依套件升了版——錯誤的做法是手動去改那張 DAG。那等於在修補目的碼。正確的迴圈是重跑前端:相同的意圖、新的環境、全新的計畫。持久化執行環境已經能靠重試,在產物內部吸收短暫的失敗;環境漂移則是那類會逸出、直達編譯器的失敗。代理框架將長出漂移偵測器,像建置系統讓快取失效那樣讓計畫失效,而「漂移就重新編譯」也將成為一道常設迴圈,而非一次手動救援。

各種模式各自的勝場

面向 即時代理(模型在迴圈中) 編譯執行(產物在迴圈中)
任務形態 前所未見、地形未知 形態已知、反覆執行
失敗處理 新型錯誤獲得全新的判斷 預料中的失敗以確定性方式重試
成本樣貌 每一步、每一次執行都完整推理 計畫階段推理一次,執行則便宜
可稽核性 一份事後才重建的逐字紀錄 一段指令碼加上日誌,事前事後皆可檢視
可重複性 重啟意味著重新決策 重播,且已完成的工作已被快取
判斷 當下的、即時施用 在編譯當下凍結
勝出時機 探索、除錯、決定自己想要什麼 遷移、稽核、回填,以及任何要跑第二次的事

這張表是一條界線,不是一份排名。界線以下的一切,即將變得便宜許多、也可信許多。界線以上的一切則依舊昂貴——因為它本該如此。

編譯買不到的東西

有三樣東西始終得即時進行,而假裝並非如此,正是這套模式將被過度吹捧的方式。

探索。 在一個不熟悉的程式碼庫、或一個真正全新的問題裡,計畫就是那份發現。此時還沒有東西可編譯,因為決策本身就是工作。在理解之前就編譯,只會產出一份對您無知的自信結晶,而執行環境會完美無瑕地把它運行出來。

新型錯誤狀態。 一個編譯好的計畫,只能處理其作者所預料到的失敗。重試策略是對預期麻煩的確定性回答。當麻煩出乎意料時,確定性重試就成了一個迴圈,而不是修復;正確的做法是升級回前端,讓模型能看著真正的錯誤去思考。

品味。 一套工作流程就是在編譯當下被凍結的判斷,而凍結的判斷會過時。草率執行的新鮮判斷,勝過完美執行的陳舊判斷,因為陳舊的那一版會滿懷自信地失敗。關於這項產品該給人什麼感受,這個決定誰都不該拿去編譯。

還有一項警示,要從驗證那一側延續過來。一張 DAG 是一個檢查介面,而計畫所遺漏的一切,都會悄無聲息地不再算是工作——這正是讓可見的測試變成事實上規格的同一種動力。編譯把模型對一項任務的所有判斷,濃縮進單一產物,也因此把人的工作濃縮成擁有那份產物。當計畫被編譯,審查並不會消失。它移到了計畫階段,而且只拿到一頁高槓桿的篇幅可用。

我的立場

我如今奉行的準則很簡單:任何任務的第一次執行都是研究,值得一個即時代理;第二次執行則是建置,值得一份產物。Claude Code把這條準則做成了 UX:讓Claude把工作流程寫一次,把該次執行的指令碼存成一道指令,往後永遠重跑2。Rigorix 把它做成治理。Temporal 把它做成基礎設施。LangGraph 則早了好幾年,把它做成一個沒人當成宣言來讀的API動詞。

代理想要編譯,理由和當年的程式設計師如出一轍。決策既昂貴又珍貴。執行則該是無聊的、可檢視的、可以隨意重複的。整個業界花了2024與2025兩年,證明模型能夠決策。2026年的工作,是確保它們只需決策一次。

重點整理

  • 第一次執行是研究,第二次執行是建置。 用即時代理去跑一項全新的任務;一旦它開始重複,就把它凍結成一份產物,別再為一個已解決的問題付費買全新的判斷。
  • 先編譯無聊的那80%。 發布雜務、遷移掃蕩、翻譯批次、稽核巡查:高度重複、驗證便宜。探索、除錯與品味則保持即時。
  • 採用「漂移就重新編譯」的迴圈。 當一個編譯好的工作流程因為世界變了而壞掉,別用手去修補那份產物。把模型送回去,針對新的現實重新生成計畫,審查差異,再次凍結。
  • 審查計畫,而非逐字紀錄。 一旦執行變得確定,計畫就是系統中槓桿最高的一頁。像讀一段遷移指令碼那樣去讀它——因為它本來就是。

常見問題

AI 代理「編譯自己的計畫」是什麼意思?

意思是代理的產出,是一份確定性的、可檢視的產物——一段工作流程指令碼或一張 DAG——而不是一連串即時的動作。模型在計畫階段完成推理,並產出這份產物;一個非模型的執行環境再帶著重播、續跑與稽核的語意去運行它。Claude Code的動態工作流程(由模型寫出、交由執行環境運行的JavaScript指令碼)與 Rigorix(把自然語言任務編譯成可執行 DAG)都是已經推出的實例。

AI 工作流程與 AI 代理有什麼差別?

Anthropic在2024年的經典定義是:工作流程是「LLM與工具透過預先定義的程式碼路徑被調度的系統」,而代理則「動態主導自身的流程與工具使用」。2026年的更新在於:這道界線正從兩套系統之間的選擇,變成單一系統內部的一個階段——代理在計畫階段進行一次動態推演,並自行生成那些預先定義的程式碼路徑。

編譯後的代理工作流程,會比自主代理更好嗎?

對於重複、形態明確的任務,是的:編譯後的工作流程每次執行更便宜、能帶著快取結果續跑、也能在執行前先審查。至於探索、新型錯誤狀態與需要判斷取捨的場合,則否:編譯好的計畫是在編譯當下凍結的判斷,而那類任務需要當下施用的判斷。實務上的分界看執行次數:第一次執行保持即時,凡是您會跑第二次的都拿去編譯。

現今有哪些工具能把代理的意圖編譯成確定性產物?

截至2026年7月,有四個經過查證的實例。Claude Code動態工作流程:模型寫出一段JavaScript調度指令碼,執行環境運行它,存下的指令碼便成為可重複使用的指令。Rigorix:一套開源的 Rust 執行環境,把自然語言任務編譯成 DAG,並在政策、預算與權限的約束下執行。LangGraph:圖必須先編譯才能運行,並在超步邊界設置檢查點。Temporal:持久化執行的工作流程,能讓代理的進度留存,並從失敗點續跑。

來源


  1. Anthropic,〈Building Effective Agents〉,anthropic.com/engineering/building-effective-agents(2024年12月19日)。將工作流程定義為「systems where LLMs and tools are orchestrated through predefined code paths」,將代理定義為「systems where LLMs dynamically direct their own processes and tool usage, maintaining control over how they accomplish tasks」,並建議「workflows offer predictability and consistency for well-defined tasks, whereas agents are the better option when flexibility and model-driven decision-making are needed at scale」。 

  2. 〈Orchestrate subagents at scale with dynamic workflows〉,Claude Code 文件,code.claude.com/docs/en/workflows(2026年7月存取)。動態工作流程是「a JavaScript script that orchestrates subagents at scale」;「A workflow moves the plan into code.」執行環境在對話之外運行這段指令碼,並將它寫進一個可被讀取、與先前執行比對差異、編輯並重新啟動的檔案;被中斷的執行會續跑,已完成的代理回傳快取結果;每次執行上限為同時16個代理、總共1,000個;存放在 .claude/workflows/ 的指令碼可作為斜線指令執行。需要 Claude Code v2.1.154 或更新版本。 

  3. Rigorix OSS,github.com/arman-jalili/rigorix-oss,以「Show HN: Coding agent that compiles intent into deterministic DAG before running」為題貼出,news.ycombinator.com/item?id=48741332(2026年7月1日)。這是一套 Rust 執行環境,採 MIT/Apache-2.0 雙授權,能「compiles natural-language development tasks into executable Directed Acyclic Graphs (DAGs)」。規劃階段執行意圖分類、參數萃取,再到 DAG 生成;執行是一個由範本驅動的 DAG 引擎;治理涵蓋風險關口、預算、權限,以及 HMAC 簽章的稽核封包。其 README 將它的保證定義為「the same intent produces the same execution structure under the same templates and policies」。 

  4. LangGraph Graph API 文件,docs.langchain.com/oss/python/langgraph/graph-api(2026年7月存取)。節點是「functions that encode the logic of your agents」;邊決定接下來執行哪個節點;「You MUST compile your graph before you can use it」;搭配檢查點器編譯會「saves checkpoints at super-step boundaries」,從而讓執行可以續跑。 

  5. Temporal,〈Production-ready agents with the OpenAI Agents SDK + Temporal〉,temporal.io/blog/announcing-openai-agents-sdk-integration(2025年7月30日)。包進 Temporal Workflows 的代理迴圈會持久地保存進度:「Temporal keeps track of application progress and stores all Activity results」,因此重新啟動的應用程式會「picks up where it left off」,而不必重跑模型去重新生成已丟失的成果。 

相關文章

檢查成為規格

編碼代理針對測試而建構(building to the test):oracle 分數近乎滿分,交付的卻是一個無法使用的函式庫。你的檢查所遺漏的部分,就不再是任務的一部分。

1 分鐘閱讀

代理取代的是審查者,而非審查本身

一篇2026年的論文主張程式碼代理已終結人類程式碼審查。我實際執行它所開出的流程:審查者這個角色正在消亡,但審查本身正在轉移。

1 分鐘閱讀

你的 AI 代理寫程式碼的速度比你閱讀的速度還快

本週有五個研究團隊發表了關於同一個問題的論文:AI 代理產生程式碼的速度遠超開發者理解它的速度。債務累積在你的腦中。

4 分鐘閱讀