經驗篇:Google專家眼中更多的AIAgent

Google 在去年九月時,在 Kaggle 平臺上公佈了一篇由 Julia Wiesinger、Patrick Marlow 和 Vladimir Vuskovic 撰寫的 Agent 主題白皮書。
本次文章,我將進行彙整,以讓大家更理解 Agent 的概念。

一、什麼是 AI Agent?

AI Agent是一種應用程式,其核心功能是透過觀察環境並運用工具採取行動,以實現特定目標。

這些Agent具有以下幾個關鍵特徵:

  • 自主性(Autonomy):AI代理能夠自主執行,不需要人類的直接干預。當賦予明確的目標或相關任務後,它們能夠獨立完成操作。
  • 目標導向(Goal-Oriented):他們的行動與決策設計是為了實現特定目標,表現出目標驅動的特徵。
  • 主動性(Proactiveness):即使缺乏人類明確的指令,人工智慧代理也能推理與分析,決定下一步行動,努力完成最終目標。
  • 應用場景廣泛:雖然人工智慧代理的概念十分通用且強大,但本文重點關注生成式人工智慧模型所構建的特定型別代理。
以下是作者提出的一個基礎Agent架構:

二. 生成式AI Agents的核心組成

在人工智慧領域中,生成式AI Agent 正在迅速成為核心技術。
這些不僅僅是語言模型,而是能夠與外部世界互動、完成複雜任務的系統。要理解生成式AI代理的可運作的,必須從其三大核心組成部分來理解:模型(The Model)、工具(The Tools)與指揮層(The Orchestration Layer)。

模型(The Model):AI Agents的智慧核心

模型是AI智慧體的「大腦」,負責決策與推理,具備理解指令和邏輯推理的能力。

它通常由一個或多個大型語言模型(如GPT-3或類似技術)構成,並採用不同的推理框架,例如ReAct、Chain-of-Thought (CoT) 或 Tree-of-Thoughts (ToT),來幫助模型深入理解問題並提供合理的解決方案。

根據需求,模型可以是通用型、多模態型,或者經過特定調整以應對特殊任務。雖然模型本身並不包含Agent的具體配置,但可以透過資料進行Fine-Tuning,以確保最佳效果。

就其而言,模型是Agent思考的核心,決定了它的判斷與推理能力。

工具(The Tools):連線內外世界的橋樑

工具是AI Agent與外部世界互動的關鍵因子,幫助Agent克服僅靠語言模型無法直接處理外部系統或資料的限制。這些工具以多種形式存在,例如CRUD方法等。

工具極大地擴充套件了代理的能力,可訪問與處理真實世界資訊,例如查詢天氣或更新資料庫。

目前常見的工具型別包括:

  • 擴充套件(Extensions):標準化地連線API與Agent,讓Agent無縫執行操作。
  • 函式(Functions):由模型輸出函式與引數,實際API呼叫由客戶端執行,為開發者提供更精細的控制。
  • 資料儲存(Data Stores):以提供資料庫的形式,儲存並提供代理訪問動態更新的資訊。
工具的存在讓人工智慧代理能夠真正與外部世界產生互動,而不是僅僅針對語言模型本身。

指揮層 (The Orchestration Layer):Agent 的指揮中心

指揮層是AI Agent模型與工具的總指揮,決定了它如何接收資訊、進行內部推理,並採取行動。這是一個迴圈的過程,直到Agent完成目標或到達終點。

指揮層的複雜性不是一,可以是簡單的邏輯計算,也可以是高度複雜的規劃與推理。它負責維護記憶、狀態、推理與規劃,並貫穿提示工程(Prompt Engineering)框架來引導推理與行動。例如:

  • ReAct:讓模型邊推理邊行動。
  • Chain-of-Thought (CoT):透過中間步驟實現多步推理。
  • Tree-of-Thoughts (ToT):適用於需要探索或策略性預測的任務。
那麼,指揮層確保AI Agent的每一步都按計劃進行,相當於「執行大腦」。

三者良好配合:模型、工具與指揮層的協作之美

