- +1
谷歌智能體開(kāi)發(fā)套件架構(gòu)深度解析:從核心組件到實(shí)踐應(yīng)用
谷歌智能體開(kāi)發(fā)套件(ADK)代表了AI應(yīng)用開(kāi)發(fā)方式的根本性轉(zhuǎn)變。與傳統(tǒng)將大語(yǔ)言模型視為簡(jiǎn)單請(qǐng)求-響應(yīng)系統(tǒng)的方式不同,ADK引入了事件驅(qū)動(dòng)的運(yùn)行時(shí)架構(gòu),將智能體、工具和持久狀態(tài)協(xié)調(diào)整合為統(tǒng)一的應(yīng)用程序。
本文將深入探討ADK的核心架構(gòu)組件,并通過(guò)天氣智能體的實(shí)際實(shí)現(xiàn)展示它們?nèi)绾螀f(xié)同工作。
事件驅(qū)動(dòng)架構(gòu)概述
ADK運(yùn)行時(shí)作為一個(gè)復(fù)雜的事件循環(huán),在用戶請(qǐng)求、AI模型調(diào)用和外部工具執(zhí)行之間進(jìn)行調(diào)節(jié)。在最高層級(jí),三個(gè)主要交互定義了系統(tǒng)的行為。
首先,用戶提交消息及會(huì)話標(biāo)識(shí)符。會(huì)話ID至關(guān)重要,因?yàn)樗试S運(yùn)行時(shí)在多次交換中維持對(duì)話上下文。其次,內(nèi)部事件循環(huán)通過(guò)協(xié)調(diào)執(zhí)行邏輯和持久服務(wù)來(lái)處理請(qǐng)求。第三,系統(tǒng)將事件流式傳輸回用戶,包括中間工具調(diào)用和最終響應(yīng)。
Runner組件:系統(tǒng)核心
Runner位于ADK架構(gòu)的中心,作為所有用戶交互的主要入口點(diǎn)。當(dāng)您實(shí)例化Runner時(shí),將其綁定到特定智能體和會(huì)話服務(wù),創(chuàng)建自包含的執(zhí)行上下文。
Runner包含一個(gè)事件處理器,將原始模型輸出轉(zhuǎn)換為結(jié)構(gòu)化事件。與ADK智能體的每次交互都通過(guò)Runner的運(yùn)行方法進(jìn)行,該方法產(chǎn)生事件流而非返回單一響應(yīng)。這種流式方法支持實(shí)時(shí)反饋,允許應(yīng)用程序?qū)ぞ哒{(diào)用等中間步驟作出反應(yīng)。
這種模式與傳統(tǒng)API調(diào)用顯著不同。您的應(yīng)用程序不是等待完整響應(yīng),而是在事件發(fā)生時(shí)接收它們,這使得進(jìn)度指示器、調(diào)試輸出和動(dòng)態(tài)UI更新成為可能。
事件循環(huán):核心創(chuàng)新
事件循環(huán)代表了ADK的核心創(chuàng)新。它作為Runner和執(zhí)行邏輯層之間的雙向通信通道運(yùn)行,遵循詢問(wèn)-產(chǎn)生模式。
當(dāng)Runner接收到用戶消息時(shí),它要求執(zhí)行邏輯處理該消息。執(zhí)行邏輯可能調(diào)用底層的大語(yǔ)言模型、調(diào)用工具或執(zhí)行回調(diào)。每個(gè)操作都將事件返回給Runner,然后Runner可以將其轉(zhuǎn)發(fā)給用戶或觸發(fā)額外處理。
這種架構(gòu)自然支持多步推理??紤]用戶詢問(wèn)天氣信息時(shí)發(fā)生的情況。大語(yǔ)言模型首先確定需要調(diào)用get_weather工具。執(zhí)行邏輯調(diào)用該工具并產(chǎn)生包含結(jié)果的事件。然后大語(yǔ)言模型處理工具輸出并生成人類可讀的響應(yīng)。每個(gè)步驟都產(chǎn)生流經(jīng)系統(tǒng)的事件。
執(zhí)行邏輯層:實(shí)際工作處理
執(zhí)行邏輯層處理運(yùn)行智能體的實(shí)際工作。它管理大語(yǔ)言模型調(diào)用、工具回調(diào)和您定義的任何自定義邏輯。ADK中的工具只是帶有類型提示的Python函數(shù),框架自動(dòng)將其暴露給底層模型。
智能體配置將工具綁定到特定模型并提供指導(dǎo)行為的指令。指令字段充當(dāng)系統(tǒng)提示,而工具參數(shù)注冊(cè)可用函數(shù)。
當(dāng)大語(yǔ)言模型決定調(diào)用get_weather時(shí),ADK處理整個(gè)調(diào)用生命周期。它解析模型的函數(shù)調(diào)用,執(zhí)行您的Python函數(shù),并將結(jié)果反饋給模型進(jìn)行解釋。
服務(wù)層:持久化能力
服務(wù)層提供持久化能力,將無(wú)狀態(tài)的大語(yǔ)言模型交互轉(zhuǎn)換為有狀態(tài)的應(yīng)用程序。該層內(nèi)運(yùn)行著三個(gè)主要服務(wù)。
會(huì)話服務(wù)在多個(gè)輪次中維護(hù)對(duì)話狀態(tài)。示例中使用的InMemorySessionService將所有內(nèi)容存儲(chǔ)在內(nèi)存中,適用于開(kāi)發(fā)和測(cè)試。生產(chǎn)部署通常使用Cloud Firestore或PostgreSQL等持久后端。
工件服務(wù)處理文件存儲(chǔ)和檢索,使智能體能夠處理文檔、圖像和其他二進(jìn)制數(shù)據(jù)。內(nèi)存服務(wù)為應(yīng)跨會(huì)話持續(xù)的信息提供長(zhǎng)期存儲(chǔ)。
服務(wù)層通過(guò)明確定義的接口連接到外部存儲(chǔ)系統(tǒng)。這種抽象允許您在不修改智能體邏輯的情況下交換存儲(chǔ)后端。您的天氣智能體可以通過(guò)簡(jiǎn)單更改會(huì)話服務(wù)實(shí)現(xiàn),從內(nèi)存存儲(chǔ)遷移到分布式數(shù)據(jù)庫(kù)。
完整請(qǐng)求流程追蹤
追蹤完整請(qǐng)求流程說(shuō)明了這些組件如何協(xié)作。
用戶發(fā)送"倫敦的天氣如何?"消息及其會(huì)話標(biāo)識(shí)符。Runner接收此消息,將其包裝在Content對(duì)象中,并啟動(dòng)事件循環(huán)。執(zhí)行邏輯使用用戶消息和可用工具定義調(diào)用大語(yǔ)言模型。
模型識(shí)別這是天氣查詢,并使用參數(shù)"倫敦"生成對(duì)get_weather的工具調(diào)用。執(zhí)行邏輯攔截此調(diào)用,調(diào)用Python函數(shù),并捕獲返回值。包含工具結(jié)果的事件通過(guò)系統(tǒng)流回。
模型接收工具輸出并生成總結(jié)天氣條件的自然語(yǔ)言響應(yīng)。這個(gè)最終響應(yīng)事件通過(guò)Runner流式傳輸給用戶。
在整個(gè)過(guò)程中,會(huì)話服務(wù)維護(hù)上下文。當(dāng)用戶追問(wèn)"巴黎如何?"時(shí),會(huì)話歷史允許模型理解這指的是天氣,即使第二個(gè)查詢中從未出現(xiàn)該詞。
設(shè)計(jì)原則與優(yōu)勢(shì)
ADK的架構(gòu)揭示了AI應(yīng)用開(kāi)發(fā)的幾個(gè)重要設(shè)計(jì)原則。
事件驅(qū)動(dòng)方法支持同步API無(wú)法實(shí)現(xiàn)的可觀測(cè)性和調(diào)試。您可以記錄每個(gè)工具調(diào)用,監(jiān)控模型推理,并圍繞智能體行為構(gòu)建復(fù)雜的分析。
Runner和執(zhí)行邏輯之間的分離為測(cè)試創(chuàng)建了清晰的邊界。您可以模擬執(zhí)行邏輯來(lái)測(cè)試Runner行為,或?yàn)橥獠糠?wù)注入測(cè)試替身以隔離驗(yàn)證智能體邏輯。
服務(wù)層抽象使您的應(yīng)用程序能夠抵御基礎(chǔ)設(shè)施變化。隨著智能體內(nèi)存和會(huì)話存儲(chǔ)的托管服務(wù)變得可用,遷移只需最少的代碼更改。
谷歌智能體開(kāi)發(fā)套件提供了一個(gè)生產(chǎn)就緒的框架,用于構(gòu)建超越簡(jiǎn)單聊天界面的AI應(yīng)用程序。事件循環(huán)架構(gòu),結(jié)合強(qiáng)大的會(huì)話管理和靈活的工具集成,使開(kāi)發(fā)人員能夠創(chuàng)建維護(hù)上下文、調(diào)用外部能力并在分布式基礎(chǔ)設(shè)施中擴(kuò)展的智能體。理解這些架構(gòu)基礎(chǔ)將為您構(gòu)建滿足實(shí)際需求的復(fù)雜AI系統(tǒng)做好準(zhǔn)備。
Q&A
Q1:谷歌智能體開(kāi)發(fā)套件與傳統(tǒng)API有什么不同?
A:ADK采用事件驅(qū)動(dòng)架構(gòu),通過(guò)事件流實(shí)時(shí)傳輸響應(yīng),而非等待完整響應(yīng)。這種方式支持進(jìn)度指示、實(shí)時(shí)反饋和動(dòng)態(tài)UI更新,能夠觀察工具調(diào)用等中間步驟,為AI應(yīng)用開(kāi)發(fā)提供了更強(qiáng)的可觀測(cè)性和調(diào)試能力。
Q2:ADK的Runner組件有什么作用?
A:Runner是ADK架構(gòu)的中心,作為所有用戶交互的主要入口點(diǎn)。它包含事件處理器,將模型輸出轉(zhuǎn)換為結(jié)構(gòu)化事件,管理智能體與會(huì)話服務(wù)的綁定,創(chuàng)建自包含的執(zhí)行上下文,并以流式方式處理用戶請(qǐng)求。
Q3:ADK如何實(shí)現(xiàn)多步推理?
A:通過(guò)事件循環(huán)的詢問(wèn)-產(chǎn)生模式實(shí)現(xiàn)多步推理。當(dāng)處理復(fù)雜查詢時(shí),大語(yǔ)言模型可以先調(diào)用工具獲取信息,執(zhí)行邏輯處理工具調(diào)用并產(chǎn)生結(jié)果事件,然后模型基于工具輸出生成最終響應(yīng),每個(gè)步驟都產(chǎn)生相應(yīng)事件流經(jīng)系統(tǒng)。
本文為澎湃號(hào)作者或機(jī)構(gòu)在澎湃新聞上傳并發(fā)布,僅代表該作者或機(jī)構(gòu)觀點(diǎn),不代表澎湃新聞的觀點(diǎn)或立場(chǎng),澎湃新聞僅提供信息發(fā)布平臺(tái)。申請(qǐng)澎湃號(hào)請(qǐng)用電腦訪問(wèn)http://renzheng.thepaper.cn。





- 報(bào)料熱線: 021-962866
- 報(bào)料郵箱: news@thepaper.cn
滬公網(wǎng)安備31010602000299號(hào)
互聯(lián)網(wǎng)新聞信息服務(wù)許可證:31120170006
增值電信業(yè)務(wù)經(jīng)營(yíng)許可證:滬B2-2017116
? 2014-2026 上海東方報(bào)業(yè)有限公司




