【6G新技術探索】AG-UI(Agent User Interaction Protocol) 協議介紹

博主未授權任何人或組織機構轉載博主任何原創文章,感謝各位對原創的支持!
博主鏈接

本人就職于國際知名終端廠商,負責modem芯片研發。
在5G早期負責終端數據業務層、核心網相關的開發工作,目前牽頭6G技術研究。


博客內容主要圍繞:
???????5G/6G協議講解
???????高級C語言講解
???????Rust語言講解



文章目錄

  • AG-UI 協議介紹
    • 一、架構概述
    • 二、AG-UI 中的事件
      • 2.1 生命周期事件
      • 2.2 文本消息事件
      • 2.3 工具調用事件
      • 2.4 狀態管理事件
      • 2.5 特殊事件
    • 三、AG-UI中的Agent
    • 四、AG-UI基礎消息結構
    • 五、AG-UI中的工具調用
      • 5.1 工具結構
      • 5.2 Frontend-Defined工具
    • 六、與其它Agent協議的關系
  • 總結

AG-UI 協議介紹

AG-UI:Agent User Interaction Protocol
HomePage

一、架構概述

???????AG-UI 建立在一個靈活的、事件驅動的架構上,使前端應用程序和AI Agent之間能夠無縫、高效地通信。AG-UI遵循客戶端-服務器架構:

在這里插入圖片描述

  • Application:面向用戶的應用程序(例如聊天或任何支持AI的應用程序);
  • AG-UI客戶端:通信客戶端,如HttpAgent或用于連接到現有協議的專用客戶端;
  • Agent:處理請求并生成流響應的后端AI Agent;
  • Secure Proxy:提供額外功能并充當安全代理的后端服務;

二、AG-UI 中的事件

???????AG-UI 使用基于流事件的架構,事件是Agent和前端之間通信的基本單元,支持實時、結構化的交互。支持的事件類型如下所示:

事件類型說明
生命周期事件監測Agent的運行進度
文本消息事件處理流文本內容
工具調用事件通過Agent管理工具執行
狀態管理事件Agent與UI間狀態同步
特殊事件支持用戶自定義事件

2.1 生命周期事件

???????表示Agent運行的生命周期。一個典型的Agent運行遵循下面的狀態機模式:它以一個RunStarted事件開始,可能包含多個可選的StepStartedStepFinished對,并以一個RunFinished事件(成功)或一個RunErrorevent(失敗)結束。

???????生命周期事件為Agent運行提供了關鍵的結構,使前端能夠跟蹤進度,適當地管理UI狀態,并優雅地處理錯誤。它們創建了一個統一的框架,用于理解操作何時開始和結束,使實現加載指示器、進度跟蹤和錯誤恢復機制等功能成為可能。

在這里插入圖片描述
RunStartedRunFinishedRunError事件是強制性的,是Agent運行的整體狀態機框架。Step事件是可選的,可以在一次運行中多次發生,允許結構化的、可觀察的進度跟蹤。

  • RunStarted:是Agent開始處理請求時發出的第一個事件,此事件作為前端初始化UI元素(如進度指示器或加載狀態)的標記。它還提供了關鍵的標識符,可用于將后續事件與此特定運行關聯起來;
  • RunFinished:表明Agent已成功完成當前運行的所有工作。接收到此事件后,前端應該完成等待Agent完成的所有UI狀態。此事件標記了一個干凈的終止點,并指示除非顯式請求,否則在此運行中不會發生進一步的處理;
  • RunError:表明Agent遇到了無法恢復的錯誤,導致運行提前終止。此事件提供有關發生錯誤的信息,允許前端顯示適當的錯誤消息,并可能提供恢復選項。在發生RunError事件后,在此運行中不會發生進一步的處理;
  • StepStarted:指示Agent正在開始其處理的特定子任務或階段。提供了對代理進程的細粒度可見性,從而在UI中實現更精確的跟蹤和反饋。步驟是可選的,但強烈建議將復雜操作分解為可觀察的階段。stepName可以是當前正在執行的節點或函數的名稱;
  • StepFinished:表明Agent已經完成了特定的子任務或階段。當與相應的StepStarted事件配對時,它將為離散的工作單元創建有界上下文。前端可以使用這些事件來更新進度指示器,顯示完成動畫,或者顯示特定于該步驟的結果。stepName必須匹配相應的StepStarted事件,以正確配對步驟的開始和結束;

