Featured image of post 初探 AI Agent 系統架構

初探 AI Agent 系統架構

開發成功的 AI Agent 不在於建立最複雜的系統,而在於建構最符合需求的系統。

本文將簡介與討論 Anthropic 於 2024 年末在官方部落格釋出的技術方案《建構有效的代理人(Building effective agents)》,向讀者介紹主要的 AI Agent 架構。

工作流程與代理人架構

在設計和建構 AI Agent 時,了解不同的系統架構是非常重要的。這些架構可以幫助開發者增加工作效率,以滿足使用者的需求。Anthropic 以增強功能的大型語言模型(Large Language Model,LLM)為核心模組,設計多種系統架構滿足不同需求的目標。主要分別為兩種類型:

  • 工作流程(Workflow):一種預先定義好工作流程和邏輯的架構,適用於解決穩定度要求更高的問題,可以相對地確保系統處理任務的穩定性和可靠性。
  • 代理人(Agent):一種動態自主決定工作流程和邏輯的架構,適用於解決彈性度要求更高的問題,可以讓系統根據實際情況進行動態調整和決策。

增強型 LLM

其中,增強功能的 LLM 指的是它有以下三種能力:

  • 檢索外部資料:可以存取和查詢外部資料源,以獲取更多的知識和訊息。
  • 工具使用:可以使用各種工具和應用程式,以完成特定的任務和目標。
  • 記憶使用者的輸入:可以記憶和了解使用者的需求和目的,以提供更個人化和明確的服務。

圖片來源:Anthropic

擁有這些能力的 LLM,可以更好地理解外部環境、採取行動和了解使用者的意圖,進而達成使用者的目標。

Workflow 架構

常見的 Workflow 架構主要分為五種類型:提示詞鏈(Prompt Chaining)、路徑選擇(Routing)、平行化(Parallelization)、規劃者與工作者(Orchestrator-Workers)以及評估者與優化器(Evaluator-Optimizer)。這些架構為工作流程的設計和實現提供了不同的方法和策略。

提示詞鏈

提示詞鏈架構是一種將任務分解為多個步驟的方法,每一步驟的輸入都是上一步驟的輸出。這種方法允許開發者撰寫程式來檢查每一步驟的輸出是否正確,確保整個流程正確地處理任務。

圖片來源:Anthropic

提示詞鏈架構適用於可以簡單地分解為多個清晰的子任務的任務,主要目的是用更長的運算時間換取更正確的處理結果。

適用於提示詞鏈架構的範例:

  • 生成行銷文案並翻譯成不同的語言。
  • 產生文章的大綱,檢查大綱是否符合特定的標準,然後依據大綱撰寫文章。

路徑選擇

路徑選擇架構可以根據使用者的要求,選擇最適合的提示詞調用 LLM 來處理使用者的任務。這種方法可以根據任務的類型和複雜度,選擇最合適的 LLM 來處理任務。

圖片來源:Anthropic

路徑選擇架構適用於可以被清楚地分門別類的任務,分類任務的方式可以使用 LLM 或傳統的分類模型或演算法。

適用於路徑選擇架構的範例:

  • 處理不同需求的顧客服務系統,例如一般性問題、退款申請或技術支援。
  • 把簡單常見的問題交付給小型模型處理,把困難不常見的問題給大型模型處理。

平行化

平行化架構主要追求以下兩種目的:

  • 加速運行:分割任務為多個子任務,並使用多個 LLM 調用同時處理這些任務。
  • 多元結果:同時運行一個任務多次,並且得到多個不同的結果,也可以藉由投票選擇出最好的處理結果。

圖片來源:Anthropic

平行化架構適用於可以分割為多個獨立子任務的複雜任務,同步處理可以增加處理效率;也適用於需要用多種觀點去處理的任務,從多元的輸出中找到令人滿意的結果。

適用於平行化架構的範例:

  • 在聊天機器人中實作防護機制,可以使用兩個 LLM 調用,一個檢查使用者的請求是否不當或包含不當言論,另一個處理使用者的請求。這種同步的方法比單一 LLM 同時進行檢查和處理的方式更能有效地確保聊天機器人的回應合理且適當。
  • 用不同的提示詞讓多個 LLM 調用檢查一段程式碼是否有臭蟲。

