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