2.2 文本消息事件

???????表示對話中文本消息的生命周期。文本消息事件遵循流模式,內容是增量交付的。消息以TextMessageStart事件開始,接著是一個或多個TextMessageContent事件,在文本塊可用時傳遞它們,并以TextMessageEnd事件結束。

???????這種流式處理方法支持在消息內容生成時實時顯示消息內容,與等待整個消息完成后再顯示任何內容相比,可以創建響應更快的用戶體驗。

在這里插入圖片描述

2.3 工具調用事件

???????表示Agent進行的工具調用的生命周期。工具調用遵循類似于文本消息的流模式。當代理需要使用工具時,它會發出一個ToolCallStartevent,隨后是一個或多個ToolCallArgs事件,這些事件以流的形式將參數傳遞給工具,并以一個ToolCallEnd事件結束。

???????這種流式方法允許前端實時顯示工具執行進度,使Agent的操作更加透明,并提供關于正在調用哪些工具以及使用哪些參數的即時反饋。

在這里插入圖片描述

2.4 狀態管理事件

???????用于管理和同步Agent與前端的狀態。協議中的狀態管理遵循一種高效的snapshot-delta 模式,其中完整的狀態快照會在初始時或者不頻繁地周期發送,而增量更新會在進行中動態發送。這種方法對完整性和效率都進行了優化:快照確保前端具有完整的狀態上下文,而增量最小化更新的數據傳輸。它們一起使前端能夠準確及時的維護代理狀態。快照作為同步點,將狀態重置為已知基線,而增量在快照之間提供輕量級更新。

在這里插入圖片描述

  • StateSnapshot:完整表示Agent當前的狀態。此事件通常在交互開始時或需要同步時發送。它包含與前端相關的所有狀態變量,允許它完全重建其內部表示。前端應該用這個快照的內容替換它們現有的狀態模型,而不是試圖將它與以前的狀態合并;
  • StateDelta:事件以JSON Patch操作(如RFC 6902中定義)的形式包含對代理狀態的增量更新。每個增量表示應用于當前狀態模型的特定更改。這種方法具有帶寬效率,只發送已更改的內容,而不是整個狀態。前端應該按順序應用這些補丁,以保持準確的狀態表示。如果前端在應用補丁后檢測到不一致,它可能會請求一個新的 StateSnapshot
  • MessagesSnapshot:事件提供當前會話中消息的完整歷史記錄。與一般狀態快照不同,它特別關注對話記錄。此事件可用于初始化聊天歷史記錄、在連接中斷后進行同步,或在用戶加入正在進行的對話時提供全面視圖。前端應該使用它來建立或刷新顯示給用戶的會話上下文;

2.5 特殊事件

???????特殊事件通過允許特定于系統的功能和與外部系統的集成,為協議提供了靈活性。這些事件不遵循其他事件類型的標準生命周期或流模式,而是用于特殊目的。

三、AG-UI中的Agent

???????Agent 是 AG-UI 協議中處理請求和生成響應的核心組件。它們為前端應用程序建立了一種標準化的方式,通過一致的接口與AI服務進行通信,而不考慮底層實現。在AG-UI中,Agent完成下面的工作:

  • 管理會話狀態和歷史消息記錄;
  • 處理傳入消息和上下文;
  • 通過事件驅動的流接口生成響應消息;
  • 遵循標準化的通信協議;