規劃者與工作者

在此架構中,主要的語言模型(規劃者)會動態地將大型任務分解為多個可執行的子任務,並將其分配給次要的語言模型(工作者)執行。最後,規劃者會綜合工作者的結果,形成最終的輸出。 圖片來源:Anthropic

此工作流程特別適用於複雜的任務,無法事先預期和定義所需要的子任務。相反,規劃者會根據任務的需求動態地決定子任務的分配。

適用於規劃者與工作者架構的範例:

  • 智慧軟體開發助手:需要對多個檔案進行複雜修改,規劃者可以將任務分解為多個子任務,例如檔案分析、代碼生成和測試等。
  • AI 搜尋引擎:需要從多個資料來源收集和分析訊息,規劃者可以將任務分解為多個子任務,例如資料蒐集、資料處理和結果匯總等。

評估者與優化器

在此架構中,兩個語言模型分別扮演著不同的角色:一個負責生成內容,另一個則對內容提供評估和反饋。這兩個模型之間形成了一個迴圈,持續生成和評估內容,直到產生出足夠滿意的答案。

圖片來源:Anthropic

此架構適用於具有明確評估方式和標準的場合。這與人類作家在撰寫一份精心設計的文件時,會經歷的迭代過程類似。

適用於評估者與優化器架構的範例:

  • 翻譯文字:在翻譯文字的過程中,LLM 可能會遺漏一些細節的句子。透過評估者 LLM,可以提供適合的更改方向,以確保翻譯的準確性和完整性。
  • 複雜搜尋任務:在進行複雜的搜尋任務時,需要多輪搜索和分析所有的資料。評估者 LLM 會決定是否需要進一步的搜尋,還是停止任務,以確保搜尋結果的相關性和有效性。

Agent 架構

Agent 架構是一種先進的系統架構,讓大型語言模型(LLM)能夠獨立地規劃和執行任務。以下是其運作流程:

  1. 使用者互動:LLM 先與使用者進行互動,以了解其需求和目標。
  2. 規劃和執行:LLM 根據使用者的需求,獨立地規劃和執行任務。
  3. 結果評估:在執行過程中,LLM 會從執行環境中獲得執行結果,並自行評估其正確性。如果需要,LLM 會暫停執行,以等待人類的回饋。
  4. 任務完成:當 LLM 認為任務已完成時,會停止執行。為了避免無限循環的工作,實務中會設定最大迭代次數或其他停止條件。

圖片來源:Anthropic

代理人架構適用於大型複雜的開放型任務,例如:

  • 需要多個步驟和方式的任務。
  • 無法事先定義或預測的任務。

此架構可能帶來更高的成本或無法估計的錯誤,為了確保安全,建議在安全的沙盒環境(Sandbox)進行大規模的測試,並設定適合的防護措施。

適用於代理人架構的範例:

  • 根據任務描述編輯多個檔案的智慧軟體開發助手。
  • AnthropicComputer Use 功能,可以讓 LLM 操控電腦完成使用者的任務

實作建議

在開發 AI Agent 時,架構的選擇並非一成不變。開發者應根據具體情境和需求,靈活選擇合適的架構。關鍵在於,只有當複雜的架構能夠帶來明顯的效果改善時,才應該採用。否則,簡單有效的方案就是首選。

總結

開發成功的 AI Agent 不在於建立最複雜的系統,而在於建構最符合需求的系統。從最基本的提示詞開始,逐步評估和優化。只有當簡單的方案無法滿足需求時,才應增加更多的步驟或採用更複雜的架構。

根據 Anthropic 的建議,開發 AI Agent 應遵循三個核心原則:

  • 保持簡單的設計:優先考慮簡潔和易於維護的設計。
  • 保持透明:在系統中明確顯示LLM的規劃步驟,確保開發過程的透明度。
  • 透過反覆的測試,設計精巧的代理人電腦介面(Agent-Computer Interface,ACI):不斷測試和優化代理人電腦介面,以確保其高效和易用。

這些原則和建議旨在引導開發者創建出高效、易於使用和滿足需求的 AI Agent。

參考資料

  1. Building effective agents
最後更新 Feb 14, 2025 12:29 UTC
comments powered by Disqus
使用 Hugo 建立
主題 StackJimmy 設計