
一篇大模型Agent工具使用全面研究綜述
吳恩達教授提出的AI Agent認知框架的4種設計模式
這四種基本的思維框架設計模式分別是:
OpenAI公司的安全系統主管Lilian Weng也提出了一個由大模型驅動的自主Agent系統的架構,其中包含規劃(Planning)、記憶(Memory)、工具(Tools)、執行(Action)四大要素。
在這個架構中,Agent位于中心位置,它通過協同各種組件來處理復雜的任務和決策過程。
圍繞著這個架構,一系列的AI Agent認知框架開始落地。接下來,我們將重點介紹幾種具有代表性的Agent認知框架設計模式及其實現思路。
下面,我們就來說一說主流的7種Agent認知框架的基本思想,并簡明扼要的闡述如何具體實現這些框架。
在代理認知框架的發展史上,具有里程碑意義的是《Chain-of-Thought Prompting》這篇研究論文,它的發表甚至早于ChatGPT的問世。
在大型AI模型的推理能力普遍不足的背景下,這篇論文通過引入一個連貫的思考過程,指導模型進行更深層次的邏輯推理,顯著提高了模型解決復雜問題的能力。這種方法不僅改進了模型的推理過程,還增強了其輸出的可解釋性,使得模型的決策過程對用戶來說更加清晰和易于理解。
論文中所討論的Chain of Thought(簡稱CoT),即思維鏈,是指在解決問題時所經歷的一系列邏輯思考步驟。在人工智能領域,特別是在自然語言處理和機器理解任務中,CoT方法通過模仿人類的思考方式來增強模型的理解和推理能力。通過明確展示解決問題的邏輯步驟,CoT有助于提高模型的透明度和可解釋性。
Chain-of-Thought論文中的思維鏈示例
在設計AI代理時,我們應當汲取其方法論中的核心思想。一旦理解了這些思想,我們就能夠通過精心構建的提示工程模板來實現CoT(Chain of Thought)框架。
以一個例子來說明,假設我們的目標是開發一個AI模型,用于評估個人的信用評分。這是一個典型的金融服務應用場景,涉及到眾多變量和復雜的邏輯判斷。
在CoT框架的指導下,我們可以設計如下的提示,以引導AI模型通過邏輯推理來完成信用評分的評估:
考慮到申請人的以下信息:
– 年齡:35歲
– 年收入:$50,000
– 信用歷史:無違約記錄
– 負債:$10,000的信用卡債務
– 資產:無房產,有一輛值$15,000的汽車
步驟1:評估信用歷史。申請人沒有違約記錄,這是一個積極的信用因素。
步驟2:考慮年收入與負債的比例。申請人的年收入為$50,000,而負債為$10,000,債務收入比為20%,這表明申請人有足夠的收入來覆蓋債務。
步驟3:考慮資產情況。雖然申請人沒有房產,但有一輛汽車,可以作為貸款的擔保。
步驟4:基于以上分析,綜合評估申請人的信用等級。
最終判斷:根據以上邏輯推理,申請人的信用等級應該是中等偏上。
下面是一個使用OpenAI API調用CoT框架的示例,這里使用Python語言進行編程。該代碼講解ai通過發送一個包含邏輯推理步驟的詳細問題描述到模型,從而獲得關于個人信用評估的決策推理。
from openai import OpenAI
client = OpenAI()
completion = client.chat.completions.create(
model="gpt-4", # 使用GPT-4模型
messages=[
{"role": "system", "content": "你是一個專門處理信用評估的智能助手,能夠通過邏輯推理來分析申請人的信用狀況。"},
{"role": "user", "content": """
考慮以下申請人的信息:
- 年齡:35歲
- 年收入:50,000美元
- 信用歷史:無違約記錄
- 負債:10,000美元的信用卡債務
- 資產:無房產
分析步驟如下:
1. 根據年齡、收入和信用歷史來評估違約風險。
2. 考慮負債與收入的比率,判斷負債水平是否合理。
3. 評估無房產的風險因素,考慮是否會影響申請人的償債能力。
根據上述分析步驟,請評估這位申請人的信用等級。
"""}
]
)
print(completion.choices[0].message)
這里,我們構造了一個詳細的提示,引導模型沿著設置的思維鏈路進行邏輯推理。這種方式不僅有助于生成更可解釋的答案,而且能夠提高決策的準確性。
CoT這篇文章是一石激起千層浪,后面研究大模型推理認知的文章就逐漸豐富了起來。
在構建AI代理時,我們經常參考的是其方法論中的思想精華。理解了這些思想之后,我們可以通過精心設計的提示工程模板來實現CoT(Chain of Thought)框架。CoT框架通過模擬人類的思考過程,增強了模型的透明度和可解釋性,使其在處理復雜問題時更加有效。
Self-Ask是CoT的一個擴展,它允許模型自我生成問題,進行自查詢以獲取更多信息,然后基于這些信息生成最終答案。這種方法使模型能夠更深入地探索問題的各個方面,從而提高答案的質量和準確性。
在實際應用中,比如設計一款新的智能手表,我們可以使用Self-Ask框架來考慮用戶的多樣化需求和技術可能性。通過設置一系列的自我提問,模型可以引導自己深入市場和技術分析,激發對潛在創新點的思考。例如,我們可以問自己:“這款手表的目標用戶群體是什么?”、“他們最看重哪些功能?”、“當前市場上的競爭對手有哪些?”、“我們的產品如何在技術參數上超越他們?”等等。通過這樣的自問自答,我們可以更全面地分析問題,從而設計出更符合用戶需求的智能手表。
Self-Ask框架的實現通常包括兩個步驟:首先,模型生成一系列與輸入文本相關的問題;然后,模型根據這些問題給出相應的答案。這一過程不僅增強了模型對輸入文本的理解,而且有助于模型在推理過程中進行自我糾正。
在設計智能手表的過程中,我們可以利用Self-Ask框架來探索和解決各種設計挑戰。例如,我們可以問自己:“如何使手表的界面既美觀又易于操作?”、“在有限的屏幕上,如何展示最關鍵的信息?”、“手表的電池壽命如何優化以滿足用戶的需求?”等等。通過這樣的自我提問和回答,我們可以更深入地思考設計的各個方面,從而創造出一個既實用又具有創新性的智能手表產品。
from openai import OpenAI
client = OpenAI()
completion = client.chat.completions.create(
model="gpt-4", # 使用GPT-4模型
messages=[
{"role": "system", "content": "你是一個專門處理產品設計創新的智能助手,能夠自我生成問題來探索創新的設計解決方案。"},
{"role": "user", "content": """
我們正在開發一款新的智能手表。請分析當前市場上智能手表的主要功能,并提出可能的創新點。
"""},
{"role": "system", "content": "首先,考慮目前市場上智能手表普遍缺乏的功能是什么?"},
{"role": "system", "content": "接下來,探討哪些新增功能可能吸引健康意識強的消費者?"},
{"role": "system", "content": "最后,分析技術上可行的創新功能,這些功能如何通過可穿戴技術實現?"}
]
)
print(completion.choices[0].message)
在這個示例中,通過系統自我生成的問題和回答,不僅引導了深入的市場和技術分析,還激發了對潛在創新點的思考。這種方法有助于在產品設計初期階段就識別和整合創新的元素。
你可以通過Few-shot的方式,以這個樣板為例,讓大模型自己進行更多有創造性的思考,往往能激發我們開始并沒有想到的創意點子。
Critique Revise(批判修正)或 反思(Refection)這個認知框架也叫做Self-Refection,是一種在人工智能和機器學習領域中應用的框架,主要用于模擬和實現復雜決策過程。這種架構基于“批判”和“修正”兩個核心步驟,通過不斷迭代改進來提高系統的性能和決策質量。
Critique Revise 認知架構的目標是通過不斷自我評估和調整,使系統能夠學習并改進決策過程,從而在面對復雜問題時做出更加有效的決策。
假設一家公司正在評估其最近的數字營銷活動效果,以便制定未來的營銷策略。使用 Critique Revise 框架,可以通過以下步驟來優化決策過程:
代碼講解ai實現如下:
from openai import OpenAI
client = OpenAI()
# 執行 Critique 階段
critique_completion = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": "你是一個市場營銷分析助手。"},
{"role": "user", "content": "分析最近一次營銷活動的效果,并指出存在的問題。"}
]
)
# 執行 Revise 階段
revise_completion = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": "你是一個市場策略優化助手。"},
{"role": "user", "content": "根據之前的批判,提出具體的改進措施。"}
]
)
print("Critique Results:", critique_completion.choices[0].message)
print("Revise Suggestions:", revise_completion.choices[0].message)
在這個過程中,AI系統首先執行 Critique 階段,分析和識別問題;然后在Revise 階段,根據識別的問題提出具體的改進措施。這種方法幫助企業深入理解市場動態,精確調整營銷策略,從而實現更有效的市場應對。
Function Calling是一種由OpenAI倡導的AI應用開發框架,它將大型語言模型作為調用預設函數的核心,模型能夠根據用戶的需求智能地決定調用哪些工具。
在OpenAI Assistant中,可調用的工具包括代碼講解ai解釋器(用于數據分析)、函數調用、文件檢索工具等。這種方法特別適合那些需要與現有系統整合或執行特定技術任務的應用場景,例如自動化腳本編寫或復雜的數據分析工作。通過Function Calling框架,開發者可以構建出能夠執行高級任務的智能系統,同時保持系統的靈活性和可擴展性。
Open AI Assistant中的各種工具
當然,工具調用這種框架并不僅僅屬于OpenAI API所專有,LangChain中的Agent也集成了大量的可用工具。
LangChain中的工具和工具箱
關于Agent的工具調用,目前的常見大模型開發框架,都已經形成了非常完備的解決方案。
那么,有了CoT的逐步推理, 有了Refection的反思,又有了工具調用,我們就終于來到了Agent認知框架的集大成者—— ReAct框架
這個框架整合了先前的CoT和Reflection方法,并引入了工具調用功能,進一步增強了模型的交互能力和應用范圍,代表了在Agent認知框架發展中的一個新的里程碑。
ReAct論文中指出,既要有推理,又要有行動
ReAct框架是推理和行動的整合,Reasoning and Acting, ReAct框架的核心思想在于 在思考,觀察和行動 反復循環,迭代,不斷優化解決方案,知道問題最終解決位置,這就不僅使Agent能夠進行復雜的內部推理,還能實時反應并調整其行為以適應不斷變化的環境和需求。
目前,ReAct框架已經被無縫集成至LangChain,開發者可以非常輕松地創建ReAct Agent來完成具體任務。
Plan-and-Execute可以翻譯為計劃與執行架構。這種架構側重于先規劃一系列的行動,然后執行。它使LLM能夠先綜合考慮任務的多個方面,然后按計劃行動。在復雜的項目管理或需要多步驟決策的場景中尤為有效,如自動化工作流程管理。
Plan-and-Solve論文中的示例
目前,LangChain的Experiment(實驗包)中支持Plan-and-Execute框架,開發者可以嘗試創建Plan-and-Execute Agent,對任務先計劃,再具體執行。
Plan-and-Solve的實現示例
多Agent系統(MAS)是當前研究的一個熱門領域,它專注于如何讓多個智能代理(Agent)協同合作,共同完成復雜任務和達成目標。這涉及到了合作、競爭以及協商等多種策略的研究。
在這個領域中,AutoGen和MetaGPT是兩個突出的框架。AutoGen框架提供了Agent定制功能,允許開發者根據特定的需求來定制Agent的行為和功能。
另一方面,MetaGPT框架將標準操作程序(SOPs)與基于大型語言模型的多Agent系統相結合,利用SOPs來構建提示,確保了輸出的協調性、結構化和模塊化。這種設計使得不同的Agent能夠在一個高度結構化的環境中扮演不同的角色,通過專業化的協作來解決復雜的任務,從而在軟件工程等協作任務中提升解決方案的一致性和準確性。
在MetaGPT的演示中,展示了一個模擬軟件公司環境的多Agent系統,該系統能夠模擬公司內不同角色處理復雜任務的過程。其核心理念是將代碼講解ai視為團隊的標準操作程序,即“代碼即團隊SOP”,將標準操作程序具體化,并將其應用于由大型語言模型構成的團隊中。這種方法有助于提高團隊的協作效率和輸出質量。
軟件公司組織角色圖
這個軟件公司的組織角色圖突出了公司內的不同角色及其職責。
你只要輸入一行具體的軟件開發需求。經過幾輪協作,MetaGPT的假想軟件工程團隊就能夠開發出真正可用的簡單APP。
當然MetaGPT的功能不僅限于此,還可以用于其他場景構建應用程序。
上述認知框架當然是可以的組合的比如說,ReAct框架中,就一定應該配置Tool Calls,通過工具的調用+Tool Calls 才能夠改變環境的狀態,繼續觀察,才能夠進一步的思考。
ReAct + Tool Calls
自然,每一個AI Agent認知框架都擁有其獨到之處。決定選用哪一種框架,或者如何將它們有效結合以發揮最大效能,這完全取決于具體的業務需求、應用場景以及我們期望為用戶提供的體驗質量。挑選一個與應用需求相匹配的認知架構,是開發大型語言模型應用時的一個關鍵決策。
今天的深入分享到此結束。我盡力在有限的篇幅內,從理論基礎到實際應用,對代理技術的現狀進行了全面的梳理和分析,希望這些內容能為你在代理應用開發上提供一些有價值的參考和靈感。展望未來,隨著代理技術的不斷進步,它必將在人工智能的多個應用領域產生深遠的影響,進一步促進人與機器之間的協作,達到新的水平。
1、什么是AI Agent框架?
答案:AI Agent框架是指一套用于構建和部署智能代理(Agent)的系統架構,旨在提高代理的自主決策能力和推理能力。
2、ai agent幫助編程如何實現?
答案:AI Agent框架主要功能包括信息獲取、決策制定、任務執行和與用戶或其他系統的交互,幫助代理更有效地完成特定任務。
3、如何選擇合適的AI Agent框架?
答案:選擇合適的AI Agent框架時,應考慮框架的功能特性、易用性、社區支持、性能和兼容性等因素,以滿足特定應用需求。
4、AI Agent框架是否支持多代理系統?
答案:大多數現代AI Agent框架支持多代理系統,允許多個代理之間進行協作與通信,以解決復雜問題。
5、AI Agent框架的應用場景有哪些?
答案:AI Agent框架廣泛應用于自動化任務、智能客服、數據分析、推薦系統、游戲開發等多個領域。
6、如何在AI Agent框架中實現決策過程的透明性?
答案:可以通過引入可解釋的推理過程,如Chain-of-Thought方法,來提高決策過程的透明性,使用戶能夠理解代理的決策邏輯。
7、AI Agent框架如何處理復雜任務?
答案:AI Agent框架通常通過模塊化設計,將復雜任務拆分為更小的子任務,并采用有效的算法和策略來逐步解決。
8、AI Agent框架對AI技術的依賴程度如何?
答案:AI Agent框架在智能化程度上依賴于AI技術,如自然語言處理、機器學習和深度學習等,以提升代理的智能和自主性。
9、AI Agent框架是否需要編程知識?
答案:雖然許多AI Agent框架提供可視化工具以簡化開發,但對于復雜應用,具備一定的編程知識仍然是有幫助的。
10、如何評估AI Agent框架的性能?
答案:可以通過測試代理在不同任務中的響應時間、決策準確性、用戶滿意度等指標來評估AI Agent框架的性能。
AI Agent框架與代碼講解AI的關系可以從以下幾個方面來理解:
簡而言之,AI Agent框架提供了構建智能代理的藍圖和指導,而代碼則是根據這個框架實現具體功能的詳細指令。代碼講解AI在這個過程中起到了至關重要的作用,它幫助我們理解框架的設計意圖,展示了代碼的具體實現,并教會我們如何通過代碼來實現框架的功能,共同構成了能夠執行復雜任務的AI系統。
AI代理(AI Agent)可以幫助編程的方式包括但不限于以下幾個方面:
使用AI代理幫助編程時,開發者應該將其視為一個輔助工具,它可以幫助提高效率,但不能完全替代人類的判斷和創造力。開發者應該對AI代理提供的代碼和建議進行審查,確保它們符合項目的要求和標準。
1.https://36kr.com/p/2716201666246790 – 吳恩達最新演講:AI Agent工作流的未來
2.https://lilianweng.github.io/posts/2023-06-23-agent/ – LLM Powered Autonomous Agents
3.Chain-of-Thought Prompting Elicits Reasoning in Large Language Models , 36th Conference on Neural Information Processing Systems (NeurIPS 2022).
4.Press, O., Zhang, M., Min, S., Schmidt, L., Smith, N. A., & Lewis, M. (2022).
Measuring and Narrowing the Compositionality Gap in Language Models. arXiv preprint arXiv:2212.09551.
5.Wang, L., Xu, W., Lan, Y., Hu, Z., Lan, Y., Lee, R. K.-W., & Lim, E.-P. (2023). Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models. arXiv.
6.Yao, S., Zhao, J., Yu, D., Du, N., Shafran, I., Narasimhan, K., & Cao, Y. (2023). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv preprint arXiv:2210.03629.
7.https://github.com/geekan/MetaGPT – MetaGPT: The Multi-Agent Framework
本文轉自 微信公眾號@咖哥AI,作者黃佳