Agent可以實現與任何AI服務的連接,包括:

  • 大型語言模型(llm),如GPT-4或Claude;
  • 自定義AI系統;
  • 檢索增強生成(RAG)系統;
  • 多Agent系統;

四、AG-UI基礎消息結構

???????在AG-UI協議中,消息構成了通信的主干。它們代表了用戶和AI Agent之間的對話歷史,并提供了一種標準化的方式來交換信息,而不管正在使用的底層AI服務是什么。

???????AG-UI消息遵循供應商中立的格式,確保不同AI提供商之間的兼容性,同時保持一致的結構。這允許應用程序在不更改客戶端實現的情況下在AI服務(如OpenAI、Anthropic或自定義模型)之間切換。基本消息結構如下所示:

interface BaseMessage {id: string // Unique identifier for the messagerole: string // The role of the sender (user, assistant, system, tool)content?: string // Optional text content of the messagename?: string // Optional name of the sender
}

五、AG-UI中的工具調用

???????工具是AG-UI協議中的一個基本概念,它使AI Agent能夠與外部系統交互,并將人類判斷納入其工作流程。通過在前端定義工具并將其傳遞給Agent,開發人員可以創建復雜的人機交互體驗,將人工智能功能與人類專業知識相結合在AG-UI中,工具是Agent可以調用的函數

  • 請求特定信息
  • 在外部系統中執行操作
  • 要求人工輸入或確認
  • 訪問特定功能

工具是人工智能推理和現實世界行為之間的橋梁,允許Agent完成僅通過對話無法完成的任務。

5.1 工具結構

工具遵循一致的結構,定義了它們的名稱、用途和預期參數:

interface Tool {name: string // Unique identifier for the tooldescription: string // Human-readable explanation of what the tool doesparameters: {// JSON Schema defining the tool's parameterstype: "object"properties: {// Tool-specific parameters}required: string[] // Array of required parameter names}
}

·parameters·字段使用JSON Schema定義工具接受的參數結構。Agent(生成有效的工具調用)和前端(驗證和解析工具參數)都使用該模式。

5.2 Frontend-Defined工具

AG-UI工具系統的一個關鍵是工具在前端定義,并在執行期間傳遞給Agent

// Define tools in the frontend
const userConfirmationTool = {name: "confirmAction",description: "Ask the user to confirm a specific action before proceeding",parameters: {type: "object",properties: {action: {type: "string",description: "The action that needs user confirmation",},importance: {type: "string",enum: ["low", "medium", "high", "critical"],description: "The importance level of the action",},},required: ["action"],},
}// Pass tools to the agent during execution
agent.runAgent({tools: [userConfirmationTool],// Other parameters...
})

這種方法有幾個優點:

  • 前端控制:前端決定Agent可以使用哪些功能;
  • 動態功能:可以根據用戶權限、上下文或應用程序狀態添加或刪除工具;
  • 關注點分離:Agent專注于推理,而前端處理工具實現;
  • 安全性:敏感操作由應用程序控制,而不是Agent;

六、與其它Agent協議的關系

???????AG-UI主要關注的是Agent與用戶間的交互,與A2A (Agent-to-Agent protocol)和MCP (Model Context protocol)等協議是互補的關系。例如,同一Agent代理可以通過A2A與另一個Agent通信,同時通過AG-UI與用戶通信,并調用MCP服務器提供的工具。這些協議在智能體生態系統中起到互補作用:

  • AG-UI:處理人機協同交互(human-in-the-loop)和流式UI更新;
  • A2A:促進Agent之間的通信和協作;
  • MCP:標準化不同模型間的工具調用和上下文處理;

在這里插入圖片描述

總結

