大多數AI代理在嘗試將其插入真實應用程式時就會崩潰。問題在於缺乏共享協議。
但這種情況正在迅速改變。在過去的一年裡,AG-UI(使用者互動)、A2A(代理間通訊)和MCP(工具存取)等協定已經改變了生態系統。
因此,我抓住機會學習了這些協議,並了解了它們是如何協同工作的。這篇文章涵蓋了我所學到的關於協議(AG-UI、ACP、A2A、MCP)的所有知識。
您還將找到用於學習和建立 AI 代理的最佳教育存儲庫集合。
此列表將為您提供所需的基礎知識和工具。
市面上已經有了可靠的多步驟代理框架。但是,當你嘗試將代理插入到實際應用中時,事情就開始變得糟糕了:
無需自訂 WebSocket 伺服器,即可逐一令牌地進行串流回應
顯示即時工具進度,暫停以獲得人工回饋,而不會失去上下文
保持大型共享狀態(程式碼、表格、資料)同步,無需將所有內容重新傳送到 UI
允許使用者在任務執行過程中中斷、取消或回覆代理(不會遺失狀態)
大多數代理後端(例如 LangGraph、CrewAI 等)都有自己的流格式、狀態邏輯和工具呼叫 API。因此,如果切換技術棧,則需要重寫所有內容(這不可擴展)。
AG-UI 是CopilotKit開發的開源協議,它彌補了這個缺陷。它讓開發者能夠非常輕鬆地將相容的 Agent 引入前端客戶端。
它使用Server-Sent Events (SSE)
將結構化 JSON 事件從代理後端串流到前端。
共有 16 種事件類型。每種類型都有明確定義的有效負載,例如:
TEXT_MESSAGE_CONTENT
用於令牌流。
TOOL_CALL_START
顯示工具執行情況。
STATE_DELTA
更新共享狀態(程式碼、資料等)
AGENT_HANDOFF
在代理之間順利傳遞控制權
您可以使用以下命令建立一個新的 AG-UI 應用程式。
npx create-ag-ui-app@latest <my agent framework>
框架的採用正在快速發展,其中 LangGraph、CrewAI、Mastra、LlamaIndex 和 Agno 已經得到支持。
AG-UI 與其他兩個頂級代理協議相輔相成:
MCP 將代理程式與工具連接起來
A2A 將代理彼此連結起來
AG-UI 將代理連接到最終用戶
AG-UI 的作用類似於人機互動的REST
層,幾乎沒有樣板,並且易於整合到任何技術堆疊中。
它在 GitHub 上有 5.1k 個星。
{% cta https://github.com/ag-ui-protocol/ag-ui %} 星級 AG-UI ⭐️ {% endcta %}
代理系統的功能越來越強大,但它們卻沒有共同的語言。
如果代理 A 想請求代理 B 幫忙完成某項任務,則需要:
編寫自訂 API
硬編碼端點
為每個新的代理程式對建立適配器
因此,建立在不同框架(LangGraph、CrewAI…)上的代理最終會陷入孤立狀態,無法協調。
A2A(Agent-to-Agent)是 Google 推出的協議,它使用JSON-RPC & SSE standard
解決了這個問題。透過 A2A,代理可以:
發現彼此的能力。
決定如何溝通(文字、表格、媒體)
安全地協作完成長期運作的任務。
操作時無需暴露其內部狀態、記憶體或工具。
首先,使用Python SDK或JS SDK 。
pip install a2a-sdk
or
npm install @a2a-js/sdk
1) 代理程式發布JSON Agent Card
(包含功能、終端節點、授權資訊)。其他代理商則取得該卡,以了解「該聯絡誰以及如何聯絡」。
2)透過 JSON-RPC 委託任務
客戶端代理程式使用tasks/send
或sendSubscribe
發起任務
透過 HTTP 進行呼叫,並採用結構化輸入
遠端代理響應任務 ID 並開始執行
1) 透過 SSE ( TaskStatusUpdate
、 TaskArtifactUpdate
) 傳輸進度和中間工件流。
2)互動式任務中輸入
遠端代理可以暫停並發出input-required
呼叫代理透過相同的任務 ID 回應附加輸入
5)代理程式透過結構化的「部件」和「工件」交換文字、資料、檔案(如音訊/視訊)。
這是一個非常簡單的例子:
使用者給予代理 A 一個複雜的任務
代理 A 將其分解為子任務
它使用特工卡找到特工 B、C、D
它使用 A2A 呼叫來委派工作
這些代理並行執行、串流更新並請求額外的輸入
代理 A 收集並合併結果
這就是代理商之間互相交流的方式。
雖然它仍然很新,但標準化代理到代理的協作是很好的,類似於 MCP 對代理到工具互動所做的那樣。
MCP 擴展了單一代理的功能。 A2A 擴展了代理的協作方式,並且不受後端/框架的限制。
如果您有興趣了解更多訊息,請查看 Auth0 的MCP vs A2A 。
它在 GitHub 上擁有 18k+ 顆星。
{% cta https://github.com/a2aproject/A2A %} 星號 A2A ⭐️ {% endcta %}
MCP(模型上下文協定)是 Anthropic 嘗試標準化應用程式如何為 LLM 提供上下文和工具。
與硬體的 USB-C 一樣,MCP 是 AI 模型「插入」資料來源和工具的通用介面。
您無需為每個服務(GitHub、Slack、文件、資料庫)編寫自訂包裝器,而是使用 MCP 公開工具,這樣它就可以:
列出tools/list
)
tools/call
call )
取得結構化、類型化的結果
這模仿了函數呼叫 API,但可以跨平台和服務工作。
先前的規格相當簡陋(透過 stdio 或 HTTP 使用 JSON-RPC)。身份驗證定義不明確,因此許多實作都直接跳過了身份驗證。
現在,隨著 MCP 的採用率不斷增長,Anthropic 透過其新的 Spec 更新(MCP v2025-06-18)做出了重大改進(尤其是在安全性方面)。
MCP 的核心是客戶端-伺服器架構,一個主機應用程式可以連接到多個伺服器。以下是各個元件的工作原理:
MCP hosts
- 諸如 Claude Desktop、Cursor、Windsurf 或想要透過 MCP 存取資料的 AI 工具之類的應用程式。
MCP Clients
- 與 MCP 伺服器保持 1:1 連線的協定客戶端,充當通訊橋樑。
MCP Servers
- 輕量級程序,每個程序透過標準化模型上下文協議公開特定功能(如讀取文件、查詢資料庫...)。
Local Data Sources
- 您電腦上 MCP 伺服器可以安全存取的檔案、資料庫和服務。例如,瀏覽器自動化 MCP 伺服器需要存取您的瀏覽器才能運作。
Remote Services
- MCP 伺服器可以連接的外部 API 和基於雲端的系統。
圖片來源: ByteByteGo3
如果您有興趣閱讀更多內容,這裡有一些值得一讀的內容:
<a href="">我從未在 Medium 上看到的 MCP 指南</a>
Builder.io 團隊的「模型上下文協定 (MCP)」是什麼?
{% cta https://github.com/modelcontextprotocol/modelcontextprotocol %} 星級 MCP ⭐️ {% endcta %}
ACP(代理通訊協定)建立在 A2A 的許多理念之上,但更進一步。
它是用於 AI 代理、應用程式和人類之間通信的開放協議。它基於標準化的 RESTful API 執行,並支援:
多模態交互
串流回應
有狀態或無狀態模式
線上和離線代理發現
針對長時間執行的任務採用非同步優先設計(但也適用於同步呼叫)
主要有兩個組成部分:
a) ACP client
:由代理、應用程式或服務使用,透過 ACP 協定發出請求
b) ACP server
:託管一個或多個代理,使用 ACP 接收請求並傳回結果。 Agent 透過 REST 進行暴露。
高階多代理編排的架構流程
該協定非常簡單,可以與標準 HTTP 工具(例如 curl、Postman 或瀏覽器請求)配合使用。如果您喜歡以程式設計方式整合 ACP,可以使用官方的Python SDK和Typescript SDK 。
您可以使用此命令新增 ACP SDK。
uv add acp-sdk
雖然兩者都支援任務委派、串流媒體、多模式內容和代理商發現:
A2A 專注於代理商與代理商之間的協作
ACP 將其擴展至包括人機交互和應用程式交互
ACP 使用 REST + OpenAPI + 多部分格式
A2A 使用 JSON-RPC + SSE
發現是透過Agent Manifest
完成的,類似 A2A 的Agent Card
。
ACP 是作為 Linux 基金會標準開發的,並以BeeAI 平台作為參考實作。
該協議與內部實現無關,並確保它服務於更廣泛的生態系統而不是任何單一供應商。
如果您剛開始,請查看DeepLearning.AI 短期課程和快速入門指南。
另外,請查看範例代理,以了解如何在流行的 AI 框架中使用 ACP。
{% cta https://github.com/i-am-bee/acp %} 星級 ACP ⭐️ {% endcta %}
微軟的這個開源課程提供了具有真實用例的結構化學習路徑。
它包括 C#、Java、JavaScript、TypeScript 和 Python 等流行語言的實用編碼範例。
透過遵循此,您可以輕鬆掌握 MCP 生態系統並了解如何從頭開始建立或擴展符合 MCP 的系統。
有一些很棒的博客,但它們無法涵蓋所有細節。
這是課程涵蓋的主題的完整清單。
{% 嵌入 https://gist.github.com/Anmol-Baranwal/4d56abe74a6b423b431039a14e3cb2de %}
它在 GitHub 上有 5.1k 個星。
{% cta https://github.com/microsoft/mcp-for-beginners %} 為初學者的 MCP 加星 ⭐️ {% endcta %}
即使 LLM 變得更加強大,建立可靠的 AI 軟體仍然取決於如何圍繞它們進行設計。
Dex Horthy 的這個 repo 將建構生產級代理的經驗提煉為 12 個核心原則。
{% 嵌入 https://www.youtube.com/watch?v=8kMaTybvDUw
%}每個 LLM 代理的核心都是一個循環:
LLM 使用結構化工具呼叫來決定下一步
程式碼執行工具呼叫
結果附加到上下文視窗
重複,直到確定下一步“完成”
但最終,這種方法並沒有達到我們所期望的效果。
每個因素都附有直覺的範例、詳細的解釋和程式碼片段。
以下是所有 12 個因素的簡要概述(附有了解更多資訊的連結):
1) 自然語言到工具呼叫:將使用者輸入轉換為結構化操作(JSON 或函數呼叫),以便確定性程式碼可靠地處理執行。
2) 掌控你的提示:不要將你的提示工程外包給框架。像對待程式碼一樣對待提示(版本控制、測試、易於更新)。
3) 掌控你的上下文視窗:只將重要的內容傳送給模型。刪除所有不必要的內容,以保持快速執行並避免超出限制。
4) 工具只是結構化的輸出:當您的代理程式使用工具時,讓它以您的程式碼可以理解的乾淨、易讀的 JSON 回應。
5) 統一執行狀態和業務狀態:將代理程式的步驟追蹤(正在執行的操作)和業務資料(正在處理的操作)集中到一處。透過這種統一的視圖,您可以輕鬆回放、偵錯和監控代理的行為。
6) 使用簡單的 API 啟動/暫停/恢復:代理應該可以透過簡單的 API 來控制啟動、暫停和恢復工作流程。
7) 透過工具呼叫聯繫人類:每當代理人需要幫助或輸入時,讓它使用與自動化任務相同的工具(例如通知、批准請求)與人類溝通。
8) 掌控自己的控制流程:不要讓工具隱藏代理正在執行的操作。保持步驟清晰,以便檢查或更改。
9) 將錯誤壓縮到上下文視窗:匯總錯誤並將其包含在代理的上下文視窗中,以便模型能夠學習並從錯誤中恢復。不要發送完整的日誌,只需發送有助於解決問題的內容。
10) 小型化、專注化的代理:遵循可組合性原則,設計代理人使其能夠做好一件事。小型化、專注化的代理商更易於建置和測試。
11) 從任何地方觸發,在任何地方與使用者會面:允許代理由來自任何來源(API、cron 作業、使用者操作)的事件觸發,以便它們適應不同的工作流程。
12) 讓你的代理人成為無狀態的 Reducer :設計代理來處理輸入並返回輸出,而無需在執行之間保留內部狀態。無狀態代理程式更易於擴展、測試和從錯誤中恢復。
這是目前最有價值的程式碼庫之一。它涵蓋了代理的發展歷程(是什麼引領我們走到今天) 、當 LLM 變得更加聰明時會發生什麼,以及其他更多內容,並提供了視覺化範例。
它在 GitHub 上有 8.9k 個星。
{% cta https://github.com/humanlayer/12-factor-agents %} 星級 12 因子代理 ⭐️ {% endcta %}
如果您想了解如何將您的 GenAI 代理想法從概念轉化為實際生產,這個程式碼庫將為您提供逐步指南。它包含大量實用的程式碼驅動教程,旨在幫助您建立生產級代理程式。
每個教程都包含在自己的資料夾中,並包含可執行的筆記本和程式碼範例,因此您可以在幾分鐘內從概念轉變為工作代理。
您將發現整個 GenAI 代理生命週期的覆蓋範圍,從原型設計到部署,具有可重複使用的模式和真實世界的藍圖。
一些教程重點:
GPU 部署:使用 Runpod 大規模部署代理程式以實現高效能推理
可觀察性:使用 LangSmith 和 Qualifire 加入追蹤、日誌和除錯,以便您可以即時監控代理。
多代理協調:使用 A2A 協定的代理程式工作流程和訊息交換
安全與護欄:學習使用 Qualifire、LlamaFirewall 和 Apex 的範例攻擊來防止提示注入和有毒輸出。
記憶系統:使用 Redis 建立由語意搜尋支持的混合短期和長期記憶。
網路搜尋整合:建立使用 Tavily API 取得和處理即時網路資料的代理程式。
還有關於微調、前端、打包等的教程,全部使用具有最佳實踐的流行框架。
它在 GitHub 上有 8.5k 個星。
{% cta https://github.com/NirDiamant/agents-towards-production %} 明星代理商走向生產⭐️ {% endcta %}
該儲存庫是學習、建立和共享 GenAI 代理(社群)的絕佳資源,範圍從簡單的對話機器人到複雜的多代理系統。
每個概念都透過可執行的筆記本進行講解,並40+ projects added via hackathons
。它非常實用,非常有用。
您將找到使用 LangGraph、CrewAI、OpenAI Swarm、LangChain、PydanticAI 等的範例。
類別和涵蓋內容的清單:
簡單對話代理(上下文/歷史)
品質保證代理(使用LLMs進行提問/回答)
資料分析代理程式(NLP + 資料集查詢)
LangGraph 工作流程
模型上下文協定(連接外部工具/資料)
ATLAS(多智能體學術規劃師)
科學論文代理
Chiron(費曼式教學導師)
客戶支援和情緒代理
合約分析工具包
端對端測試自動化代理
附有 TTS 的詩歌創作器
音樂作曲家經紀人
謀殺之謎遊戲引擎
您可以在 readme 中查看詳細的實作清單。它在 GitHub 上已有 14.5k 個 star。
{% cta https://github.com/NirDiamant/GenAI\_Agents %} 星級 GenAI 代理 ⭐️ {% endcta %}
這個 repo 擁有一系列使用 RAG、AI 代理、多代理團隊、MCP、自主遊戲代理、語音代理等建置的 Awesome LLM 應用程式。
使用 OpenAI、Anthropic、Google 以及 DeepSeek、Qwen 或 Llama 等開源模型,您可以在電腦上本地執行這些模型。
一些傑出的專案:
如果你正在使用 LLM 進行建置,那麼這個 repo 就像一個創意寶庫。它在 GitHub 上擁有超過 5 萬顆星。
{% cta https://github.com/Shubhamsaboo/awesome-llm-apps %} 星級超棒的 LLM 應用 ⭐️ {% endcta %}
OpenAgents(由 xlang‑ai 開發)是一個開源平台,它使日常用戶和開發人員能夠透過簡單的 Web 介面輕鬆地與現實世界的 AI 代理程式互動並建立現實世界的 AI 代理程式。
下面我們來簡單看一下它的設計方式:
目前,它擁有三個強大的代理:
1) Data Agent
:讓您直接透過聊天執行 Python 或 SQL 查詢、清理資料和建立視覺化效果。
2) Plugins Agent
:連接到 200 多個日常插件(如天氣、購物或 Wolfram Alpha),並且可以智慧地選擇適合任務的插件。
3) Web Agent
:使用 Chrome 擴充功能代表您瀏覽網站(例如填寫表格、發佈到 Twitter、取得路線)
您可以查看官方文件中的示範影片和完整演練。
簡而言之,OpenAgents 與 ChatGPT Plus 類似,但它是開源的並且具有一定程度的可自訂性,這使得它能夠進行資料分析、使用工具和自主瀏覽,所有這些都易於擴展或自架。
它在 GitHub 上有 4.4k 個星。
{% cta https://github.com/xlang-ai/OpenAgents %} 星級 OpenAgents ⭐️ {% endcta %}
這個 repo 是一個來自 15 多個真實 AI 產品的海量系統提示和設定檔庫如 v0、Cursor、Manus、Same.dev、Lovable、Devin、Replit Agent、Windsurf Agent、VSCode Agent、Dia Browser、Trae AI、Cluely、Xcode & Spawn,甚至還有像 Codex CLI、Bolt、RooCode 這樣的開源代理程式。
它包含超過 7,500 行內容,對於任何對現代人工智慧系統如何「被指示」行為、推理和互動感興趣的人來說,它是最大的、最實用的參考書之一。
如果您符合以下情況,這將非常有用:
建造 LLM 代理或副駕駛
建立更好的系統/指令提示
逆向工程代理行為背後的邏輯
還有另一個可靠的集合(~3k⭐️)您可能會覺得有用。
系統提示 repo 在 GitHub 上有 67k+ 顆星。
{% cta https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools %} 星係提示⭐️ {% endcta %}
如果您對現實世界的 AI 代理應用程式感到好奇,此 repo 重點介紹了醫療保健、金融、教育、零售、物流、遊戲等行業的 500 多個用例。
每個用例都連結到一個開源專案,使其成為一個實用指南,而不僅僅是一個想法清單。
許多範例都是使用 CrewAI、AutoGen、LangGraph 和 Agno 等框架建構的。例如,CrewAI 流程包括:
電子郵件自動回复
會議助理
寫書或編劇
行銷策略產生器
登陸頁面產生器
您還會發現獨特的代理架構,例如 NVIDIA 整合的 LangGraph 代理程式。
這是一個很棒的 repo,可以瀏覽並獲得靈感。它在 GitHub 上有 1.8k 個 star。
{% cta https://github.com/ashishpatel26/500-AI-Agents-Projects %} 500 個人工智慧代理專案明星 ⭐️ {% endcta %}
協議聽起來可能很無聊,但它們是代理在現實世界中真正發揮作用的原因。
框架會變,協定不會變。所以你應該花點時間學習這些基礎。
如果您有任何問題、反饋或最終建置了一些很酷的東西,請在評論中分享。
祝你今天過得愉快!下次見 :)
| 您可以檢查
我在anmolbaranwal.com上工作。
感謝您的閱讀! 🥰 |
|
| --------- | -------- |
在Twitter上關注 CopilotKit 和 AG-UI 並打招呼!
如果您想建立一些很酷的東西,請加入 AG-UI Discord 。
原文出處:https://dev.to/copilotkit/ai-agent-protocols-every-developer-should-know-in-2025-39m3