這三個組成部分相互協作,使得 AI Agent 能夠有效地完成任務。模型負責「思考」,工具負責「執行」,而指揮層則負責「規劃與控制」。
這種協作就像一位廚房裡的廚師中工作:
  • 廚師首先收集資訊(食材和指令)。
  • 然後根據資訊進行推理(決定菜色與烹飪方式)。
  • 隨後執行動作(切菜、烹煮)。
  • 最後根據結果調整步驟(改進與改進)。
透過這樣的方式,AI Agent表現出強大的能力與適應能力,能夠自主完成複雜的任務。

三.模型和代理的差異

以下提供了一份作者所撰寫的差異表格:
從表格中可以看出,模型的知識來源僅限於其訓練資料,無法管理多輪對話或持續上下文,也缺乏內建工具和邏輯層支援。
而代理則跨越介接外部工具擴充套件知識,具備管理多輪會話的能力,並內建推理框架,能夠執行更復雜的任務。這使得智慧體在處理動態和複雜任務時更具優勢。

四. Agent運作的核心概念

就像廚師在昏暗的廚房中,Agent 利用認知架構來完成其高效的目標。

遍歷迭代處理資訊、做出明智的決策,並根據先前的輸出調整下一步的行動,Agent 才能運轉。

Agent的核心位於協調層,負責維護記憶、狀態、推理和規劃。協調層利用快速發展的提示工程技術和相關框架來引導推理和規劃,使Agent能夠更有效地完成任務並與環境互動。

Agent使用認知架構的相容步驟

以下是 Agent 如何使用認知架構來執行任務的步驟示例:

  • 資訊收集代理:收集資訊,例如使用者的查詢或可用的工具和資源。
  • 內部推理:根據收集到的資訊進行推理,考慮可行的選項和行動。
  • 採取行動:根據推理結果採取行動,例如使用工具、搜尋資訊或產生響應。
  • 調整:在每個階段,代理人會根據需要進行調整,利用前期的結果完善計劃,並確定下一步行動。

推理技術與思考

Agent可以採用多種推理技術與框架,以選擇針對使用者請求的最佳行動。以下是常見的框架與技術:
  • ReAct(Reasoning and Acting):提供語言模型一種思考過程策略,結合上下文提示進行推理與行動。
  • 鏈式思考(Chain of Thought, CoT):跨越中間步驟實現推理能力。子技術包括:自我一致性、主動提示、多模式CoT,針對不同的應用場景有其優缺點。
  • 樹思維(Tree of Thought, ToT):適合探索或戰略性前瞻任務。擴充套件鏈式思考,允許模型探索多種解決問題的中間步驟。

協調層兼容範例:ReAct 框架

以下是協調層如何利用 ReAct 框架來引導推理和規劃的流程示例:
  • 查詢:使用者向Agent傳送查詢。
  • 啟動ReAct序列:Agent向模型提供提示,啟動ReAct框架步驟。
  • 執行步伐:
  • 問題:從使用者查詢中提取的具體問題。
  • 想法:模型關於下一步行動的構想。
  • 行動:模型決定採取的行動,例如選擇工具或搜尋資訊。
  • 操作輸入:模型決定提供給工具的輸入內容。
  • 觀察:根據行動結果進行反饋。
  • 最終答案:為原始查詢生成的最終響應。
4.結束迴圈:將最終答案返回給使用者。
在指揮層中使用 ReAct 推理的 Agent 示例
五、工具:通往門口世界的入口
工具是我們可以讓LLM通往外部世界的途徑。雖然語言模型擅長處理資訊,但它們缺乏直接獲取和影響現實世界的能力。這種限制在於需要與外部系統或資料互動的情況下的用處。這意味著,在某種意義上,語言模型的好壞取決於它從訓練資料中學到的東西。但是,無論我們向模型投入多少資料,它們仍然缺乏與外部世界互動的基本能力。
為了使模型能夠與外部系統進行即時、採集的互動,可以使用函式(Functions)、擴充套件(Extensions)和資料儲存(Data Stores)等工具來提供這種關鍵能力。這些工具建立了基礎模型和外部世界之間的聯絡,使代理能夠執行更廣泛的任務,而且更準確和可靠。

擴充套件 (Extensions)

可以被認為是建立標準化方式橋接API和Agent之間的差距,允許Agent無縫執行API,而不管它們的底層實際作如何。擴充套件跨越以下方式橋接Agent和API之間的差距:
  • 使用範例教導 Agent 如何使用 API 端點。
  • 教導Agent成功呼叫API端點所需的引數或引數。Agent可以使用模型和示例來動態選擇最適合解決使用者查詢的擴充套件。