???????AG-UI標準化了前端應用程序如何通過開放協議連接到AI Agent。可以將其視為人工智能驅動系統的通用翻譯器,無論代理說什么語言:AG-UI都確保了流暢的通信。AG-UI幫助開發人員構建需要實時交互、實時狀態流和人機協同交互的下一代AI工作流。AG-UI的優勢:

  • 可以通過類似CopilotKit等框架直接將AI Agent與前端集成;
  • 為人類與Agent間的通信構建高效的協議模塊;
  • 適用于聊天、流式狀態更新、人機協同交互(human-in-the-loop)和共享狀態的場景;


在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/90513.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/90513.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/90513.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

線性代數 下

文章目錄十一、方程組解的結構和性質1、齊次線性方程組2、非齊次線性方程組十二、Ax0的基礎解系十三、兩個方程組的公共解十四、同解方程十五、求特征值、特征向量十六、判斷A能否相似對角化十七、若A可以相似對角化,求P(Q)十八、二次型化標準型1、拉格朗日配方法2、…

Go語言實戰案例-自定義隊列結構

以下是《Go語言100個實戰案例》中的 數據結構與算法篇 - 案例24:自定義隊列結構 的完整內容,幫助初學者通過自定義結構體來實現隊列的數據結構。🎯 案例目標實現一個自定義的隊列結構,并提供常見的隊列操作:入隊&#…

Windows-WSL-Docker端口開放

