深度解析AI Agent:從概念、原理到構建模式,一文徹底搞懂!
隨著大模型技術的飛速發展,一個重要的概念——Agent(也叫AI Agent)——應運而生,并迅速成為行業熱點。盡管這個詞匯現在被頻繁提及,但它究竟是什么?它是如何運作的?許多人對此仍感模糊。今天,我們就來徹底搞明白AI Agent的這些核心問題。
一、Agent:大模型的“感官與四肢”
我們都知道,像GPT-4、DeepSeek這樣的大模型在回答問題和邏輯推理方面非常強大。然而,它們在實際應用中存在一個顯著的限制:它們無法感知或改變外部環境。
舉個例子:你想讓GPT-4o幫你寫一個貪吃蛇游戲,它確實能提供代碼,但將代碼寫入文件、運行程序這些操作,大模型是無法直接完成的。它也無法自行查找你電腦上已有的貪吃蛇代碼,除非你手動復制給它。這意味著大模型既無法感知外部環境(如文件內容、目錄結構),也無法改變外部環境(如寫入文件、運行命令)。
那么,如何解決這個問題呢?答案是:給大模型接上對應的工具。這些工具就像大模型的感官和四肢,比如讀取文件內容的工具、查看文件列表的工具、運行終端命令的工具等。有了它們,大模型就可以自行查詢文件、寫入代碼、運行程序,整個過程無需我們手動干預,完全自動化。
Agent的定義:將一個大模型和一堆工具組裝起來,使其成為一個能夠感知和改變外界環境的智能程序,我們稱之為Agent。通常,Agent用一個機器人來表示,這與大模型的大腦圖標形成了鮮明對比,因為Agent擁有了“感官和四肢”,能夠獨立行動,就像一個機器人一樣。
Agent的類型多種多樣,擅長領域也各不相同。例如:
- 編程類Agent:如Cursor,用戶只需提交任務,它就會利用大模型和各種工具來編寫代碼,直到任務完成。整個過程中,用戶基本無需操作,只需偶爾點擊確認。
- 信息查詢/處理類Agent:如前段時間比較火的MUS,用戶希望比較幾款手機的性能和拍照能力,MUS會生成執行計劃,搜索并瀏覽相關網頁,最終整理成一個報告頁面展示給用戶,整個過程也基本無需用戶插手。
二、Agent的運行模式:ReAct
Agent的運行模式有很多種,其中最有名、使用最廣泛的一種是ReAct。
1. ReAct模式的核心理念與循環
ReAct是Reasoning and Acting(思考與行動)的縮寫。它最初由2022年10月的一篇論文提出,盡管已有近三年時間,其提出的Agent運行模式至今仍被廣泛使用。
在ReAct模式下,Agent的運行流程是一個持續的循環:
- 用戶提交任務。
- Thought(思考):Agent首先進行思考,決定接下來要做什么。
- Action(行動):思考后,Agent決定是否調用工具。如果需要,它會調用合適的工具(如讀取文件、寫入文件內容等)。請注意,這里大模型是請求調用工具,實際執行工具的是Agent的工具調用組件。
- Observation(觀察):Agent查看工具的執行結果,例如所讀取的文件內容或寫入是否成功。
- 循環:在觀察之后,Agent會繼續思考,再次判斷是否需要調用工具。如果仍然需要,它會重復Thought -> Action -> Observation的流程,直到它認為不再需要調用工具,可以直接給出結論為止。
- Final Answer(最終答案):當Agent認為任務完成時,它會輸出最終答案,整個流程結束。
因此,ReAct流程的核心要素是:Thought、Action、Observation和Final Answer。
2. ReAct模式的實現奧秘:系統提示詞
為什么大模型拿到用戶問題后會先思考再行動,而不是直接行動呢?這與模型的訓練過程關系不大,大部分奧秘都集中在系統提示詞(System Prompt)上。
系統提示詞是與用戶問題一起發送給大模型的提示詞,它規定了模型的角色、運行時要遵守的規則,以及各種環境信息等。如果希望模型按照ReAct模式返回答案,系統提示詞就會比較復雜。
一個典型的ReAct系統提示詞大致包含五個部分:
- 職責描述:明確告訴模型它需要解決一個任務,并將任務分解為多個步驟。對于每個步驟,首先使用thought標簽思考,然后使用action標簽調用工具,工具的執行結果通過observation返回,并持續這個思考和行動的過程,直到有足夠的信息提供final answer。
- 示例:提供具體的ReAct流程示例,例如用戶提問、模型思考、調用工具、觀察結果、再次思考并給出最終答案的完整對話示例。這有助于模型理解并遵循預設的交互規范。
- 可用工具:列舉Agent可用的工具列表及其功能說明,例如用于讀取文件內容、寫入文件內容、運行終端命令的工具等。
- 注意事項:提供一些操作上的注意點。
- 環境信息:告知大模型當前的操作系、目錄以及目錄下的文件列表等相關環境信息。
通過將這樣的系統提示詞和用戶任務一起提交給大模型,大模型就會遵循這些規范來輸出答案,從而實現ReAct模式的運行。
圖片
3. ReAct模式的實際運行演示
以DeepSeek為例,當我們將包含ReAct規范的系統提示詞和“寫一個貪吃蛇游戲”的任務提交給它時,DeepSeek會按照要求先在thought標簽中思考,然后使用action標簽請求調用write_to_file工具來寫入index.html文件內容。
在實際的Agent中,當大模型請求調用工具后,Agent的工具調用組件會真正執行該工具,例如將HTML內容寫入文件。然后工具的執行結果(如“寫入成功”)會作為observation返回給Agent主程序,Agent主程序再將其加入到歷史消息列表,并再次發送給大模型。模型拿到工具的執行結果后,就能根據結果推測下一步要干什么,繼續進行思考(thought),并請求寫入CSS、JS文件。當所有文件寫入完成后,大模型在thought之后會返回一個final answer,整個回答過程便徹底結束。
這個過程完美體現了ReAct的運行節奏:Thought -> Action -> Observation,直到任務完成,輸出Thought -> Final Answer。系統提示詞相當于給模型安排了一個迷你劇本,模型會嚴格按照這個劇本一步一步走完。
一個完整的ReAct Agent,其核心代碼在于一個run函數。這個函數內部構建了一個消息列表,包含系統提示詞和用戶問題,然后調用模型獲取執行結果。它會提取返回結果中的thought部分并打印,然后檢測是否包含final answer。如果不是,就解析出action,提取函數名和參數,并執行對應的工具。工具執行結果會被放入observation并添加到消息列表,然后循環再次請求模型,直到模型返回final answer。
三、Agent的另一運行模式:Plan and Execute
除了ReAct,還有許多其他Agent的運行模式。其中一種常見的模式是先規劃再執行。這類模式并沒有統一的名稱,且每個Agent的實現細節可能有所不同。這里我們介紹一個比較有名的實現:由LangChain提出的Plan and Execute模式。
從總體上看,Plan and Execute模式也遵循了先規劃再執行的流程,但它引入了一些動態修改規劃的環節,使其方案更加靈活。
1. Plan and Execute模式的組成模塊
Plan and Execute Agent內部包含以下幾個關鍵模塊:
- Plan模型(Plan Model):負責根據用戶問題生成具體的執行步驟或計劃。
- Replan模型(Replan Model):負責根據每一步的執行結果動態調整或生成新的執行計劃。Plan模型和Replan模型可以是同一個模型,也可以是不同的模型。
- 執行Agent(Execution Agent):負責執行計劃中的每一個步驟。這個執行Agent本身也可以使用我們前面講到的ReAct模式來運行。
- Agent主程序:負責串聯整個流程,在合適的時機調用Plan模型、Replan模型或執行Agent。
2. Plan and Execute模式的運行流程
整個流程中,用戶、Plan and Execute Agent內部的各個模塊(Plan模型、Replan模型、執行Agent)以及Agent主程序之間協同工作。
1) 用戶提交任務:用戶將問題(例如:“今年澳網男子冠軍的家鄉在哪里?”)提交給Agent主程序。
2)生成初始計劃:Agent主程序將用戶問題發送給Plan模型,讓它給出具體的執行步驟(例如:先查詢當前日期,然后查詢當前年份的澳網男子冠軍名字,再根據名字查詢冠軍家鄉)。
3)執行計劃步驟:計劃有了之后,Agent主程序會將計劃傳給執行Agent,讓它執行計劃中的第一步(例如:查詢當前日期)。執行Agent完成操作后,會返回執行結果。
4)動態調整計劃/生成新計劃:Agent主程序會把用戶問題、當前執行計劃和歷史執行記錄都發送給Replan模型,讓它生成一個新的執行計劃。由于拿到了第一步的執行結果,情況可能發生變化,因此修改原計劃是正常的。新的計劃會剔除已完成的步驟,并可能根據新信息使后續步驟更精確。
5) 循環執行與Replan:Agent主程序接到新的執行計劃后,會繼續重復這個“執行計劃步驟”和“動態調整計劃”的循環。這個循環會一直進行,直到所有計劃中的步驟都已完成。
6) 輸出最終答案:在最后一輪循環中,當Replan模型發現所有步驟都已完成,用戶的問題可以回答出來時,它返回的就不是最新的執行計劃,而是最終的答案。Agent主程序接到這個最終答案后,便會將其轉發給用戶,整個流程結束。
因此,Replan模型的返回結果有兩種可能性:新的執行計劃或最終答案。
四、總結
Agent作為大模型熱潮下興起的重要概念,通過將大模型與各種工具相結合,極大地擴展了其感知和改變外部環境的能力。無論是循環思考與行動的ReAct模式,還是先規劃后動態執行的Plan and Execute模式,都為Agent賦予了強大的自動化和問題解決能力。
理解Agent的概念、運行原理以及不同構建模式,是深入掌握AI前沿技術,并將其應用于實際場景的關鍵。隨著Agent技術的不斷成熟,我們可以預見它們將在編程、信息檢索、自動化辦公等更多領域發揮越來越重要的作用,真正成為我們身邊的智能助手。
































