什么是AI Agent?
1概念
在計(jì)算機(jī)、人工智能專(zhuān)業(yè)技術(shù)領(lǐng)域,一般將Agent譯為“智能體”,其定義是在一定的環(huán)境中體現(xiàn)出自治性、反應(yīng)性、社會(huì)性、預(yù)動(dòng)性、思辨性(慎思性)、認(rèn)知性等一種或多種智能特征的軟件或硬件實(shí)體。AI Agent則是指由LLM驅(qū)動(dòng)的智能體。目前它還沒(méi)有一個(gè)被廣泛接受的定義,但我們可以把它描述成這樣一個(gè)系統(tǒng):利用LLM推理問(wèn)題,能自行創(chuàng)建解決問(wèn)題的計(jì)劃,會(huì)借助一系列工具來(lái)執(zhí)行計(jì)劃。
簡(jiǎn)而言之,AI Agent是一個(gè)具有復(fù)雜推理能力、記憶力以及執(zhí)行任務(wù)能力的系統(tǒng),如下圖所示:

AI Agent由以下核心組件構(gòu)成:
- 智能體核心
中央?yún)f(xié)調(diào)模塊,管理核心邏輯和智能體行為特點(diǎn),能進(jìn)行關(guān)鍵決策。我們需要在這里定義以下內(nèi)容:
智能體的總體目標(biāo)智能體要達(dá)成的總體目標(biāo)和目的。
執(zhí)行工具智能體可以使用的所有工具的簡(jiǎn)短列表(或“用戶(hù)手冊(cè)”)。
如何使用計(jì)劃模塊的解釋說(shuō)明詳細(xì)說(shuō)明不同計(jì)劃模塊的作用,以及在什么情況下使用。
相關(guān)記憶這是一個(gè)動(dòng)態(tài)部分,填充與用戶(hù)過(guò)往對(duì)話(huà)中最相關(guān)的內(nèi)容。“相關(guān)性”是根據(jù)用戶(hù)提出的問(wèn)題判斷的。
智能體個(gè)性(可選)如果要求LLM偏向于使用某些類(lèi)型的工具,或者在最終響應(yīng)里展現(xiàn)某些特點(diǎn),則可以將所需個(gè)性描述清楚。
下圖是一個(gè)求解用戶(hù)問(wèn)題“2024財(cái)年Q1與Q2之間,利潤(rùn)增長(zhǎng)了多少?”的提示模板:

當(dāng)把提示輸入給LLM后,LLM做出的決策是需要使用搜索工具:

- 記憶模塊
記憶模塊扮演非常重要的作用,記錄了智能體內(nèi)部日志以及和用戶(hù)交互歷史。有2種類(lèi)型的記憶模塊:
短期記憶智能體嘗試回答用戶(hù)提出的單個(gè)問(wèn)題而經(jīng)歷的思考和行動(dòng)。通常就是提示工程中的上下文,超過(guò)上下文的限制后,LLM就會(huì)忘記之前輸入的信息。
長(zhǎng)期記憶用戶(hù)和智能體交互相關(guān)的行為和想法,包含跨度數(shù)周或數(shù)月的對(duì)話(huà)記錄。通常是一個(gè)外部的向量庫(kù),可以幾乎無(wú)限地保留和快速取回歷史信息。
記憶模塊不僅需要基于語(yǔ)義相似性的檢索。通常,綜合評(píng)分由語(yǔ)義相似性、重要性、新近程度,以及其它特定指標(biāo)構(gòu)成。記憶模塊用于檢索特定信息。
- 工具集
工具集是定義明確的可執(zhí)行工作流,智能體使用它們來(lái)執(zhí)行任務(wù)。通常,工具集就是專(zhuān)門(mén)的第三方API。
例如,智能體可以使用RAG(檢索增強(qiáng)生成)根據(jù)上下文生成答案;使用代碼解釋器(如Python腳本解釋器)來(lái)編程求解復(fù)雜任務(wù);使用API從互聯(lián)網(wǎng)搜索信息;或者使用任何簡(jiǎn)單的API服務(wù),如使用天氣API獲取天氣預(yù)報(bào)、使用即時(shí)消息API收發(fā)消息。
- 計(jì)劃模塊
復(fù)雜的問(wèn)題,例如分析一組財(cái)務(wù)報(bào)表以回答上層業(yè)務(wù)問(wèn)題,通常需要循序漸進(jìn)的方法。對(duì)于由LLM驅(qū)動(dòng)的智能體,計(jì)劃能力本質(zhì)是Prompt Engineering(提示工程)很多高級(jí)玩法的高級(jí)實(shí)踐。可以通過(guò)使用兩種技術(shù)的組合來(lái)應(yīng)對(duì)復(fù)雜問(wèn)題:
任務(wù)和問(wèn)題分解
復(fù)合問(wèn)題或推斷信息需要某種形式的分解。例如這個(gè)問(wèn)題“2024財(cái)年Q1與Q2之間,利潤(rùn)增長(zhǎng)了多少?”
該問(wèn)題可以分解為多個(gè)子問(wèn)題:
“Q1的利潤(rùn)是多少?”
“Q2的利潤(rùn)是多少?”
“上述兩項(xiàng)結(jié)果之間的差是多少?”
專(zhuān)門(mén)的AI Agent必須能主導(dǎo)這種分解,例如采用下面的提示模版:

當(dāng)填入具體問(wèn)題輸入給LLM后,LLM會(huì)做出問(wèn)題拆解結(jié)果的響應(yīng):