本文介紹如何在局域網內訪問Windows服務器端口,特別是針對已安裝WSL環境并在其中運行Docker服務的情況。主要解決Docker服務向局域網開放端口的配置問題步驟一:配置轉發當你的應用程運行在WSL中時,需要執行此步驟。在宿主機(windo…

面試知識梳理-vue3和vue2區別

vue3相對于vue2的優勢 性能更好體積更小更好的ts支持(vue3 ts開發)更好的代碼組織更好的邏輯抽離更多新功能(vue2其實也都能自己做出來) 更好的代碼組織 Composition API 的革新 Vue 2 采用 ??Options API??,通過 …

棧的核心原理

1 棧的概念及結構棧是一種特殊的線性表,其特點是只允許在固定的一端進行插入和刪除操作。進行操作的一端稱為棧頂,另一端稱為棧底。棧中的元素遵循后進先出(LIFO,Last In First Out) 原則。壓\入\進棧(Push…

【無標題】暗物質暗能量——以下是用11維拓撲量子色動力學模型解釋暗物質和暗能量的完整理論框架。

暗物質暗能量——以下是用11維拓撲量子色動力學模型解釋暗物質和暗能量的完整理論框架。暗物質的拓撲本質 1. 跨橋零模振動理論 暗物質對應跨橋結構的基態振動模: math \phi_{\text{DM}} \frac{1}{\sqrt{6}} \sum_{f1}^6 \mathcal{B}_f^{(0)} $$ 其中 $\mathcal{B}…

【接口自動化】-1- 初識接口

一、什么是接口 接口涉及到四個實體:(我去飯店點餐) 我是客人 :客戶端 廚師:服務器 服務員:接口 菜單:接口文檔 接口定義了一套信息規則讓兩個系統之間互相不必知道對方的內部&#xff0c…

華為FTTR光貓V173 F30改公開版界面 附帶真正的s161補全一體固件

【本文介紹】 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 這款FTTR的V173 F30看著顏值很高 也很實用 畢竟是XGPON萬兆的光貓…

【學習】數字化車間與智能工廠如何推進制造業轉型

在制造業轉型升級的浪潮中,數字化車間與智能工廠已成為推動產業變革的核心引擎。前者通過物聯網、大數據與自動化技術的深度融合,實現生產流程的精細化管控與資源優化;后者則依托人工智能、5G通信與數字孿生技術,構建起具備自感知…

HTML元素與高級功能完全教程:從基礎到精通

目錄 章節1:HTML的靈魂——元素的本質與結構化思維 1.1 元素的核心:標簽、屬性與內容 1.2 語義化的革命 1.3 常見的“坑”與避坑指南 章節2:表單元素:打造交互的基石 2.1 表單基礎:與核心控件 2.2 高級輸入類型與驗證 2.3 表單的可訪問性與用戶體驗 章節3:HTML5多媒…

IP證書:構建數字世界知識產權安全防線的基石

引言 在數字化浪潮席卷全球的今天,知識產權(IP)的保護已成為企業、機構乃至個人面臨的重要挑戰。無論是商業秘密、專利技術,還是數字版權,其安全性和可信度都直接影響著創新生態的健康發展。而作為數字安全的核心工具…

CAD插件『PDF轉CAD格式』安裝教程

在工程設計領域,常規流程是將完成的CAD圖紙直接轉換為PDF格式或輸出為紙質藍圖進行分發。由于PDF文件具有跨平臺兼容性強、防篡改等特性,在工程交付環節被廣泛采用。但當需要對既有圖紙進行二次修改時,PDF格式的編輯局限性便凸顯出來&#xf…

【硬件-筆試面試題】硬件/電子工程師,筆試面試題-26,(知識點:硬件電路的調試方法:信號追蹤,替換,分段調試)

目錄 1、題目 2、解答 一、信號追蹤法(Signal Tracing) 原理 操作步驟 應用場景 二、替換法(Replacement Method) 原理 操作要點 應用場景 三、分段調試法(Segmented Debugging) 原理 操作步驟…

Qt中QObject類的核心作用與使用

一、QObject類簡介 各位小伙伴,在Qt的世界里,QObject類就像是"萬物之母",它是Qt對象模型的核心基類。幾乎所有的Qt類都直接或間接地繼承自QObject。QObject提供了很多重要的功能,比如對象樹管理、信號與槽機制、元對象系…

TVBOXOS6.0雙端APP二開源碼完整版全開源源碼重構版

今天介紹的TVBOXOS手機版App源碼采用了純64位的前端架構,版本則基于本站修正過的6.0前端進行構建。經過多次優化,這款應用不僅操作流暢,界面設計也頗具美感。前端完全集成了安卓原生Java架構,而后端管理采用的是PHP的如意系統。前…

VoWiFi技術深度解析:架構、流程與演進

在蜂窩網絡覆蓋盲區實現高清語音通話的秘密,就藏在這套基于IMS的Wi-Fi呼叫系統中 一、VoWiFi概述與技術價值 VoWiFi(Voice over Wi-Fi)是一種基于IMS核心網的語音通信技術,允許用戶通過Wi-Fi接入運營商的EPC(演進分組核心網)和IMS系統,實現與傳統蜂窩網絡無縫集成的語音…

DuoPlus云手機再上新:統一配置品牌型號、代理分組與便捷搜索功能全面提升!

前言:在這個日新月異的時代,每一個微小的變化都可能引領行業新潮流,DuoPlus云手機基于不斷創新的原則,把用戶的需求放在第一位,不斷對產品進行調整優化,致力于給用戶最全面的產品體驗。DuoPlus通過收集用戶…

C/C++內存陷阱:為何返回局部變量地址是“定時炸彈”?

資料合集下載鏈接: ?https://pan.quark.cn/s/472bbdfcd014? 在編程世界里,有些錯誤就像是隱藏在代碼里的“定時炸彈”,平時可能相安無事,但在某個不經意的時刻就會引爆,導致程序崩潰或出現無法解釋的詭異行為。今天,我們要拆解的,就是這樣一個極具迷惑性又極其危險的…

編程與數學 03-001 計算機組成原理 21_服務器計算機組成實例解析

編程與數學 03-001 計算機組成原理 21_服務器計算機組成實例解析一、引言二、硬件架構特點(一)多核/多處理器設計(二)大容量高帶寬內存(三)存儲系統(四)高可用性設計三、性能優化技術…

opencv簡介(附電子書資料)

概述 OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和機器學習軟件庫,廣泛應用于圖像處理、目標檢測、模式識別等領域,是計算機視覺領域最常用的工具之一。電子書學習資料:https://pan.quark.cn…