AI代理的圖工程:超越單代理迴圈
圖工程將AI應用視為顯式設計的工作流,而不是單個自主代理。它定義代理、工具、確定性函式、驗證器、資料來源和人類如何協調完成任務。本文從實現角度探討圖工程,並使用LangGraph構建可靠的工作流。
AI代理的開發經歷了多個重疊階段:提示工程、上下文工程、工具使用、自主迴圈、記憶系統和多代理協調。最新的焦點是圖工程,它將AI應用程式視為顯式設計的工作流,而非單個自主代理。圖工程定義了代理、工具、確定性函式、驗證器、資料來源和人類如何協調完成任務,其範圍超越了LangGraph、GraphRAG或知識圖譜。
圖工程的核心元件
節點是繫結的執行單元,可包含LLM呼叫、工具使用代理、Python函式、檢索操作、資料庫查詢、API請求、策略檢查、測試套件、人工審批請求或子圖。並非每個節點都應是AI代理;已知的業務規則應保持確定性。
邊定義節點間的執行順序,包括直接邊、條件邊、並行邊、迴圈邊、錯誤邊、人工控制邊和事件觸發邊。條件路由可透過確定性Python邏輯或LLM分類器實現。
狀態是在圖中攜帶的共享記錄,例如使用者請求、任務計劃、檢索證據、草稿、驗證結果、重試次數和審批狀態。LangGraph使用有狀態圖將確定性步驟與LLM驅動步驟結合,並提供持久化、流式處理和人工介入控制。
狀態歸約器用於合併並行節點的更新,例如將多個證據列表追加、合併字典或選擇最新值。沒有清晰的歸約器,並行更新可能互相覆蓋或導致狀態不一致。
路由和守衛條件確定應執行哪條邊以及轉換是否允許。路由函式讀取狀態並選擇允許的邊,而非讓代理直接控制圖。
實際構建:可研究Workflow
文章展示了使用LangGraph構建研究框架的示例:規劃器節點制定研究計劃,研究者節點收集證據,寫手節點撰寫文章,評估器節點檢查準確性,修訂節點根據反饋修改,人工審查節點提供最終審批。關鍵特徵是透過條件路由實現迴圈和審批機制,並設定重試上限防止無限迴圈。所有節點均透過狀態共享資料,並使用InMemorySaver作為檢查點(生產環境應使用資料庫持久化)。
生產要求
筆記本中執行的圖並非自動生產就緒。每個節點應定義輸入、輸出、允許的工具、超時、重試策略、副作用、失敗類別、驗證規則和所有權。節點不應接受任意狀態並返回非結構化文本。
冪等性是重試的關鍵:重試不應重複不可逆操作。使用冪等鍵、事務識別符號、去重檢查和資料庫約束。
錯誤分類:臨時網路故障應重試,速率限制應等待後重試,無效輸入應返回驗證,缺少許可權應升級,策略違規應停止,模型格式化失敗應修復輸出。通用重試迴圈可能增加成本而不解決根本問題。
圖工程為構建可靠、可觀測和可控的AI系統提供了新的正規化,超越了單代理的黑箱迴圈。