反思或批判
ReAct(推理和動(dòng)作協(xié)同)、Reflexion(反思)、Chain of Thought(思維鏈)和Graph of Thought(思維圖)等技術(shù)已成為基于批判或基于證據(jù)的提示框架。它們已被廣泛用于提高LLM的推理能力和響應(yīng)能力。這些技術(shù)還可用于優(yōu)化智能體生成的執(zhí)行計(jì)劃。
例如LangChain智能體框架支持的ReAct,即Reason+Act模式,把復(fù)雜問(wèn)題拆開(kāi),有些缺少的內(nèi)容通過(guò)工具從外部獲取,然后補(bǔ)充到問(wèn)題回答里。
ReAct的提示模版一般包含這些內(nèi)容的多次重復(fù):

舉例問(wèn)題“除了Apple Remote之外,還有什么設(shè)備可以控制Apple Remote原生設(shè)計(jì)用來(lái)交互的程序?”
ReAct會(huì)按如下的步驟思考和行動(dòng):
- 第1次思考:我需要找到Apple Remote原生設(shè)計(jì)用來(lái)交互的程序。第1次行動(dòng):去搜索引擎搜索【Apple Remote】。從而取得關(guān)于Apple Remote的介紹。
- 第2次思考:在結(jié)果中找到Apple Remote原生設(shè)計(jì)用來(lái)控制Front Row程序,我需要查找Front Row的信息。第2次行動(dòng):搜索【Front Row】。搜索引擎返回沒(méi)找到相關(guān)信息。
- 第3次思考:我應(yīng)該加上“軟件”重新搜索。第3次行動(dòng):搜索【Front Row(軟件)】。取得Front Row軟件的介紹。
- 第4次思考:在結(jié)果中發(fā)現(xiàn)關(guān)鍵信息:Front Row軟件可以被Apple Remote或鍵盤(pán)多功能按鍵控制。第4次行動(dòng):完成,返回用戶(hù)答案【鍵盤(pán)多功能按鍵】。
這個(gè)過(guò)程如下圖所示:

2挑戰(zhàn)
基于LLM去構(gòu)建Agent,目前也有一系列挑戰(zhàn) :
- 有限的上下文長(zhǎng)度?
有限的上下文長(zhǎng)度限制了對(duì)歷史信息、詳細(xì)指令、API調(diào)用上下文、API響應(yīng)的容納量。Agent的系統(tǒng)設(shè)計(jì)必須在有限的通信帶寬中工作。與之矛盾的是,像“自我反思”這種機(jī)制若想要取得更好的效果,則需要更長(zhǎng)甚至無(wú)限的上下文窗口。雖然向量存取能提供訪(fǎng)問(wèn)更大知識(shí)庫(kù)的能力,但它的表現(xiàn)力并不像上下文內(nèi)的注意力機(jī)制那么強(qiáng)大。
- 長(zhǎng)期計(jì)劃和任務(wù)拆解能力不足?
在針對(duì)長(zhǎng)期歷史做計(jì)劃、有效地探索解決問(wèn)題時(shí),Agent還面臨挑戰(zhàn)。LLM在面對(duì)未知錯(cuò)誤時(shí),調(diào)整計(jì)劃顯得非常艱難。和人類(lèi)從失敗教訓(xùn)中學(xué)習(xí)相比,LLM還不夠強(qiáng)大。
- 自然語(yǔ)言接口不夠可靠?
當(dāng)前的Agent體系非常依賴(lài)使用自然語(yǔ)言作為L(zhǎng)LM和外部組件(比如記憶和工具)的接口。然而,LLM本身的輸出是存有疑慮的,LLM經(jīng)常犯語(yǔ)法格式錯(cuò)誤,也時(shí)常產(chǎn)生違抗表現(xiàn)(比如不遵照用戶(hù)指令)。以致于很多Agent都在解析模型輸出上花了很多功夫。
3展望
生成式AI的智能革命演化至今,人類(lèi)與AI協(xié)同出現(xiàn)了三種模式:

在Agents(智能體)模式下人類(lèi)設(shè)定目標(biāo)和提供必要的資源,然后AI獨(dú)立地承擔(dān)大部分工作,最后人類(lèi)監(jiān)督進(jìn)程以及評(píng)估最終結(jié)果。這種模式下,AI充分體現(xiàn)了智能體的互動(dòng)性、自主性和適應(yīng)性特征,接近于獨(dú)立的行動(dòng)者,而人類(lèi)則更多地扮演監(jiān)督者和評(píng)估者的角色。Agents模式相較于Embedding(嵌入)模式、Copilot(副駕駛)模式無(wú)疑更為高效,或?qū)⒊蔀槲磥?lái)人機(jī)協(xié)同的主要模式。
AI Agent是人工智能成為基礎(chǔ)設(shè)施的重要推動(dòng)力。回顧技術(shù)發(fā)展史,技術(shù)的盡頭是成為基礎(chǔ)設(shè)施,比如電力成為像空氣一樣不易被人們察覺(jué),但是又必不可少的基礎(chǔ)設(shè)施,還如云計(jì)算等。幾乎所有的人都認(rèn)同,人工智能會(huì)成為未來(lái)社會(huì)的基礎(chǔ)設(shè)施。而智能體正在促使人工智能基礎(chǔ)設(shè)施化。AI Agent能夠適應(yīng)不同的任務(wù)和環(huán)境,并能夠?qū)W習(xí)和優(yōu)化其性能,使得它可以被應(yīng)用于廣泛的領(lǐng)域,進(jìn)而成為各個(gè)行業(yè)和社會(huì)活動(dòng)的基礎(chǔ)支撐。
參考文獻(xiàn)
[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/

