示例:Agents-Extension-API 關係圖

函式 (Functions)

與軟體工程中的函式類似,是完成特定任務且可根據需要重複使用的獨立程式碼模組。模型可以利用一組已知的函式,並根據其規格決定當使用每個函式以及函式需要哪些引數。函式與擴充套件的不同用途:

模型輸出函式及其引數,但不進行即時API呼叫。
示例:Agents-Function-API 關係圖
函式在客戶端執行,而在Agent端執行擴充套件。函式的呼叫邏輯和執行從Agent端轉移到客戶端應用程式,為開發人員提供對應用程式中資料流的更精細的控制。
劃分客戶端與代理端對擴充套件和函式呼叫的控制

資料儲存 (Data Stores)

透過提供對更動態和最新資訊的訪問來解決模型的靜態知識限制。資料儲存允許開發人員恢復原始格式向代理提供額外的資料,而無需執行的資料轉換、模型重新訓練或操作。

資料儲存通常作為提供資料庫, Agent可以在執行時訪問該資料庫。資料儲存允許Agent訪問各種格式的資料,例如:

  • 網站內容
  • 形成資料,如PDF、Word檔案、CSV、試算表等
  • 非結構化資料,如HTML、PDF、TXT等
示例:Agents-data store-resource關係圖
那如果你設計並儲存了一個基於RAG的知識庫,你也可以參考以下的方式,建立起AI代理的生命週期:
  • 使用者查詢:使用者向代理釋出查詢。
  • 查詢嵌入(Query Embedding):使用嵌入模型將使用者查詢轉換為 Embedding Vector。
  • 支援資料庫匹配:將 Embedding Vector 與支援資料庫的內容進行匹配。
  • 內容搜尋:從提供資料庫中搜索匹配的內容,以文字格式輸出結果。
  • 代理處理:代理接收使用者查詢和檢索到的內容。
  • 生成響應或採取行動:代理根據使用者查詢和搜尋的內容制定響應或決定下一步的行動。
  • 回覆結果:向用戶傳達最終回覆。
基於RAG的AI代理的生命週期架構圖
作者在文章中,也很貼心的準備了工具追溯,我們整理如下,這將更加深了這三種執行方式之間的差異:

VI. 模型能力的增強

目標模型執行的增強,目標學習( targeted Learning)是一種關鍵方法,可以提升模型在特定任務中的表現,尤其是在需要超出資料訓練範圍的知識時。

這種方法類似於從基本烹飪技巧進階階到掌握特定菜系,需要急躁的學習以確定更進一步的結果。來源中提到了以下幾種方法來幫助模型獲得此類特定的知識:

情境學習(In-context Learning)

  • 這種方法在推論時(推理時間)提供通用模型提示(提示)、工具(工具)和少量範例(few-shot Examples),能夠「即時」學習如何以及當使用這些工具來完成特定任務時。
  • ReAct 框架就是這種方法的一個例子。它利用自然語言的提示,使模型能夠在接收到使用者查詢時,能夠有效地推理並採取行動。
  • 就像廚師收到特定的食譜(提示)、一些關鍵食材(相關工具)和一些小吃(少量樣品),然後根據有限的資訊和一般的烹飪知識,即時查詢如何準備最符合食譜和客戶偏好的餡餅。

檢索式情境學習(檢索式情景學習)

  • 這種技術從外部記憶中檢索最相關的資訊、工具和相關示例,動態地填充模型提示。
  • Vertex AI 擴充套件中的「範例儲存」(示例商店)或前面提到的基於RAG 架構的資料儲存就是這種方法的示例。
  • 這就像廚師在廚房裡有一個即時豐富的食物預存室(外部資料儲存),裡面裝滿了各種食材和食譜(範例和工具)。廚師動態地可以從食物預知室中選擇食材和食譜,方便更好地符合客戶的食譜和偏好。

微調學習(基於微調的學習)

  • 這種方法涉及在推論之前使用更大的特定範例資料集來訓練模型。
  • 這有助於模型理解何時以及如何應用某些工具,甚至在接收到任何使用者查詢之前。
  • 這就像我們送廚師去學習一個新的菜系或一系列菜系(在更大的特定樣本資料集上進行預訓練)。這讓廚師能夠更深入地理解未來未見過的客戶食譜。
