什么是AI Agent?
1概念
在計算機、人工智能專業技術領域,一般將Agent譯為“智能體”,其定義是在一定的環境中體現出自治性、反應性、社會性、預動性、思辨性(慎思性)、認知性等一種或多種智能特征的軟件或硬件實體。AI Agent則是指由LLM驅動的智能體。目前它還沒有一個被廣泛接受的定義,但我們可以把它描述成這樣一個系統:利用LLM推理問題,能自行創建解決問題的計劃,會借助一系列工具來執行計劃。
簡而言之,AI Agent是一個具有復雜推理能力、記憶力以及執行任務能力的系統,如下圖所示:
AI Agent由以下核心組件構成:
- 智能體核心
中央協調模塊,管理核心邏輯和智能體行為特點,能進行關鍵決策。我們需要在這里定義以下內容:
智能體的總體目標智能體要達成的總體目標和目的。
執行工具智能體可以使用的所有工具的簡短列表(或“用戶手冊”)。
如何使用計劃模塊的解釋說明詳細說明不同計劃模塊的作用,以及在什么情況下使用。
相關記憶這是一個動態部分,填充與用戶過往對話中最相關的內容?!跋嚓P性”是根據用戶提出的問題判斷的。
智能體個性(可選)如果要求LLM偏向于使用某些類型的工具,或者在最終響應里展現某些特點,則可以將所需個性描述清楚。
下圖是一個求解用戶問題“2024財年Q1與Q2之間,利潤增長了多少?”的提示模板:
當把提示輸入給LLM后,LLM做出的決策是需要使用搜索工具:
- 記憶模塊
記憶模塊扮演非常重要的作用,記錄了智能體內部日志以及和用戶交互歷史。有2種類型的記憶模塊:
短期記憶智能體嘗試回答用戶提出的單個問題而經歷的思考和行動。通常就是提示工程中的上下文,超過上下文的限制后,LLM就會忘記之前輸入的信息。
長期記憶用戶和智能體交互相關的行為和想法,包含跨度數周或數月的對話記錄。通常是一個外部的向量庫,可以幾乎無限地保留和快速取回歷史信息。
記憶模塊不僅需要基于語義相似性的檢索。通常,綜合評分由語義相似性、重要性、新近程度,以及其它特定指標構成。記憶模塊用于檢索特定信息。
- 工具集
工具集是定義明確的可執行工作流,智能體使用它們來執行任務。通常,工具集就是專門的第三方API。
例如,智能體可以使用RAG(檢索增強生成)根據上下文生成答案;使用代碼解釋器(如Python腳本解釋器)來編程求解復雜任務;使用API從互聯網搜索信息;或者使用任何簡單的API服務,如使用天氣API獲取天氣預報、使用即時消息API收發消息。
- 計劃模塊
復雜的問題,例如分析一組財務報表以回答上層業務問題,通常需要循序漸進的方法。對于由LLM驅動的智能體,計劃能力本質是Prompt Engineering(提示工程)很多高級玩法的高級實踐??梢酝ㄟ^使用兩種技術的組合來應對復雜問題:
任務和問題分解
復合問題或推斷信息需要某種形式的分解。例如這個問題“2024財年Q1與Q2之間,利潤增長了多少?”
該問題可以分解為多個子問題:
“Q1的利潤是多少?”
“Q2的利潤是多少?”
“上述兩項結果之間的差是多少?”
專門的AI Agent必須能主導這種分解,例如采用下面的提示模版:
當填入具體問題輸入給LLM后,LLM會做出問題拆解結果的響應:
反思或批判
ReAct(推理和動作協同)、Reflexion(反思)、Chain of Thought(思維鏈)和Graph of Thought(思維圖)等技術已成為基于批判或基于證據的提示框架。它們已被廣泛用于提高LLM的推理能力和響應能力。這些技術還可用于優化智能體生成的執行計劃。
例如LangChain智能體框架支持的ReAct,即Reason+Act模式,把復雜問題拆開,有些缺少的內容通過工具從外部獲取,然后補充到問題回答里。
ReAct的提示模版一般包含這些內容的多次重復:
舉例問題“除了Apple Remote之外,還有什么設備可以控制Apple Remote原生設計用來交互的程序?”
ReAct會按如下的步驟思考和行動:
- 第1次思考:我需要找到Apple Remote原生設計用來交互的程序。第1次行動:去搜索引擎搜索【Apple Remote】。從而取得關于Apple Remote的介紹。
- 第2次思考:在結果中找到Apple Remote原生設計用來控制Front Row程序,我需要查找Front Row的信息。第2次行動:搜索【Front Row】。搜索引擎返回沒找到相關信息。
- 第3次思考:我應該加上“軟件”重新搜索。第3次行動:搜索【Front Row(軟件)】。取得Front Row軟件的介紹。
- 第4次思考:在結果中發現關鍵信息:Front Row軟件可以被Apple Remote或鍵盤多功能按鍵控制。第4次行動:完成,返回用戶答案【鍵盤多功能按鍵】。
這個過程如下圖所示:
2挑戰
基于LLM去構建Agent,目前也有一系列挑戰 :
- 有限的上下文長度?
有限的上下文長度限制了對歷史信息、詳細指令、API調用上下文、API響應的容納量。Agent的系統設計必須在有限的通信帶寬中工作。與之矛盾的是,像“自我反思”這種機制若想要取得更好的效果,則需要更長甚至無限的上下文窗口。雖然向量存取能提供訪問更大知識庫的能力,但它的表現力并不像上下文內的注意力機制那么強大。
- 長期計劃和任務拆解能力不足?
在針對長期歷史做計劃、有效地探索解決問題時,Agent還面臨挑戰。LLM在面對未知錯誤時,調整計劃顯得非常艱難。和人類從失敗教訓中學習相比,LLM還不夠強大。
- 自然語言接口不夠可靠?
當前的Agent體系非常依賴使用自然語言作為LLM和外部組件(比如記憶和工具)的接口。然而,LLM本身的輸出是存有疑慮的,LLM經常犯語法格式錯誤,也時常產生違抗表現(比如不遵照用戶指令)。以致于很多Agent都在解析模型輸出上花了很多功夫。
3展望
生成式AI的智能革命演化至今,人類與AI協同出現了三種模式:
在Agents(智能體)模式下人類設定目標和提供必要的資源,然后AI獨立地承擔大部分工作,最后人類監督進程以及評估最終結果。這種模式下,AI充分體現了智能體的互動性、自主性和適應性特征,接近于獨立的行動者,而人類則更多地扮演監督者和評估者的角色。Agents模式相較于Embedding(嵌入)模式、Copilot(副駕駛)模式無疑更為高效,或將成為未來人機協同的主要模式。
AI Agent是人工智能成為基礎設施的重要推動力?;仡櫦夹g發展史,技術的盡頭是成為基礎設施,比如電力成為像空氣一樣不易被人們察覺,但是又必不可少的基礎設施,還如云計算等。幾乎所有的人都認同,人工智能會成為未來社會的基礎設施。而智能體正在促使人工智能基礎設施化。AI Agent能夠適應不同的任務和環境,并能夠學習和優化其性能,使得它可以被應用于廣泛的領域,進而成為各個行業和社會活動的基礎支撐。
參考文獻
[1]https://arxiv.org/abs/2304.03442
[2] https://arxiv.org/abs/2210.03629
[3] https://lilianweng.github.io/posts/2023-06-23-agent/
[4] https://zhuanlan.zhihu.com/p/641322714
[5] https://developer.nvidia.com/blog/introduction-to-llm-agents/
[6] https://developer.nvidia.com/blog/building-your-first-llm-agent-application/
[7] https://zhuanlan.zhihu.com/p/676828569
[8] https://zhuanlan.zhihu.com/p/643799381
[9] https://zhuanlan.zhihu.com/p/676544930
[10] https://zhuanlan.zhihu.com/p/664281311
[11] https://python.langchain.com/docs/modules/agents/
