譯者 | 布加迪
審校 | 重樓
我在過去設(shè)計對話式系統(tǒng)時親眼目睹了傳統(tǒng)AI的局限性。我設(shè)計的系統(tǒng)可以可靠地檢測實體,但其僵硬的邏輯使得這種解決方案不能擴展。對話遵循預(yù)先編程的路徑:如果用戶說X,就回應(yīng)Y。任何偏差都會破壞整個流程,凸顯出這類系統(tǒng)有多死板多僵硬。
基于基礎(chǔ)模型的代理改變了這一切。它們是自主系統(tǒng),能夠處理不可預(yù)測的場景并無縫協(xié)作。代理可以規(guī)劃行程、收集實時數(shù)據(jù)或管理客戶賬戶,隨時適應(yīng)變化。
代理不僅僅是工具的使用者,它們本身就是工具。像模塊化組件一樣,代理獨立工作,或與其他代理集成以解決復(fù)雜問題。預(yù)測模型帶來了精準(zhǔn)預(yù)測,生成式模型重新定義了創(chuàng)造力?,F(xiàn)在,代理AI將智能轉(zhuǎn)化為自主行動。
我們在本文中將剖析代理的結(jié)構(gòu)、探究其協(xié)作,并深入研究將它們擴展到強大的、相互關(guān)聯(lián)的生態(tài)系統(tǒng)所需的基礎(chǔ)設(shè)施。
什么是代理?
簡單地說,代理有代理機制,它們不依賴靜態(tài)路徑——它們進(jìn)行推理、使用工具并動態(tài)適應(yīng)。與使用腳本的機器人不同,代理實時調(diào)整工作流,以適應(yīng)不可預(yù)測的輸入。
在人工智能領(lǐng)域,代理有著悠久的歷史,從Alan Turing和John McCarthy早期的理論思考,到20世紀(jì)60年代基于規(guī)則的推理代理,這些代理旨在在定義的上下文中自主行動,但其功能受制于狹窄的應(yīng)用和僵硬的邏輯。
如今,基礎(chǔ)模型的出現(xiàn)改變了一切。
基礎(chǔ)模型讓代理能夠動態(tài)適應(yīng)復(fù)雜、不可預(yù)測的環(huán)境所需的推理和泛化。代理的環(huán)境定義了其范圍,無論是棋盤、網(wǎng)絡(luò)還是道路,其工具決定了它可以采取什么行動。與早期系統(tǒng)不同,現(xiàn)代代理將強大的推理與多功能工具結(jié)合起來,帶來了曾經(jīng)難以想象的應(yīng)用場景。
圖1. 控制邏輯,程序型與代理型
我們在下面將剖析代理的結(jié)構(gòu):代理如何感知、推理、行動和學(xué)習(xí)。
剖析代理的結(jié)構(gòu)
就像人類一樣,代理通過結(jié)合其感覺、記憶、推理和行動能力來解決問題。但在我們深入研究如何做到這一點的機理之前,先介紹一個支撐一切的基本要素:角色(persona)。
圖2. 剖析多代理系統(tǒng)
角色(工作職能)
代理的角色定義了其工作功能和專業(yè)知識。它就像嵌入到系統(tǒng)提示中的詳細(xì)職位描述,決定了代理的行為和反應(yīng)。系統(tǒng)提示設(shè)定期望,并影響模型在token上的概率分布,以便使輸出與定義的角色保持一致。
系統(tǒng)提示示例:
感知
有了明確的角色,解決任何問題的第一步就是了解環(huán)境。對于代理來說,感知是感官輸入,即它們?nèi)绾螐闹車澜缡占瘮?shù)據(jù)。人類用眼睛、耳朵和觸覺,代理則使用API、傳感器和用戶輸入。
- 示例:物流代理通過從交通API和天氣預(yù)報中提取實時數(shù)據(jù)以感知延遲,就像人類駕駛員查閱交通報告一樣。
推理和決策
一旦收集到信息,就需要對信息進(jìn)行處理和解讀。推理是代理分析數(shù)據(jù)、得出見解并決定下一步做什么的能力。對于人類來說,推理在大腦中進(jìn)行。對于代理,它由像LLM這樣的模型提供支持,模型可以動態(tài)適應(yīng)輸入和上下文。
- 示例:客戶服務(wù)代理可能會分析用戶的語氣以識別挫敗感、相互對照賬戶歷史記錄以查找未解決的問題,并決定上報問題。
記憶
記憶允許代理跨交互保留特定領(lǐng)域的信息。其目的并非學(xué)習(xí)。人類既依賴短期記憶(比如回憶一段對話的開始),又依賴長期記憶(比如記住幾年前學(xué)過的一項技能)。代理也是這樣工作的。
短期記憶允許代理跟蹤會話中的即時上下文,這些上下文可能在會話期間臨時存儲在內(nèi)存緩沖區(qū)中。與此同時,長期記憶指存儲歷史數(shù)據(jù),比如用戶偏好或過去的交互。這可能是矢量數(shù)據(jù)庫或另一個永久存儲區(qū)。矢量數(shù)據(jù)庫支持語義搜索,嵌入允許代理有效地檢索相關(guān)信息。
- 示例:銷售助理記得過去的交互,比如注意到客戶對特定功能的興趣,并利用它來定制后續(xù)服務(wù)。
規(guī)劃
一旦代理知道需要做什么,它就會設(shè)計計劃來實現(xiàn)目標(biāo)。這一步反映了人類如何制定策略:將問題分解成更小的步驟,并優(yōu)先考慮某些行動。
- 示例:膳食規(guī)劃代理組織一周的食譜,考慮到飲食限制、可用配料和用戶的時間表。
行動
沒有執(zhí)行,計劃毫無價值。行動是代理與外界交互的呈現(xiàn),無論是通過發(fā)送消息、控制設(shè)備還是更新數(shù)據(jù)庫。
- 示例:客戶支持代理更新工單、發(fā)出退款或發(fā)送電子郵件以解決問題。
代理的執(zhí)行處理程序負(fù)責(zé)確保準(zhǔn)確地執(zhí)行這些動作并驗證結(jié)果。
學(xué)習(xí)
人類通過從錯誤中學(xué)習(xí)和適應(yīng)新信息加以改進(jìn)。代理同樣如此,使用機器學(xué)習(xí)來完善其推理、改進(jìn)預(yù)測和優(yōu)化行動。
- 示例:產(chǎn)品推薦引擎跟蹤點擊率,并根據(jù)與用戶產(chǎn)生共鳴的內(nèi)容調(diào)整建議。
這個過程可能需要在提示裝配期間動態(tài)調(diào)整代理的上下文,以便它根據(jù)情境反饋改進(jìn)其響應(yīng),而不會對模型的權(quán)重進(jìn)行永久性更改。另外,學(xué)習(xí)也可能通過強化學(xué)習(xí)來進(jìn)行決策使用與特定行動相關(guān)聯(lián)的獎罰機制來加以優(yōu)化。在許多情況下,適應(yīng)上下文為代理提供了一種靈活而有效的改進(jìn)方式,沒有微調(diào)帶來的開銷。
協(xié)調(diào)和協(xié)作
人類很少單獨工作,我們相互合作、分享知識、分工任務(wù)。在多代理系統(tǒng)中,協(xié)調(diào)使代理能夠做同樣的事情,一起工作以實現(xiàn)共同的目標(biāo)。
- 示例:CRM助理在Salesforce系統(tǒng)中更新客戶的聯(lián)系人詳細(xì)信息,同時通知計費助理代理調(diào)整訂閱記錄。
這種協(xié)作常常由像Apache Kafka這樣的消息代理提供支持,消息代理促進(jìn)了代理之間的實時通信和同步。動態(tài)共享狀態(tài)和任務(wù)的能力使多代理系統(tǒng)比獨立代理強大得多。
工具接口
人類使用工具來增強能力,比如醫(yī)生使用聽診器、程序員使用集成開發(fā)環(huán)境(IDE)。代理也不例外。工具接口是代理實現(xiàn)專門功能的途徑,便于它們擴大應(yīng)用范圍,并在現(xiàn)實世界中有效地操作。
- 示例:旅行代理使用航班API查找機票、使用天氣API規(guī)劃路線、使用財務(wù)API計算成本。
這些接口通常依賴模塊化API處理程序或插件架構(gòu),以便代理動態(tài)高效地擴展其功能。
啟示
如果您細(xì)加分解,會發(fā)現(xiàn)代理解決問題的方式與人類相同:它們感知環(huán)境、處理信息、回憶相關(guān)知識、制定計劃并采取行動。
但代理與眾不同的不僅僅是其工作方式,還有其擴展能力。
人類可能精通一個領(lǐng)域,但代理生態(tài)系統(tǒng)可以將來自無數(shù)領(lǐng)域的專家聚集在一起,合作解決單個系統(tǒng)無法處理的挑戰(zhàn)。
我們在下一節(jié)中將探討如何構(gòu)建使這些代理發(fā)展壯大的基礎(chǔ)設(shè)施——不是充當(dāng)孤立的工具,而是成為動態(tài)的、相互關(guān)聯(lián)的AI勞動力的一部分。
代理充當(dāng)工具和微服務(wù)
從本質(zhì)上講,代理是有智能的工具。
它們可以使用API、外部庫甚至其他代理來完成工作。這種模塊化反映了微服務(wù)架構(gòu)的原則,幾十年來微服務(wù)架構(gòu)來一直為企業(yè)級系統(tǒng)提供支撐。如果將代理視為微服務(wù),我們就可以運用相同的經(jīng)驗:將它們設(shè)計為輕量級、專門化和可互操作。這種方法讓我們可以通過像搭樂高積木一樣組合代理,在不創(chuàng)建臃腫的單體式系統(tǒng)的情況下擴展功能,從而組合復(fù)雜的工作流。
比如說,營銷代理可能會聯(lián)系客戶細(xì)分代理來分析用戶數(shù)據(jù),然后將結(jié)果傳遞給活動策略代理來優(yōu)化廣告投放。如果將代理視為共享生態(tài)系統(tǒng)中的工具,工作流就可以動態(tài)拼接,從而實現(xiàn)前所未有的靈活性和可擴展性。
為什么這對可擴展性很重要?
這種類似微服務(wù)的架構(gòu)對于構(gòu)建可擴展的代理生態(tài)系統(tǒng)至關(guān)重要。我們可以設(shè)計更小、更專業(yè)的代理來協(xié)同工作,而不是創(chuàng)建試圖做所有事情的單體式代理。這種方法支持更快的開發(fā)、更輕松的維護(hù)以及獨立擴展各個組件的能力。
如果立足于微服務(wù)架構(gòu),我們可以為代理系統(tǒng)帶來企業(yè)級的可靠性、模塊化和性能。生成式AI的未來不是構(gòu)建孤立的代理,而是創(chuàng)建協(xié)作生態(tài)系統(tǒng),代理的功能像微服務(wù)一樣,無縫地協(xié)同工作以解決復(fù)雜問題。
我們在下一節(jié)中將探討如何將擴展微服務(wù)的經(jīng)驗運用到代理基礎(chǔ)設(shè)施中,以確保我們準(zhǔn)備好支持下一代生成式AI系統(tǒng)。
代理需要事件
從微服務(wù)的經(jīng)驗來看,傳統(tǒng)的請求/響應(yīng)架構(gòu)對代理而言根本不具有可擴展性。
在這些系統(tǒng)中,每個動作都需要明確的協(xié)調(diào),從而引入延遲、瓶頸和緊密耦合的依賴項。這就像組織中的每一個決定都需要書面批準(zhǔn),這在小型環(huán)境中有效,但復(fù)雜性增加后,速度和效率就會奇低。
圖3. 多代理系統(tǒng)導(dǎo)致了迷宮般的緊密耦合的相互依賴關(guān)系
向事件驅(qū)動架構(gòu)轉(zhuǎn)變標(biāo)志著構(gòu)建可擴展代理系統(tǒng)迎來了關(guān)鍵時刻。代理不是等待直接指令,而是被設(shè)計成自主地發(fā)出和監(jiān)聽事件。事件充當(dāng)發(fā)生了某些事件(數(shù)據(jù)更改、觸發(fā)的動作或重要的更新)的信號,允許代理動態(tài)獨立地響應(yīng)。
圖4. 事件驅(qū)動代理:代理發(fā)出并監(jiān)聽事件
剖析事件驅(qū)動代理
這種架構(gòu)直接影響了代理的結(jié)構(gòu)組成:
- 感知:代理通過事件感知世界,事件提供了結(jié)構(gòu)化的實時輸入。
- 推理:事件驅(qū)動決策過程,代理動態(tài)解釋信號以確定下一步。
- 記憶:事件持久性確保歷史數(shù)據(jù)始終可用于上下文回憶,從而降低交互丟失或不完整的風(fēng)險。
- 動作:代替僵硬的工作流,代理通過發(fā)出事件來行動,使下游代理或系統(tǒng)能夠在需要的地方獲取信息。
該系統(tǒng)中的代理接口不再由僵硬的API定義,而是由它們發(fā)出和使用的事件定義。這些事件用簡單的標(biāo)準(zhǔn)化格式(比如JSON有效負(fù)載)加以封裝,可執(zhí)行以下功能:
- 簡化代理對變化的理解和反應(yīng)。
- 促進(jìn)跨不同工作流和系統(tǒng)的可重用性。
- 在動態(tài)的、不斷發(fā)展的環(huán)境中實現(xiàn)無縫集成。
構(gòu)建代理生態(tài)系統(tǒng)
IT外媒VentureBeat特別指出:“進(jìn)入到2025年,我們更需要創(chuàng)建基礎(chǔ)設(shè)施來管理多個AI代理和應(yīng)用程序?!?/p>
這不僅僅是預(yù)測,更是號召我們行動起來。
剖析代理:感知、推理、記憶、行動和協(xié)作為它們的能力奠定了基礎(chǔ),但如果沒有合適的基礎(chǔ)設(shè)施,這些部分就無法擴展。
像Kafka和Flink這樣的平臺是擴展微服務(wù)的核心。通過借助事件解耦服務(wù),這些系統(tǒng)使微服務(wù)(現(xiàn)在是代理)能夠在沒有僵硬依賴關(guān)系的情況下無縫交互。對于充當(dāng)微服務(wù)的代理而言,這意味著它們可以自主地發(fā)出和使用事件,動態(tài)地集成到工作流中,同時確保大規(guī)模環(huán)境下的治理、一致性和適應(yīng)性。
未來不是僅僅一個代理解決一個問題,而是數(shù)百個代理協(xié)同工作,無縫擴展和適應(yīng)不斷變化的挑戰(zhàn)。若想在2025年領(lǐng)先,我們不僅要致力于創(chuàng)建代理,還要致力于創(chuàng)建大規(guī)模管理代理的基礎(chǔ)設(shè)施。
原文標(biāo)題:More than machines: The inner workings of AI agents,作者:Sean Falconer