綜上所述,這些目標學習方法各有優點,在速度、成本和延遲方面都有所不同。在Agent框架中結合這些技術,可以利用各自的優勢並最小化其缺點,從而實現更強大的且這些方法使模型能夠根據基礎,提取資訊、工具、以及示例,提升處理複雜任務的能力。

七. 如何在 Google Vertex AI 實踐 AI Agent

Vertex AI 平臺提供了一個完整的託管環境,簡化了當前生產級 AI Agent 的流程,其中包含前面討論的核心元件,以及其他工具。以下是關於 Vertex AI 上目前生產應用程式的重點:

簡化開發流程

開發人員可以使用自然語言介紹,定義Agent的關鍵要素,包括快速目標、任務指示、工具、用於任務分派的子Agent和示例。這讓開發人員能夠更加關注當前和完善Agent,而不必擔心基礎設施、安裝和維護的複雜性。

整合開發工具

Vertex AI平臺提供了一系列的開發工具,用於測試、評估、快速高效地執行Agent、排除錯誤並改善Agent的整體質量。這確保了開發出的Agent是可靠且可靠的。

綜合代理框架

Vertex AI 平臺集成了多種功能,例如 Vertex Agent Builder、Vertex Extensions、Vertex Function Calling 和 Vertex Example Store,這些功能可以共同分享目前完整的端對端 Agent 架構。該架構能夠滿足生產應用程式的各種需求。

可擴充套件性管理

Vertex AI 作為一個全託管平臺,處理基礎設施的管理、維護和部署,讓開發人員可以專注於應用程式的開發和最佳化。

作者在 Vertex AI 平臺上提供了一個目前的 Agent 架構示例,展示瞭如何利用各種功能來建立生產級應用程式。該架構結合了多個必需的元件,確保了 Agent 的有效執行。

  • 工具:使用者可以從官方檔案中嘗試初步的 Agent 架構示例。

VIII. 結論

作者總結了生成式AI Agent的基礎組成要素、組成方式以及如何以認知架構的形式有效實施它們。以下是作者在總結中提出的幾個重點:

代理利用工具來擴充套件語言模型的能力。代理可以訪問即時資訊、提出真實世界的行動建議,並自主規劃和執行復雜的任務。代理可以利用一個或多個語言模型來決定如何轉換狀態,並使用外部工具來完成模型本身難以或不可能完成的複雜任務。

Agent運作的核心是指揮層。指揮層是一種認知架構,它架構了推理、規劃、決策並指導Agent的行動。

多種推理技術,例如ReAct、Chain-of-Thought和Tree-of-Thoughts,為指揮提供支援層提供了一個框架,以接收資訊、執行內部推理併產生明智的決策或回應。

工具(Tools),例如補充功能(Extensions)、函式(Functions)和資料倉庫區(Data Stores),是Agent通往外部世界的介面。它們允許Agent與外部系統互動並訪問超出其訓練資料範圍的知識。
  • 新增功能(Extensions)提供了Agent和外部API之間的橋樑,能夠執行API呼叫並檢索即時資訊。
  • 函式(Functions)透過分工合作為開發者提供了更便捷的控制,允許代理產生函式引數,這些引數可以在客戶端執行。
  • 資料倉庫區(Data Stores)為Agent提供了對格式化或非格式化資料的訪問,從而實現了資料驅動的應用方案。
隨著工具變得更加複雜,推理能力得到增強,Agent將有能力解決迫切複雜的問題。此外,「代理鏈(代理鏈)」的策略方法將繼續獲得發展。突破結合突破特定領域或任務的專業Agent,我們可以建立一個「混合 Agent 專家」方法,能夠在各個行業和問題領域提供卓越的成果。
構建複雜的Agent架構需要迭代的方法。實驗和改進是針對特定業務案例和組織需求找到解決方案的關鍵。由於支援其架構的基礎模型的生成功能,沒有兩個Agent是幾十的。
然而,利用每個基礎元件的優勢,我們可以建立有影響力的應用程式,擴充套件語言模型的功能並驅動真實世界。

作者:萬能的大雄

相關閱讀:

相關文章