AI Agent技術(shù)的最新進(jìn)展與改變世界的典型項(xiàng)目巡禮1. AI Agent 技術(shù)發(fā)展以及典型項(xiàng)目1.0 前 AI Agent 時(shí)代![]() 在學(xué)術(shù)探索的浩瀚星空中,機(jī)器人技術(shù)領(lǐng)域的璀璨明珠莫過于Agent技術(shù)的深入研究,這一領(lǐng)域歷來是創(chuàng)新與突破的溫床?;厮葜链竽P屠顺迸d起之前,Agent技術(shù)的輝煌篇章便已悄然鋪展,諸如Alphago這樣的里程碑式案例,以其卓越的環(huán)境感知、精準(zhǔn)決策與高效行動(dòng)能力,生動(dòng)詮釋了Agent技術(shù)的閉環(huán)魅力。同時(shí),DeepMind的Agent57在強(qiáng)化學(xué)習(xí)領(lǐng)域的游戲挑戰(zhàn)中嶄露頭角,而隨后問世的Gato則展現(xiàn)了更為廣泛的適用性,乃至OpenAI在“躲貓貓”游戲中展現(xiàn)的多智能體協(xié)作,無不預(yù)示著Agent技術(shù)的無限潛力。 展望未來,我們堅(jiān)信Agent技術(shù)將成為驅(qū)動(dòng)社會(huì)全面自動(dòng)化的核心引擎。與以往側(cè)重于結(jié)構(gòu)化環(huán)境下通過既定算法實(shí)現(xiàn)的自動(dòng)化不同,大模型的興起為Agent技術(shù)賦予了前所未有的通用性與靈活性。這一轉(zhuǎn)變,意味著Agent將能夠跨越傳統(tǒng)界限,深入人類腦力勞動(dòng)的復(fù)雜長尾領(lǐng)域,從體力到腦力,全方位推進(jìn)自動(dòng)化的深度與廣度。 大模型與Agent技術(shù)的融合,正引領(lǐng)我們步入一個(gè)全面自動(dòng)化的新紀(jì)元。大模型作為知識海洋中的自主學(xué)習(xí)者,為Agent提供了前所未有的智慧源泉,激發(fā)了其快速發(fā)展的新動(dòng)能。當(dāng)前,盡管我們?nèi)蕴幱谶@一變革的初期,Agent技術(shù)更多以實(shí)驗(yàn)性、探索性的面貌呈現(xiàn),但展望未來,其發(fā)展前景之廣闊,變化速度之迅猛,或?qū)⒊跛腥说念A(yù)料。隨著技術(shù)的日新月異,我們或許會(huì)發(fā)現(xiàn),所謂的“天花板”不過是通往更高境界的階梯,而Agent技術(shù)的極限,正等待著我們共同去探索與定義。 1.1 AI等級劃分基于Agent(智能體)能力的AI等級劃分,可以借鑒類似自動(dòng)駕駛級別的劃分方式,將AI智能體的能力從低到高進(jìn)行分級。以下是一個(gè)簡化的AI Agent能力劃分描述: AI Agent能力劃分:
![]()
![]() 1.2 Prompt 工程![]()
這一過程,被業(yè)界形象地稱為“工具模式”,它深刻體現(xiàn)了大模型作為高級認(rèn)知工具的價(jià)值所在。在此模式下,大模型不再僅僅是靜態(tài)的數(shù)據(jù)處理器,而是轉(zhuǎn)變?yōu)槟軌蚋鶕?jù)用戶意圖靈活應(yīng)變、高效執(zhí)行復(fù)雜任務(wù)的智能助手。這種將大模型工具化的探索,不僅極大地拓寬了技術(shù)的應(yīng)用邊界,也為人工智能領(lǐng)域的研究與實(shí)踐開辟了新的思路與方向。 案例:15000 字符的 prompt 工程,扮演人類導(dǎo)師 ![]() https://github.com/JushBJJ/Mr.-Ranedeer-AI-Tutor 剛興趣的同學(xué)可以用自己嘗試一下: prompt 強(qiáng)化了 LLM 的能力,但以下的問題依然無法解決:
![]()
1.2.2 分而治之 - 古老的思想依然有效
![]() 1.2.3 step-by-step![]()
思維鏈的引入,標(biāo)志著人工智能模型解答問題方式的重大轉(zhuǎn)變。它強(qiáng)調(diào)模型需展現(xiàn)其內(nèi)在的邏輯推理過程,而非僅僅呈現(xiàn)最終答案。這一過程可通過雙軌并行實(shí)現(xiàn):一是詳盡闡述法,即模型被要求逐步、細(xì)致地展示其思考軌跡,確保每一步推理的透明度與邏輯性;二是范例引導(dǎo)法,通過提供包含完整思考路徑的示例問題與答案,引導(dǎo)模型在面臨新問題時(shí)模仿此過程,循序漸進(jìn)地推導(dǎo)答案。隨著實(shí)踐的深入,我們進(jìn)一步探索了CoT的潛力,發(fā)現(xiàn)當(dāng)單一思維鏈遭遇障礙時(shí),通過發(fā)散性思考,即CoT-SC(Chain of Thought with Strategic Convergence),模型能嘗試多種解題路徑,并通過投票機(jī)制篩選出最優(yōu)解,從而增強(qiáng)了解的魯棒性與多樣性。 ![]() ![]()
面對CoT-SC在某些復(fù)雜問題(如24點(diǎn)游戲)上的局限性,我們轉(zhuǎn)而探索思維樹的構(gòu)建。ToT策略將問題視為一個(gè)根系龐大的樹木,其主干代表核心問題,而每一分支則是對該問題的不同分解路徑。每個(gè)節(jié)點(diǎn)代表一個(gè)子問題,隨著樹的層層展開,解空間被細(xì)致劃分,同時(shí),不合適的分支被有效剪除,以優(yōu)化搜索效率。然而,ToT在處理需要高度整合子問題結(jié)果的任務(wù)(如排序算法中的合并步驟)時(shí)仍顯不足。 ![]()
為解決ToT的整合難題,思維圖應(yīng)運(yùn)而生。GoT不僅繼承了ToT的分解能力,更增添了靈活的合并機(jī)制,使得模型能夠在復(fù)雜問題中自由穿梭于分解與整合之間,構(gòu)建出既全面又精確的解決方案圖。這一創(chuàng)新,標(biāo)志著AI在復(fù)雜問題求解能力上的又一飛躍。 ![]()
清華姚期智團(tuán)隊(duì)在思維推理領(lǐng)域取得了突破性進(jìn)展,提出了累計(jì)推理方法。該方法在解決24點(diǎn)問題上已展現(xiàn)出高達(dá)98%的成功率,樹立了新的技術(shù)標(biāo)桿。其核心理念與主流Agent的實(shí)現(xiàn)方式相契合,強(qiáng)調(diào)通用性與實(shí)用性。累計(jì)推理首先孕育一個(gè)初步假設(shè),隨后通過不斷驗(yàn)證與迭代,逐步構(gòu)建并完善推理圖。每個(gè)新節(jié)點(diǎn)都建立在穩(wěn)固的已有基礎(chǔ)上,通過發(fā)散、合并或修正,直至達(dá)成最終目標(biāo)狀態(tài)。這一過程不僅增強(qiáng)了推理的完備性,還賦予了模型前所未有的靈活性,為人工智能在更廣泛領(lǐng)域的應(yīng)用開辟了新的可能性。 ![]() 1.2.4 基于反饋的 ReACT-Synergizing Reasoning and Acting上述的討論主要是任務(wù)分解和組合,他們盡管強(qiáng)大,卻不能與外界進(jìn)行互動(dòng),這就不得不講到反饋機(jī)制了。 ReACT機(jī)制的核心在于將推理和行動(dòng)緊密結(jié)合,使語言模型能夠交替地產(chǎn)生推理路徑(Thought)和文本動(dòng)作(Action),以解決不同的語言推理和決策任務(wù)。具體來說,ReACT通過以下幾個(gè)步驟實(shí)現(xiàn)這一目標(biāo):
![]() 1.2.5 Reflexion
傳統(tǒng)的強(qiáng)化學(xué)習(xí)方法在訓(xùn)練大型語言模型時(shí)面臨諸多挑戰(zhàn),如需要大量的訓(xùn)練樣本和昂貴的模型微調(diào)成本。此外,傳統(tǒng)的標(biāo)量或向量獎(jiǎng)勵(lì)信號往往難以準(zhǔn)確反映智能體在執(zhí)行任務(wù)過程中的具體表現(xiàn)。Reflexion方法通過引入語言反饋機(jī)制,旨在解決這些問題,使語言智能體能夠快速有效地從錯(cuò)誤經(jīng)驗(yàn)中學(xué)習(xí)。
Reflexion方法的核心在于將傳統(tǒng)強(qiáng)化學(xué)習(xí)中的獎(jiǎng)勵(lì)信號轉(zhuǎn)化為語言反饋信號(Verbal Reinforcement),并將其作為附加的上下文信息嵌入到大型語言模型中。具體來說,Reflexion框架包含以下幾個(gè)關(guān)鍵組件:
Reflexion的執(zhí)行過程是一個(gè)迭代過程,包括Actor生成動(dòng)作、Evaluator評估動(dòng)作、Self-Reflexion生成反思并存儲(chǔ)結(jié)果等步驟。通過不斷重復(fù)這個(gè)過程,智能體能夠逐漸從錯(cuò)誤經(jīng)驗(yàn)中學(xué)習(xí),并在未來的任務(wù)中做出更好的決策。 ![]() 2. AI Agent
在 LLM 語境下,Agent 可以理解為某種能自主理解、規(guī)劃決策、執(zhí)行復(fù)雜任務(wù)的智能體。Agent 并非 ChatGPT 升級版,它不僅告訴你 “如何做”,更會(huì)幫你去做。如果 CoPilot 是副駕駛,那么 Agent 就是主駕駛。 2.1 AI Agent 系統(tǒng)組成![]() ![]()
![]() 2.2 Agent 項(xiàng)目(單/多智能體)![]() 多智能體系統(tǒng)相較于單智能體系統(tǒng)(如AutoGPT)在多個(gè)方面展現(xiàn)出顯著的優(yōu)勢,這些優(yōu)勢使得多智能體在處理復(fù)雜任務(wù)時(shí)更為高效、靈活和穩(wěn)定。
Auto-GPT
例子:
![]() 框架結(jié)構(gòu)簡單,但其設(shè)計(jì)理念具有重要意義,后續(xù)框架設(shè)計(jì)的思路都有這個(gè)的影子
AutoGen
論文鏈接: 項(xiàng)目鏈接: ![]() ![]() ![]() user_proxy (to assistant):What date is today? Compare the year-to-date gain for META and TESLA.--------------------------------------------------------------------------------assistant (to user_proxy):First, let's get the current date. We can do this using Python's built-in datetime module. Here is the Python code to get the current date:import datetime Get the current datecurrent_date = datetime.date.today()print('Today's date is:', current_date)Next, we need to get the year-to-date (YTD) gain for META (Facebook) and TESLA. We can do this by using a financial data API such as Yahoo Finance. We will need to get the stock price at the start of the year and the current stock price, then calculate the percentage change.However, as an AI, I'm unable to execute real-time web requests or access external APIs. I recommend using the `yfinance` library in Python to download the stock data. Here is an example of how you can do it:import yfinance as yf#Download stock datameta_data = yf.download('META', start='2022-01-01', end=current_date)tesla_data = yf.download('TSLA', start='2022-01-01', end=current_date)#Calculate YTD gainmeta_ytd_gain = ((meta_data['Close'][-1] - meta_data['Close'][0]) / meta_data['Close'][0]) * 100tesla_ytd_gain = ((tesla_data['Close'][-1] - tesla_data['Close'][0]) / tesla_data['Close'][0]) * 100print('META YTD gain: ', meta_ytd_gain)print('TESLA YTD gain: ', tesla_ytd_gain)Please note that you need to install the `yfinance` library before running the above code. You can install it using pip:pip install yfinancePlease replace `current_date` in the above code with the actual date you got from the first code.-------------------------------------------------------------------------------->>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...>>>>>>>> EXECUTING CODE BLOCK 1 (inferred language is python)...user_proxy (to assistant):exitcode: 1 (execution failed)Code output: Today's date is: 2023-10-17Traceback (most recent call last): File '', line 4, in <module> meta_data = yf.download('META', start='2022-01-01', end=current_date)NameError: name 'current_date' is not defined--------------------------------------------------------------------------------assistant (to user_proxy):I apologize for the confusion. The `current_date` variable was defined in the first script and it's not available in the second script. Let's combine the two scripts into one so that the `current_date` variable can be used in the second part of the script. Here is the combined script:import datetimeimport yfinance as yf#Get the current datecurrent_date = datetime.date.today()print('Today's date is:', current_date)#Download stock datameta_data = yf.download('META', start='2022-01-01', end=current_date)tesla_data = yf.download('TSLA', start='2022-01-01', end=current_date)#Calculate YTD gainmeta_ytd_gain = ((meta_data['Close'][-1] - meta_data['Close'][0]) / meta_data['Close'][0]) * 100tesla_ytd_gain = ((tesla_data['Close'][-1] - tesla_data['Close'][0]) / tesla_data['Close'][0]) * 100print('META YTD gain: ', meta_ytd_gain)print('TESLA YTD gain: ', tesla_ytd_gain)Please run this script to get the current date and the year-to-date gain for META and TESLA.-------------------------------------------------------------------------------->>>>>>>> EXECUTING CODE BLOCK 0 (inferred language is python)...user_proxy (to assistant):exitcode: 0 (execution succeeded)Code output: Today's date is: 2023-10-17[*********************100%%**********************] 1 of 1 completed[*********************100%%**********************] 1 of 1 completedMETA YTD gain: -5.136767947511282TESLA YTD gain: -36.50836025922416--------------------------------------------------------------------------------assistant (to user_proxy):The current date is October 17, 2023. The year-to-date (YTD) gain for META (Facebook) is approximately -5.14%, indicating a decrease in value since the start of the year.The YTD gain for TESLA is approximately -36.51%, indicating a significant decrease in value since the start of the year.Please note that these values are based on the closing prices of the stocks and can vary slightly depending on the source of the data.TERMINATE-------------------------------------------------------------------------------- ![]()
XAgent項(xiàng)目鏈接: 官方博文: ![]()
![]() ![]()
![]() OPENAI Assistants![]()
MetaGPTMetaGPT是一種創(chuàng)新的多智能體協(xié)作框架,其名字來源于“GPT-based Meta-Programming framework”,旨在通過分配不同的角色給生成式預(yù)訓(xùn)練變換器(GPTs),形成一個(gè)協(xié)作的軟件實(shí)體以完成復(fù)雜任務(wù)。
論文鏈接: GitHub地址: ![]() ![]() ![]()
適合人群:需要復(fù)雜的多代理交互和預(yù)定義復(fù)雜行為的項(xiàng)目。非常適合網(wǎng)絡(luò)密集型異步操作和需要高級協(xié)作功能而無需大量定制的項(xiàng)目 AutoAgents項(xiàng)目鏈接: AutoAgents的過程是分為兩個(gè)關(guān)鍵階段:Drafting 階段和Execution階段。Drafting階段包括三個(gè)預(yù)定義agent(Planner、Agent Observer和Plan Observer)之間的協(xié)作討論來綜合定制的agent團(tuán)隊(duì)和適合輸入問題的執(zhí)行計(jì)劃或任務(wù)。Execution階段通過agent間協(xié)作和反饋完善計(jì)劃,以及產(chǎn)生最終結(jié)果。論文提出self-refinement ,通過個(gè)體agent和協(xié)作進(jìn)行自我完善通過多個(gè)agent進(jìn)行細(xì)化,以提高agent的熟練程度并促進(jìn)各agent之間的知識共享agents。為了促進(jìn)合成團(tuán)隊(duì)中agents之間的具體分工,作者引入預(yù)定義的agent(Action Observer)以協(xié)助agents團(tuán)隊(duì)共享信息,協(xié)調(diào)行動(dòng),達(dá)成共識,適應(yīng)環(huán)境。 ![]() crewAI![]() 項(xiàng)目代碼:
更多項(xiàng)目BabyAGI、CAMEL、DSPy、OpenAgents、Agents、AgentVerse、ChatDev、LangGraph |
|