AI Agent 智能體開發(fā)工作手冊詳細(xì)指南 原創(chuàng)
AI Agent 智能體,目前更具體地指的是 LLM Agent。這是一種程序,其執(zhí)行邏輯受其底層大模型(LLM)的操控。
與少樣本提示(Few-shot)或固定工作流(Workflow)等手段相比,LLM Agent 的獨(dú)特之處在于它能定義并調(diào)整執(zhí)行用戶查詢所需的步驟。若能訪問一系列工具(例如:代碼執(zhí)行或網(wǎng)絡(luò)搜索),AI Agent 智能體能夠決定采用何種工具、如何運(yùn)用它,并根據(jù)輸出結(jié)果進(jìn)行迭代優(yōu)化。這種靈活性使得系統(tǒng)能以最低限度的配置應(yīng)對多樣化的應(yīng)用場景。
AI Agent 智能體架構(gòu)涵蓋了從固定工作流的可靠性到自主 AI Agent 智能體的廣泛領(lǐng)域。例如,像檢索增強(qiáng)生成(RAG)這樣的固定流程可以通過自我反思循環(huán)進(jìn)行優(yōu)化,使得程序在初始響應(yīng)不足時(shí)能夠進(jìn)行改進(jìn)。而ReAct 智能體則可以配備固定流程作為工具,提供一種既靈活又結(jié)構(gòu)化的處理方式。架構(gòu)的選擇最終依賴于具體的應(yīng)用場景以及可靠性與靈活性之間的最佳平衡。
接下來,我將向大家展示 AI Agent 智能體開發(fā)工作手冊詳細(xì)指南,一共有8個步驟,下面詳細(xì)介紹。
1、步驟一:選擇正確的大模型(LLM)
挑選合適的大模型對于 AI Agent 智能體達(dá)到預(yù)期的性能表現(xiàn)至關(guān)重要。在決策過程中,需要考慮多個因素,如許可協(xié)議、成本和語言兼容性。在構(gòu)建 AI Agent 智能體時(shí),最關(guān)鍵的考量是模型在編碼、工具調(diào)用和推理等核心任務(wù)上的表現(xiàn)。以下是一些用于評估的基準(zhǔn):
- 大規(guī)模多任務(wù)語言理解(MMLU)(用于推理能力);
- 伯克利函數(shù)調(diào)用排行榜(用于工具選擇和調(diào)用);
- HumanEval 和 BigCodeBench(用于編碼能力);
另一個重要的考量因素是大模型的上下文窗口大小。AI Agent 智能體的工作流程可能會消耗大量 token——有時(shí)甚至達(dá)到10萬或更多——因此,更大的上下文窗口將非常有益。
以下是一些你可能需要考慮的大模型:
- 閉源模型:GPT4-o、Claude 3.5
- 開源模型:Llama 3.2、Qwen 2.5
通常情況下,大模型越大,性能表現(xiàn)越佳,但能夠在本地運(yùn)行的較小模型也是一個不錯的選擇。對于較小的模型,你可能只能處理更簡單的用例,并且可能只能將你的 AI Agent 智能體與一兩個基礎(chǔ)工具相連接。
2、步驟二:定義 AI Agent 智能體的控制邏輯
簡單大模型與 AI Agent 智能體之間的核心差異體現(xiàn)在系統(tǒng)提示詞(System Prompt)上。
在大模型的情境中,系統(tǒng)提示詞是在模型開始處理用戶查詢之前,提供給模型的一系列指令和背景信息。
可以在系統(tǒng)提示詞中明確大模型所應(yīng)展現(xiàn)的 AI Agent 智能體行為。
以下是一些常見的 AI Agent 智能體模式,它們可以根據(jù)您的具體需求進(jìn)行調(diào)整:
- 工具使用:AI Agent 智能體判斷何時(shí)應(yīng)將查詢導(dǎo)向適當(dāng)?shù)墓ぞ?,或者何時(shí)依賴自身的知識庫。
- 反思:AI Agent 智能體在向用戶回復(fù)之前,會審視并修正其答案。大多數(shù) LLM 系統(tǒng)也可以加入反思步驟。
- 推理后行動(ReAct):AI Agent 智能體會不斷推理如何解決查詢,執(zhí)行操作,觀察結(jié)果,并決定是否需要采取進(jìn)一步行動或給出回應(yīng)。
- 計(jì)劃后執(zhí)行:AI Agent 智能體會預(yù)先規(guī)劃任務(wù),如有必要,將任務(wù)分解為子步驟,然后逐一執(zhí)行這些步驟。
最后兩種模式(ReAct 和計(jì)劃后執(zhí)行)通常是構(gòu)建多功能單一 AI Agent 智能體的良好起點(diǎn)。
為了有效地實(shí)現(xiàn)這些行為,需要進(jìn)行一定的提示詞工程(Prompt Engineering)。你可能還需要利用結(jié)構(gòu)化生成技術(shù)。這實(shí)質(zhì)上是指引大模型的輸出,使其符合特定的格式或模式,以確保 AI Agent 智能體的響應(yīng)與您期望的溝通風(fēng)格保持一致。
3、步驟三:定義 AI Agent 智能體的核心指令
我們常常默認(rèn)大模型擁有一系列即時(shí)的功能。雖然某些功能可能非常出色,但也有一些可能不完全符合我們的期望。為了實(shí)現(xiàn)我們所追求的性能,在系統(tǒng)提示詞中詳盡地闡述我們希望包含和排除的功能至關(guān)重要。
這可能涉及以下指導(dǎo):
- AI Agent 智能體的名稱和角色:指定 AI Agent 智能體的名稱及其用途。
- 語氣和簡潔度:確定 AI Agent 智能體的回應(yīng)應(yīng)該是正式還是非正式,以及回應(yīng)的簡潔程度。
- 使用工具的時(shí)機(jī):明確何時(shí)應(yīng)依賴外部工具而非模型自身的知識庫。
- 錯誤處理:指導(dǎo) AI Agent 智能體在遇到工具或流程問題時(shí)應(yīng)采取的行動。
4、步驟四:定義并優(yōu)化你的核心工具
工具為你的 AI Agent 智能體提供了超乎尋常的能力。通過使用一組精心定義的工具,你可以實(shí)現(xiàn)多樣化的功能。其中不可或缺的工具包括代碼執(zhí)行、網(wǎng)絡(luò)搜索、文件讀取和數(shù)據(jù)分析。
對于每一項(xiàng)工具,你需要定義以下內(nèi)容,并將其納入系統(tǒng)提示詞的一部分:
- 工具名稱:為功能提供一個唯一且具有描述性的名稱。
- 工具描述:清晰地闡述工具的作用及其適用場景。這有助于 AI Agent 智能體判斷何時(shí)應(yīng)該選用該工具。
- 工具輸入格式:描述必需和可選參數(shù)、它們的類型以及任何相關(guān)限制的格式。AI Agent 智能體將根據(jù)用戶的查詢使用這些信息來填充所需的輸入。
- 關(guān)于工具運(yùn)行位置或方法的指示詞。
在某些情況下,你可能需要優(yōu)化工具以達(dá)到預(yù)期的性能。這可能包括對工具名稱或描述進(jìn)行快速工程調(diào)整、設(shè)置高級配置以處理常見問題,或者對工具的輸出進(jìn)行篩選。
5、步驟五:制定可靠的記憶處理策略
大模型受限于其上下文窗口,即它們一次能夠“記住”的令牌數(shù)量。這種記憶空間很快就會被多輪對話中的歷史交流、冗長的工具輸出或 AI Agent 智能體依賴的額外上下文所充滿。因此,確立一個有效的記憶管理策略至關(guān)重要。
在 AI Agent 智能體的框架內(nèi),記憶涉及系統(tǒng)存儲、檢索和利用過往互動信息的能力。這允許 AI Agent 智能體隨時(shí)間維持上下文,基于先前的交流優(yōu)化其響應(yīng),并交付更加定制化的體驗(yàn)。
常見的記憶管理策略包括:
- 滑動記憶:保留最近 k 輪對話回合的記憶,并移除較早的對話回合。
- 令牌記憶:保持最后n個令牌,遺忘其他令牌。
- 總結(jié)記憶:利用大模型對每個對話回合進(jìn)行總結(jié),并移除單獨(dú)的消息。
此外,可以訓(xùn)練大模型識別關(guān)鍵信息以存儲在長期記憶中。這樣,AI Agent 智能體就能“記住”關(guān)于用戶的重要細(xì)節(jié),從而提供更加個性化的體驗(yàn)。
至此,我們概述的五個步驟為構(gòu)建 AI Agent 智能體奠定了基礎(chǔ)。但是,如果在當(dāng)前階段通過大模型處理用戶查詢,結(jié)果會怎樣呢?
此時(shí),AI Agent 智能體會生成原始的文本輸出。那么,我們?nèi)绾问蛊鋱?zhí)行后續(xù)操作呢?這就需要解析和編排的功能了。
6、步驟六:解析 AI Agent 智能體的原始輸出
解析器是一種功能,它負(fù)責(zé)將原始數(shù)據(jù)轉(zhuǎn)換成應(yīng)用程序能夠理解和操作的格式,例如帶有屬性的對象。
在構(gòu)建我們的 AI Agent 智能體時(shí),解析器需要辨識在第二步中設(shè)定的通信結(jié)構(gòu),并且輸出結(jié)構(gòu)化數(shù)據(jù),例如 JSON 格式。這樣做可以讓應(yīng)用程序更輕松地處理和執(zhí)行 AI Agent 智能體的后續(xù)動作。
注意:某些模型供應(yīng)商(例如 OpenAI)可能默認(rèn)提供可以直接解析的輸出。而對于其他模型,尤其是開源模型,可能需要額外的配置來生成可解析的輸出。
7、步驟七:安排 AI Agent 智能體下一步行動
最終步驟是確立編排邏輯。這一邏輯決定了在大模型產(chǎn)生輸出之后將發(fā)生什么?;谳敵鰞?nèi)容,你可以執(zhí)行以下操作:
- 調(diào)用工具,或者
- 返回答案— 這可以是針對用戶查詢的直接回應(yīng),或者是請求更多信息的后續(xù)動作。
當(dāng)觸發(fā)工具調(diào)用時(shí),工具的輸出會被送回給大模型(作為其工作內(nèi)存的一部分)。隨后,大模型將決定如何處理這些新數(shù)據(jù):是進(jìn)行另一個工具調(diào)用還是向用戶給出答案。
以下是在代碼中實(shí)現(xiàn)這種編排邏輯的一個示例:
8、步驟八:多 AI Agent 智能體的設(shè)計(jì)
盡管當(dāng)前的大模型非常強(qiáng)大,但它們面臨一個主要的挑戰(zhàn):處理信息過載的能力有限。過多的上下文或工具使用可能會導(dǎo)致模型負(fù)擔(dān)過重,進(jìn)而影響性能。單一的通用 AI Agent 智
能體最終可能會觸及這個極限,尤其是考慮到 AI Agent 智能體對 token 的巨大需求。
在某些情況下,采用多 AI Agent 智能體架構(gòu)可能更為合適。通過將任務(wù)分配給多個 AI Agent 智能體,可以避免單個 LLM Agent 的上下文過載,并提升整體的運(yùn)作效率。
盡管如此,單一的通用 AI Agent 智能體架構(gòu)是原型設(shè)計(jì)的極佳起點(diǎn)。它允許你快速驗(yàn)證用例并識別系統(tǒng)開始出現(xiàn)問題的點(diǎn)。通過這個過程,你可以:
- 了解哪些任務(wù)部分真正從 AI Agent 智能體方法中受益。
- 確定可以在更復(fù)雜的工作流程中作為獨(dú)立模塊分離的組件。
從單一 AI Agent 智能體出發(fā)可以提供寶貴的洞見,這些洞見在擴(kuò)展到更復(fù)雜的系統(tǒng)時(shí)有助于優(yōu)化你的方法。
準(zhǔn)備好深入探索并開始構(gòu)建了嗎?使用框架是快速測試和迭代 AI Agent 智能體配置的有效途徑:
如果計(jì)劃使用 Llama 3 等開源模型,可以嘗試 Bee Agent Framework。
如果計(jì)劃使用 OpenAI 等前沿模型,可以嘗試 LangGraph。
本文轉(zhuǎn)載自公眾號玄姐聊AGI 作者:玄姐
原文鏈接:??https://mp.weixin.qq.com/s/6BvQ2fBKjgokPUZNgoeA8g??
