從單 Agent 到多 Agent 的案例落地實(shí)踐 原創(chuàng)
關(guān)于 Agent 的定義目前還沒有形成共識(shí),目前有3個(gè)代表性的定義:
流行最廣的是前 OpenAI 研究與安全副總裁 Lilian Weng 對(duì) Agent 的定義:Agent = LLM + Planning + Tools + Memory。
除此之外,LangChain 對(duì) Agent 的定義為:使用 LLM 決定應(yīng)用程序控制流的系統(tǒng)。
OpenAI 對(duì) Agent 的定義是:Agent 是能夠代表用戶自主完成任務(wù)的系統(tǒng)。
盡管目前對(duì) Agent 的定義還沒形成共識(shí),但是大家對(duì) Agentic System(智能系統(tǒng))基本的共識(shí)是:Agentic System 是一種有目標(biāo)、基于環(huán)境的決策系統(tǒng)。與 LLM 最大的區(qū)別在于,Agentic System 可以與現(xiàn)實(shí)世界交互,從感知環(huán)境開始,做出決策并執(zhí)行,影響環(huán)境,然后基于反饋調(diào)整,不斷持續(xù)迭代循環(huán)。
1、Agentic System 架構(gòu)設(shè)計(jì)剖析
一個(gè)完整的 Agentic System 架構(gòu)包含四個(gè)核心組成部分:
- 感知:為大模型構(gòu)建上下文信息。常見的方法包括檢索增強(qiáng)生成(RAG),查詢結(jié)構(gòu)化數(shù)據(jù)(比如:數(shù)據(jù)庫(kù)、網(wǎng)頁(yè)內(nèi)容)或者檢索歷史記錄(比如:長(zhǎng)短期記憶)。
- 決策:本質(zhì)上是 Planning 規(guī)劃過程。可以通過規(guī)則引擎(Workflow)實(shí)現(xiàn),也可以由大語(yǔ)言模型(LLM)驅(qū)動(dòng)(自主 Agent),或者借助外部規(guī)劃器。在設(shè)計(jì)時(shí)需要權(quán)衡泛化能力和準(zhǔn)確性--LLM 驅(qū)動(dòng)的決策泛化能力強(qiáng),但不確定性較高;而基于規(guī)則的工作流泛化能力較弱,但更可控。
- 執(zhí)行:通過調(diào)用工具來(lái)改變環(huán)境。包括 API 調(diào)用(比如:REST、RPC、SQL、函數(shù)調(diào)用)或與圖形軟件的集成(比如:Anthropic 的 Computer use)。
- 反饋:用于評(píng)估和迭代的機(jī)制。反饋可以通過人工標(biāo)注、規(guī)則或模型生成,更新可以是離線的或在線的。
這個(gè)閉環(huán)構(gòu)成了 Agent 的基礎(chǔ)單元(building block)。復(fù)雜的 Agent 可以由多個(gè)小 Agent 組成,復(fù)雜業(yè)務(wù)邏輯大決策通常由一系列小型決策構(gòu)成。
2、多 Agentic System 架構(gòu)設(shè)計(jì)原則
當(dāng)多個(gè) Agent 協(xié)同工作時(shí),就構(gòu)成了 Multi-Agent 系統(tǒng)。在設(shè)計(jì) Multi-Agent 系統(tǒng)時(shí),要避免過度拆分。每個(gè) Agent 應(yīng)該代表一個(gè)明確的業(yè)務(wù)決策點(diǎn),并可以通過持續(xù)反饋進(jìn)行優(yōu)化。只有在單個(gè) Agent 無(wú)法滿足需求時(shí),才考慮引入更多的 Agent。
第一、借鑒分布式系統(tǒng)的思路,可以把 Agent 比作一臺(tái)計(jì)算機(jī):
- LLM(大語(yǔ)言模型)是計(jì)算機(jī)的CPU,負(fù)責(zé)處理和運(yùn)算。
- Context window(上下文窗口)是計(jì)算機(jī)的內(nèi)存,用于臨時(shí)存儲(chǔ)信息。
- 向量數(shù)據(jù)庫(kù)是計(jì)算機(jī)的硬盤,用于長(zhǎng)期存儲(chǔ)數(shù)據(jù)。
- 工具(Tools)是計(jì)算機(jī)上的程序,用于執(zhí)行特定任務(wù)。
分布式系統(tǒng)主要解決以下三個(gè)問題:
- 性能不足:?jiǎn)闻_(tái)計(jì)算機(jī)的計(jì)算或存儲(chǔ)能力有限。
- 容錯(cuò)性:?jiǎn)蝹€(gè)系統(tǒng)容易出現(xiàn)故障,需要多個(gè)系統(tǒng)協(xié)同工作以提高可靠性。
- 協(xié)作:不同團(tuán)隊(duì)負(fù)責(zé)不同的微服務(wù),需要協(xié)同工作。
Multi-Agent 系統(tǒng)的設(shè)計(jì)原則與此類似:
- 解決單次 LLM 調(diào)用智力不足的問題:當(dāng)單個(gè) Agent 無(wú)法處理復(fù)雜的任務(wù)時(shí),可以引入多個(gè) Agent 協(xié)同工作。
- 提高容錯(cuò)性:多個(gè) Agent 協(xié)同工作可以提高系統(tǒng)的可靠性和穩(wěn)定性。
- 促進(jìn)協(xié)作:不同 Agent 可以負(fù)責(zé)不同的任務(wù)或決策點(diǎn),實(shí)現(xiàn)更復(fù)雜的業(yè)務(wù)邏輯。
第二、Agentic System 架構(gòu)演進(jìn)
Multi-Agent 系統(tǒng)的設(shè)計(jì)應(yīng)從單個(gè) Agent 開始,只有在單個(gè) Agent 無(wú)法滿足需求時(shí),才逐步過渡到多 Agent 架構(gòu)。這種逐步擴(kuò)展的方式有助于保持系統(tǒng)的簡(jiǎn)潔性和可維護(hù)性。
3、從單 Agent 到多 Agent 智能助手案例架構(gòu)演進(jìn)
智能助手的演進(jìn)遵循了從單 Agent 到 Multi-Agent 的路徑:
- 初始階段:僅有產(chǎn)品問答模塊,使用簡(jiǎn)單的 RAG(檢索增強(qiáng)生成)技術(shù)。
- 技能擴(kuò)展:添加多種技能,但用戶需要手動(dòng)切換。
- 意圖識(shí)別:開發(fā)意圖識(shí)別 Agent,但仍為單 Agent 架構(gòu)。
- 多 Agent 體系:隨著場(chǎng)景復(fù)雜化和多團(tuán)隊(duì)協(xié)作需求的增加,逐步過渡到多 Agent 體系。
除架構(gòu)演進(jìn)外,我們還進(jìn)行了多項(xiàng)技術(shù)優(yōu)化:
- RAG 優(yōu)化:增加查詢改寫功能,提高系統(tǒng)的魯棒性。用戶不一定會(huì)提出完美的問題,通過查詢擴(kuò)展和改寫,系統(tǒng)能夠更好地處理各種輸入變化。
- 知識(shí)圖譜:引入 GraphRAG 技術(shù),將產(chǎn)品知識(shí)問答的準(zhǔn)確度從 76% 提升到 93%。對(duì)于算法實(shí)力一般但工程能力強(qiáng)的團(tuán)隊(duì),知識(shí)圖譜是模型后訓(xùn)練的實(shí)用替代方案。
- 強(qiáng)化學(xué)習(xí):在經(jīng)營(yíng)分析場(chǎng)景中,將評(píng)價(jià)體系(如 AARRR 模型)轉(zhuǎn)化為強(qiáng)化學(xué)習(xí)的獎(jiǎng)勵(lì)函數(shù),實(shí)現(xiàn)模型的持續(xù)優(yōu)化。
當(dāng)然,我們也在經(jīng)營(yíng)分析場(chǎng)景中基于 SFT(監(jiān)督微調(diào))和強(qiáng)化學(xué)習(xí)進(jìn)行微調(diào)。我們之前基于經(jīng)營(yíng)分析 Agent 構(gòu)建的數(shù)據(jù)集和評(píng)價(jià)體系,天然地過渡到了 RL(強(qiáng)化學(xué)習(xí))領(lǐng)域的環(huán)境和獎(jiǎng)勵(lì)函數(shù)的構(gòu)建。我們之前評(píng)價(jià)一個(gè)經(jīng)營(yíng)建議好壞的一個(gè)重要指標(biāo)是思考過程是否符合 AARRR 模型,現(xiàn)在在 RL 中,這個(gè)指標(biāo)也成為了獎(jiǎng)勵(lì)函數(shù)之一。
本文轉(zhuǎn)載自??玄姐聊AGI?? 作者:玄姐
