AI 代理程式編排最佳實務:處理失敗、核准與重試
本指南說明 AI 代理程式編排的運作方式,比較集中式、分散式與階層式架構,並介紹在正式環境中處理失敗、核准與重試的七項最佳實務。

讓多個 AI 代理程式同時處理同一個專案,聽起來效率極高。一個負責規劃工作,另一個處理設計,第三個撰寫程式碼。在出問題之前,一切都運作順利。而失敗發生的頻率往往比你預期的還高。
要避免這些失敗,需要精心設計工作流程。因此,讓我們來剖析是什麼讓編排式工作流程不可靠,並探討確保正式環境可靠性的編排最佳做法。
什麼是 AI 代理程式編排?
AI 代理程式編排會協調多個 AI 代理程式、模型和工具,以完成多步驟任務。但仍需要某個人——或某個東西——來決定哪個 AI 代理程式先執行、它會收到哪些資訊,以及它完成後接下來會發生什麼。這就是編排器的角色——一個擔任管理者的 AI 代理程式,或是由軟體控制的執行層。
簡單來說,編排層會將目標拆解成較小的任務、追蹤相依性、將執行工作委派給合適的 AI 代理程式、管理共用情境,並整合各項輸出。
AI 代理程式編排如何運作:深入執行引擎
讓我們看看當你將任務交給編排器後會發生什麼事。
以 Perplexity 的 Computer 工作坊中的一個範例來說:運用來自 Salesforce、Snowflake、電子郵件、行事曆和近期新聞的資訊,建立客戶情報儀表板。
- 理解目標並規劃工作。編排器會從要求的成果出發,將其拆解成具有明確相依性的任務。在我們的儀表板範例中,這包括從不同來源收集資訊,並將其轉化為完整的交付成果。規劃器會確定哪些步驟依賴其他步驟,哪些可以獨立執行。
- 將任務路由至合適的 AI 代理程式。編排器會找出相依條件已滿足的任務,並將工作委派給專業的 AI 代理程式或模型。具相依性的任務則會等待其前置任務完成。Perplexity Computer 使用多個前沿模型,將工作流程的不同部分路由至最適合處理這些任務的系統。這也讓獨立的工作能夠平行執行。
- 在受控環境中執行工具呼叫。AI 代理程式透過工具與環境互動,例如網路搜尋、API、已連結的應用程式、檔案操作或程式碼執行。執行層會執行這些動作,並將結果傳回給 AI 代理程式。
- 在 AI 代理程式之間傳遞結果與情境。某個 AI 代理程式完成任務後,下游的下一個 AI 代理程式需要取得相關輸出才能繼續。交接紀錄可能包含任務 ID、輸出參照、結構描述版本和來源中繼資料。編排器會協調這些交接,同時保留後續步驟所需的情境。重要的是,AI 代理程式不必在自己的情境視窗中保留其他每個 AI 代理程式的完整工作歷程。
- 將執行狀態與 AI 代理程式情境分開記錄。當 AI 代理程式開始、完成任務或任務失敗時,執行引擎會更新持久化的工作流程紀錄,內容包括任務狀態、執行嘗試、輸出參照和剩餘工作。有了這份紀錄,編排器就能追蹤進度,並在中斷後恢復執行,無需仰賴 LLM 從對話歷程重建工作流程。
- 驗證結果並決定下一步。任務傳回結果時,編排層會檢查其輸出是否符合預期的約定,以及下一個任務的相依條件是否已滿足。若發現問題,工作流程可以返回先前的步驟進行修正,或是暫停。否則,就會繼續推進直到完成。
看似簡單的 AI 代理程式編排背後,其實牽涉許多環節。你如何組織 AI 代理程式之間的協調,決定了你對執行有多少掌控力。當然,這些協調也會增加額外負擔,所以並非總是值得。
什麼時候該使用 AI 代理程式編排?
當任務的不同部分需要不同的專業知識、獨立工作可以平行執行,或你無法事先確定下一步時,就可以考慮多 AI 代理程式編排。
因此,編排在以下三種情境中很有幫助:
- 任務需要不同的專業分工。例如,一個程式開發專案可能會受益於分別負責規劃、設計、開發和審查的 AI 代理程式。
- 獨立任務可以平行執行。與其讓單一 AI 代理程式依序完成所有工作,不如讓多個 AI 代理程式同時運作,並將結果傳回給編排器。
- 問題是開放式的。AI 代理程式可能需要探索不同的方法、做出決策並相互協作,而不是遵循預先定義的順序。
除此之外,編排只不過是代價高昂的潮流。更多 AI 代理程式也意味著更多協調工作,且可能帶來更高的 Token 成本。
「我通常會從最簡單的選項開始,再逐步擴充。如果我們知道步驟,而且這些步驟可重複執行,那可能就是一個工作流程。只有當不同的 AI 代理程式有不同的職責、權限或使用者時,我才認為有理由導入多個 AI 代理程式。」Josh Spilker(AirOps 搜尋行銷主管)表示。
即便如此,也要權衡效益與額外的模型呼叫、交接、延遲和故障點。
AI 代理程式編排架構及其取捨
建構 AI 代理程式協調的三種常見方式:集中式、去中心化和階層式編排。選擇合適的架構,關鍵在於一個問題:由誰掌控工作?AI 代理程式之間又如何彼此協調?
集中式編排
在集中式編排中,由單一編排器管理整個流程。它會拆解任務、將工作委派給專業 AI 代理程式、追蹤其進度,並整合它們的結果。
取捨:集中式協調讓你更容易追蹤執行狀況,並在單一控制點套用共同規則。不過,編排器可能成為瓶頸,而且除非系統支援復原,否則一旦它故障,就可能中斷整個工作流程。
去中心化編排
在去中心化編排中,AI 代理程式會更直接地彼此協調,而不是仰賴單一管理者做出每項決策。它們可以交換訊息、讀取共用狀態,並自行決定下一步。
取捨:AI 代理程式無需等待中央規劃器即可運作,因此這種方法適用於探索性工作與獨立貢獻。但當 AI 代理程式意見分歧、更新共用資訊,或需要達成一致的結果時,協調就會變得更困難。
階層式編排
階層式編排將管理者模式延伸至多個層級。最上層的編排器會將職責委派給下層編排器,再由它們協調各自的專業 AI 代理程式群組。
以一個涉及銷售、財務和法務團隊的企業工作流程為例。最上層的編排器可以將每個工作項目委派給特定領域的協調器。這些協調器接著會管理各自的專業 AI 代理程式,並回報彙整後的結果。
當工作流程範圍過廣,單一編排器難以有效管理時,這種結構就能派上用場。
取捨:階層結構讓團隊能分擔協調職責,並有機會在個別分支內處理故障。不過,這也會帶來更多交接、更複雜的狀態管理,以及更高的維運負擔。局部復原也取決於檢查點和執行狀態的實作方式。
這些架構的比較:
評估標準 | 集中式 | 去中心化 | 階層式 |
執行主導權 | 由單一編排器掌控委派 | AI 代理程式透過對等節點或共用狀態進行協調 | 職責分散於各編排層級 |
狀態一致性 | 較容易透過單一控制點進行協調 | 需要明確的同步與衝突處理機制 | 需要在分支內部及分支之間進行協調 |
故障隔離 | 中央控制器可能成為關鍵相依項目 | 個別 AI 代理程式可以獨立發生故障,但共用基礎架構仍然至關重要 | 若設計時考量到復原,故障可能侷限在分支內 |
政策執行 | 可集中執行通用的控管措施 | 必須在所有參與者之間一致地執行政策 | 可在全域與領域層級套用控管措施 |
營運複雜度 | 通常較低 | 協調複雜度較高 | 多層編排帶來較高的複雜度 |
循序、平行與交接式執行
還有一個值得了解的區別。架構決定由誰來協調代理程式,執行模式則決定其任務如何推進。
以下是三種執行模式:
- 循序工作流程:代理程式依預先定義的順序工作,一個代理程式的結果會成為另一個代理程式的輸入。
- 平行執行:彼此獨立的代理程式同時工作。
- 交接式執行:隨著任務推進,控制權會在各專門代理程式之間轉移。當另一個代理程式更適合處理下一步時,這種模式就很有用,不過每次交接都必須保留繼續執行所需的資訊。
這些模式並非互斥,也不會與編排架構一一對應。目標是選擇最簡單的結構,既能支援工作流程的相依關係與協調需求,又能將營運負擔控制在可接受的範圍內。
常見的 AI 代理程式編排失敗
編排可能在任何環節出錯,從簡單的疏忽到錯綜複雜的阻礙都有可能。有時,某個代理程式看似正確完成了工作,整體工作流程卻失敗了。我們根據實務工作者的經驗,整理出一些導致編排工作流程不可靠的常見錯誤,請多加留意:
- 有損的代理程式交接。編排器將摘要後的計畫傳給專門代理程式,但摘要遺漏了限制條件、相依關係或實作細節。
- 過早的扇入執行。下游代理程式在所有上游任務完成之前,就開始彙整結果。
- 非確定性的共用狀態更新。平行代理程式在沒有明確定義合併語意的情況下,寫入相同的狀態鍵。視框架處理更新的方式而定,這可能導致寫入遺失、資料重複、輸出取決於執行順序,或變更彼此衝突。
- 檢查點與副作用不一致。某項任務執行了外部操作,但在工作程序失敗之前,其成功執行的結果並未被持久記錄。復原時,編排器會看到一項未完成的任務,並重新執行它。
- 人工核准後恢復執行的競態條件。暫停與恢復執行本身就會帶來同步問題。
- 委派迴圈與重試放大。由於職責重疊、相依關係形成循環或完成條件模糊,代理程式會反覆將工作交給彼此。
- 將指令層級的控管誤認為執行安全性。編排器可能會告訴代理程式不要存取特定資源或執行敏感操作,但模型指令無法強制執行作業系統權限、網路限制或授權邊界。Perplexity 的安全工程研究說明了為何代理程式即使在沒有惡意指令的情況下,也可能在追求正當目標時跨越安全邊界
請注意這些失敗之間的差異有多大。過早的排程器狀態轉換或模糊的外部寫入,都可能產生錯誤的結果,但它們源自執行生命週期的不同環節。這就是為什麼可靠的編排不只需要改善提示或加入重試。
確保正式環境可靠性的 7 個 AI 代理程式編排最佳實務
1. 定義明確的任務合約、驗收標準與停止條件
模糊的目標和不明確的完成定義,往往會讓代理程式產生的結果令人失望。解決方法是採用提示合約(代理程式的工作範圍):在執行開始之前,就先對目標、限制條件、輸出格式與失敗條件達成共識。
舉例來說,以下是為負責修復間歇性失敗整合測試的代理程式定義合約的方式:
- 目標:找出並修復結帳 API 整合測試不穩定的原因。
- 輸入:測試原始碼、CI 失敗記錄、近期的提交,以及相關的應用程式程式碼。
- 限制條件:不得停用測試、放寬斷言,或修改無關的應用程式行為。
- 預期輸出:程式碼修補程式、根本原因說明,以及測試執行結果。
- 驗收標準:先前失敗的測試連續 10 次執行皆通過,且相關的迴歸測試套件也通過。
- 失敗條件:無法確定根本原因、修正引入了迴歸問題,或所需的測試環境無法使用。
但還有另一個重點:代理程式應該在什麼時候停止?
代理程式不應因為尚未產生令人滿意的結果,就無止盡地反覆嘗試。請定義怎樣才算成功完成、何時應回傳部分完成的任務,以及何時因無法滿足某項需求而停止。設定最大委派深度與反覆執行次數上限或執行預算,避免未解決的任務變成無止盡的迴圈。
回到我們的 CI 範例。你可以定義以下停止條件:
- 成功:修正連續 10 次測試執行皆通過,且通過相關的迴歸測試套件。
- 反覆執行上限:代理程式最多只能嘗試兩個候選修正。
- 執行預算:即使問題仍未解決,代理程式也必須在 60 分鐘後停止。
- 委派上限:代理程式可以將工作委派給一個專門代理程式,但不得再進一步委派給子代理程式。
- 部分完成:如果兩次嘗試都失敗或超過時間限制,代理程式會回傳其發現、嘗試過的變更與測試結果。
- 執行受阻:如果測試環境無法使用,代理程式會停止並回報阻礙因素,而不是宣稱成功。
2. 保持編排器精簡,並強制執行結構化交接
開發人員有時會賦予編排器過多職責,使它不再協調專門代理程式,而是開始自行撰寫程式碼、除錯或執行詳細審查。這會造成瓶頸:編排器將脈絡預算耗費在實作細節上,延誤委派,並模糊了結果的責任歸屬。
因此,請讓編排器各司其職,並透過參照具體成品來強制執行交接:原始任務、相關輸入、輸出成品、執行狀態,以及任何未解決的問題。
請看這個範例:status: completed 指的是代理程式被指派的工作,而不是整個工作流程。由於測試仍處於 pending 狀態,編排器不應核准最終結果。
{
"task_id": "fix-42",
"status": "completed",
"artifact_ref": "patch-17",
"test_status": "pending",
"blockers": []
}3. 保存工作流程狀態並控制脈絡增長
代理程式的對話紀錄並不是可靠的工作流程進度紀錄。當其脈絡視窗填滿時,自動壓縮可能會捨棄重要細節。而且如果某個工作程序當機,下一個代理程式需要知道哪些步驟實際上已經完成。
舉例來說,如果程式設計代理程式產生修補程式後當機,下一個工作程序應擷取已儲存的成品,並從記錄的工作流程狀態繼續執行。但如果該代理程式也觸發了外部 CI 執行,編排器就必須先另行核對該次執行,才能重複該動作
因此,請將執行狀態與代理程式的工作脈絡分開。將任務狀態、執行嘗試、已完成的步驟和成品參照儲存在持久性儲存空間中。同時,只載入與代理程式目前任務相關的指令、輸入和結果,而不是將整個執行歷程塞進其脈絡視窗。
4. 設計能感知失敗的重試機制與可復原的工具執行
假設你的 CI 代理程式觸發了一次測試執行,但 API 請求逾時。究竟是測試執行沒能啟動,還是 CI 服務已將其排入佇列,卻遺失了回應?
逾時不一定代表操作失敗。因此,在決定下一步之前,你需要先區分錯誤類型:
- 暫時性錯誤(429、503):使用有上限的指數退避並加入抖動來重試,若有提供 Retry-After,則須遵守。
- 驗證或權限錯誤(400、403):停止或修正根本問題,而不是重複相同的請求。
- 結果不明確(可能已寫入後才逾時):再次嘗試之前,先檢查操作是否已成功。
注意:即使是可重試的錯誤也需要設限。為每次工具呼叫設定逾時,限制重試次數與總重試時間,並強制執行整體工作流程期限,讓巢狀代理程式無法不斷重新啟動相同的操作。如果某個相依服務反覆失敗,請使用斷路器暫時停止請求。
對於具有外部副作用的操作,請為每個邏輯動作指派一個穩定的冪等性金鑰,並在每次重試時重複使用。如果 API 支援伺服器端去重複,就能辨識重複的請求,而不會將動作執行兩次。如果不支援,請使用關聯 ID 或其他權威參照來查詢外部系統。
當你無法確定發生了什麼事時,請停止並向上呈報。
以下是我們 CI 代理程式重試邏輯的範例,以虛擬程式碼表示:
op_id = get_or_create_operation_id(
task_id=task_id,
patch_id=patch_id,
action="start_ci_run"
)
try:
return ci.start_run(commit, request_id=op_id)
except TimeoutError:
run = ci.find_by_request_id(op_id)
if run:
return run
if ci.supports_idempotency:
return bounded_retry(
lambda: ci.start_run(commit, request_id=op_id)
)
raise NeedsReconciliation(op_id)程式碼附註:此範例假設 CI API 支援依請求 ID 查詢執行。request_id 只有在供應商明確保證冪等性時,才能防止重複。bounded_retry() 為示意用的虛擬程式碼。在正式環境中,重試應同時受到每項操作的重試預算(最大嘗試次數或經過時間)以及整體工作流程期限的限制。
對於跨越多個服務的較長工作流程,可考慮採用 Saga 模式,在後續步驟失敗時協調補償動作。但請記住,補償並不一定等同於完整回復。你可以還原資料庫更新,卻無法收回已寄出的電子郵件。
5. 依明確的資源預算分派工作並平行處理
這裡有兩件事需要權衡:每項任務需要多少模型能力,以及你可以同時執行多少項任務。只要其中一項判斷錯誤,就可能導致代理程式爭搶共用的 API 配額,或只仰賴昂貴的推理模型。
在模型選擇方面,請根據任務複雜度來搭配模型能力與推理強度,這點很簡單,卻常被忽略。請注意,你可以自行設定路由規則並評估模型,也可以使用會替你處理模型選擇的編排平台。
舉例來說,Perplexity Computer 的 Effort Mode 可讓你選擇一項任務值得投入多少心力,而不必手動選擇模型。選擇 Light、Standard、High 或 Ultra,Perplexity 就會自動選擇負責編排的模型及其推理等級。接著,該編排器會將子任務委派給輔助代理程式,而這些代理程式可以使用不同供應商的模型。
Perplexity 會評估各種模型設定的品質與成本,並優先採用能提供相近結果、成本較低的選項。如果你偏好自行選擇模型與推理等級,也可以使用 Custom 控制項。
在平行處理方面,上限應取決於你的基礎架構與外部相依服務。請驗證共用 API 的請求與 token 速率限制,然後以逐步提高的並行數對工作流程進行負載測試。觀察輸送量是否提升,或請求是否開始排入佇列、變慢或傳回 429 錯誤。
為了讓資源消耗維持在可預期的範圍內,請強制執行資源限制與排程控管:
- 控管並行數與請求速率:限制每個服務進行中的呼叫數量,並將多餘的工作排入佇列。請記住,光是限制並行數,並無法強制執行每分鐘請求數或每分鐘 token 數的限制。
- 追蹤 token 與成本預算:計算整個工作流程(包括子代理程式)的用量,並在剩餘預算不足時停止啟動新工作。
- 嚴格遵守執行期限:設定任務與工作流程的時間限制,並在支援的情況下,將取消指令傳遞給執行中的代理程式。
- 遵循相依關係:只有在下游任務所需的輸入可用時才啟動這些任務,而不是同時啟動所有代理程式。
6. 強制執行核准機制並隔離代理程式的執行
絕對不要讓模型自行判斷其動作是否安全。相反地,應賦予代理程式最小權限,並在應用程式程式碼中強制執行以風險為基礎的核准規則。如果代理程式會執行程式碼,請將執行環境與你的主機環境隔離,並限制其對檔案、網路和憑證的存取。這樣一來,即使代理程式出錯或執行了不安全的程式碼,也能限制損害範圍。
Spilker 提醒:「我對過度複雜的多代理程式系統抱持懷疑,尤其是當代理程式互相審查並核准彼此的工作時。最後可能會有好幾個代理程式信心滿滿地把同一個錯誤傳下去,卻沒有任何人真正發現它。」
對於需要人工核准的動作,請暫停執行並儲存所提議的確切操作:
- 其參數
- 其目標資源
- 其提交或狀態版本
- 審查者的決定
此外,也要定義核准遭拒絕、過期或需要向上呈報時會發生什麼事。這對可恢復的框架至關重要,因為恢復一個中斷的節點時,會從該節點的開頭重新執行程式碼。中斷之前的任何副作用都可能再次發生。
因此,如果核准遭拒絕或過期,請求就會關閉。如果目標提交、參數或權限在執行前有所變更,請讓該核准失效,並重新申請核准。
Spilker 也不認同將完全自主的端對端代理程式視為目標的想法。他總結道:「對我來說,更好的做法是建立幾個專注的代理程式,賦予明確的職責、定義好的權限,並在適當的時間點加入人工審查。這樣既能提升效率,又不必放棄完整的控制權。」
7. 獨立驗證輸出並測試復原行為
你是否遇過代理程式明明失敗了,卻回報 Success?這種情況就算不至於讓人抓狂,也相當惱人,而且問題不容易快速修正,因為代理程式的最終訊息不一定會告訴你哪裡出了錯。
若要調查,請追蹤執行期間發生的情況,並獨立驗證結果。所以,讓我們花點時間來隔離並解決這個問題。
追蹤工作流程以找出問題所在
在為代理程式的提示除錯之前,請先擷取完整的執行路徑。你需要一份追蹤記錄,將同一次工作流程執行中的代理程式調用、工具呼叫、錯誤與重試串連起來。
OpenTelemetry 的 GenAI 語意慣例提供了描述這些操作的標準化方式。例如,invoke_workflow 代表工作流程執行,invoke_agent 代表代理程式調用,execute_tool 則代表工具呼叫。每項操作都可以記錄為一個 span,其中包含時間、狀態與相關中繼資料。
這個步驟能為你提供執行路徑的追蹤記錄,讓你找出代理程式在哪裡出了狀況。
invoke_agent generate_patch OK
execute_tool start_ci_run OK run_id=9812
execute_tool get_ci_result TIMEOUT
agent_response: "Success"執行追蹤記錄範例。
獨立審查輸出
盡可能使用程式化檢查。依據 JSON 結構描述驗證輸出、執行單元與整合測試、檢查必要的成品是否存在,並查詢外部系統以確認動作確實成功。
對於需要主觀判斷、因而無法透過程式化檢查評估的輸出,請引入獨立的審查代理程式。其中一種做法是實作者–審查者–解決者迴圈:由一個代理程式產生成品,一個具有全新脈絡的審查者找出問題,再由解決者處理這些問題,之後再次執行驗證。
你仍需在可能的情況下驗證審查者的發現;如果你使用以 LLM 為基礎的評分器進行重複評估,請以經人工審查的範例來校準其判斷。
注入失敗以測試復原能力
到目前為止,您已追蹤代理程式執行的內容,並檢查其輸出是否正確。但如果工作程序在任務進行到一半時當機,或 API 在接受請求後逾時,會發生什麼情況?出乎意料的是,您的工作流程可能在正常情況下運作良好,卻在復原過程中失敗。
為了測試這一點,請在測試環境中刻意注入故障:
- 模擬 API 逾時
- 在外部寫入與檢查點之間讓工作程序當機
- 傳回格式錯誤的工具輸出
- 讓核准過期
每次測試後,請檢查執行追蹤,了解哪些步驟已執行、工作流程從何處恢復,以及是否有任何動作被重複或略過。接著再檢視實際結果。
假設您的 CI 代理程式發送請求以啟動測試執行,但 API 回應逾時。代理程式重試後收到成功回應,並回報成功。一切看似正常,直到您檢查 CI 服務,才發現系統建立了兩次測試執行,而非一次。
因此,您應同時驗證工作流程記錄的狀態,以及外部系統中的實際變更。唯有工作流程在沒有非預期副作用的情況下達到預期狀態,復原測試才應判定為通過。
將您發現的失敗情況加入迴歸測試,避免日後的變更再次引入這些問題。
歸根究柢,成功代表工作流程通過了必要的檢查,且其外部結果已經過驗證。
AI 代理程式編排常見問題
為什麼各自孤立的 AI 代理程式在企業規模下會失靈?
各自孤立的代理程式或許能正確完成各自的任務,但彼此搭配時卻會產生不一致的結果。想像一下:銷售代理程式在 10:00 擷取客戶條款,定價代理程式在 10:05 使用更新後的價格計算報價,而法務代理程式則在檢查一份於 10:07 變更過的合約。每個代理程式所依據的都是不同時間點的業務快照,因此它們的輸出可能彼此矛盾。
在企業規模下,這個問題會更加明顯,因為代理程式需要與多個各自獨立更新的系統互動、以不同的權限運作,而且不一定共享上下文或執行狀態。
如何防止 AI 代理程式陷入無限重試迴圈?
在多個層級設定上限:工具呼叫的最大重試次數、代理程式的最大迭代次數、委派深度,以及整體工作流程的截止時間。重試前,請先將失敗分類。對於暫時性的 429 回應,若有提供 Retry-After,請遵循其指示;否則,請使用加入抖動(jitter)且有上限的指數退避。
發生驗證或權限錯誤後,請停止重試未經修改的請求。如果下游服務反覆失敗,斷路器可以防止代理程式產生額外負載。
AI 代理程式工作流程當機後,該如何恢復執行?
復原機制取決於您使用的執行環境。在 LangGraph 中,PostgresSaver 等持久性檢查點儲存器會將圖狀態儲存在 thread_id 之下,讓執行能從已保存的狀態繼續。在 Temporal 中,另一個工作程序可以重播工作流程的事件歷程來重建該工作流程。重播期間,它會重複使用先前記錄的活動結果。
如果在工作流程仍在執行時重新部署應用程式,已儲存的狀態與執行歷程可能不再相容。Temporal 透過 Worker Versioning 與工作流程修補(patching)來解決這個問題。對於以檢查點為基礎的系統,請事先規劃結構描述遷移,並在推出不相容的變更前,先針對現有的已儲存狀態測試復原流程。
如何測試 AI 代理程式編排的可靠性?
多次執行相同的代表性任務,並區分 pass@k(k 次嘗試中是否至少有一次成功)與 pass^k(k 次嘗試是否全部成功)
依任務類別與工作流程版本衡量結果,而非仰賴單一的整體成功率。追蹤首次嘗試成功率、多次重複執行之間的一致性、p95 延遲、每項已完成任務的成本,以及需要人工介入的比例。回報成功率時,請一併提供樣本數與不確定性區間。