阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!

大多數AI代理在嘗試將其插入真實應用程式時就會崩潰。問題在於缺乏共享協議。

但這種情況正在迅速改變。在過去的一年裡,AG-UI(使用者互動)、A2A(代理間通訊)和MCP(工具存取)等協定已經改變了生態系統。

因此,我抓住機會學習了這些協議,並了解了它們是如何協同工作的。這篇文章涵蓋了我所學到的關於協議(AG-UI、ACP、A2A、MCP)的所有知識。

您還將找到用於學習和建立 AI 代理的最佳教育存儲庫集合。

此列表將為您提供所需的基礎知識和工具。


1. AG-UI——代理-使用者互動協定。

市面上已經有了可靠的多步驟代理框架。但是,當你嘗試將代理插入到實際應用中時,事情就開始變得糟糕了:

  • 無需自訂 WebSocket 伺服器,即可逐一令牌地進行串流回應

  • 顯示即時工具進度,暫停以獲得人工回饋,而不會失去上下文

  • 保持大型共享狀態(程式碼、表格、資料)同步,無需將所有內容重新傳送到 UI

  • 允許使用者在任務執行過程中中斷、取消或回覆代理(不會遺失狀態)

代理生態系中的問題

來源: dailydoseofds.com

大多數代理後端(例如 LangGraph、CrewAI 等)都有自己的流格式、狀態邏輯和工具呼叫 API。因此,如果切換技術棧,則需要重寫所有內容(這不可擴展)。

解決方案:AG-UI

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 在代理協定棧中處於什麼位置?

AG-UI 與其他兩個頂級代理協議相輔相成:

  • MCP 將代理程式與工具連接起來

  • A2A 將代理彼此連結起來

  • AG-UI 將代理連接到最終用戶

代理生態系中的 ag ui

AG-UI 的作用類似於人機互動的REST層,幾乎沒有樣板,並且易於整合到任何技術堆疊中。

它在 GitHub 上有 5.1k 個星。

{% cta https://github.com/ag-ui-protocol/ag-ui %} 星級 AG-UI ⭐️ {% endcta %}


2. A2A——代理↔代理交互協定。

代理系統的功能越來越強大,但它們卻沒有共同的語言。

如果代理 A 想請求代理 B 幫忙完成某項任務,則需要:

  • 編寫自訂 API

  • 硬編碼端點

  • 為每個新的代理程式對建立適配器

因此,建立在不同框架(LangGraph、CrewAI…)上的代理最終會陷入孤立狀態,無法協調。

A2A(Agent-to-Agent)是 Google 推出的協議,它使用JSON-RPC & SSE standard解決了這個問題。透過 A2A,代理可以:

  • 發現彼此的能力。

  • 決定如何溝通(文字、表格、媒體)

  • 安全地協作完成長期運作的任務。

  • 操作時無需暴露其內部狀態、記憶體或工具。

首先,使用Python SDKJS SDK

pip install a2a-sdk

or

npm install @a2a-js/sdk

🧠 A2A 的工作原理(流程)

1) 代理程式發布JSON Agent Card (包含功能、終端節點、授權資訊)。其他代理商則取得該卡,以了解「該聯絡誰以及如何聯絡」。

2)透過 JSON-RPC 委託任務

  • 客戶端代理程式使用tasks/sendsendSubscribe發起任務

  • 透過 HTTP 進行呼叫,並採用結構化輸入

  • 遠端代理響應任務 ID 並開始執行

1) 透過 SSE ( TaskStatusUpdateTaskArtifactUpdate ) 傳輸進度和中間工件流。

2)互動式任務中輸入

  • 遠端代理可以暫停並發出input-required

  • 呼叫代理透過相同的任務 ID 回應附加輸入

5)代理程式透過結構化的「部件」和「工件」交換文字、資料、檔案(如音訊/視訊)。

✅ 範例:端到端代理協作

這是一個非常簡單的例子:

  • 使用者給予代理 A 一個複雜的任務

  • 代理 A 將其分解為子任務

  • 它使用特工卡找到特工 B、C、D

  • 它使用 A2A 呼叫來委派工作

  • 這些代理並行執行、串流更新並請求額外的輸入

  • 代理 A 收集並合併結果

這就是代理商之間互相交流的方式。

雖然它仍然很新,但標準化代理到代理的協作是很好的,類似於 MCP 對代理到工具互動所做的那樣。

MCP 擴展了單一代理的功能。 A2A 擴展了代理的協作方式,並且不受後端/框架的限制。

a2a 與 mcp 對比

來源: dailydoseofds.com

如果您有興趣了解更多訊息,請查看 Auth0 的MCP vs A2A

它在 GitHub 上擁有 18k+ 顆星。

{% cta https://github.com/a2aproject/A2A %} 星號 A2A ⭐️ {% endcta %}


3.MCP——模型上下文協定。

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)做出了重大改進(尤其是在安全性方面)。

甲基氯丙烯

來源: dailydoseofds.com

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 和基於雲端的系統。

mcp 伺服器

圖片來源: ByteByteGo3

如果您有興趣閱讀更多內容,這裡有一些值得一讀的內容:

{% cta https://github.com/modelcontextprotocol/modelcontextprotocol %} 星級 MCP ⭐️ {% endcta %}


4. ACP-基於 REST/流的代理通訊協定。

ACP(代理通訊協定)建立在 A2A 的許多理念之上,但更進一步。

它是用於 AI 代理、應用程式和人類之間通信的開放協議。它基於標準化的 RESTful API 執行,並支援:

  • 多模態交互

  • 串流回應

  • 有狀態或無狀態模式

  • 線上和離線代理發現

  • 針對長時間執行的任務採用非同步優先設計(但也適用於同步呼叫)

主要有兩個組成部分:

a) ACP client :由代理、應用程式或服務使用,透過 ACP 協定發出請求

b) ACP server :託管一個或多個代理,使用 ACP 接收請求並傳回結果。 Agent 透過 REST 進行暴露。

高級多代理編排

高階多代理編排的架構流程

該協定非常簡單,可以與標準 HTTP 工具(例如 curl、Postman 或瀏覽器請求)配合使用。如果您喜歡以程式設計方式整合 ACP,可以使用官方的Python SDKTypescript SDK

您可以使用此命令新增 ACP SDK。

uv add acp-sdk

🎯 ACP 與 A2A 有何不同?

雖然兩者都支援任務委派、串流媒體、多模式內容和代理商發現:

  • 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 %}


5. MCP 初學者指南-微軟提供的概念和基礎知識以及實際範例。

微軟的這個開源課程提供了具有真實用例的結構化學習路徑。

它包括 C#、Java、JavaScript、TypeScript 和 Python 等流行語言的實用編碼範例。

透過遵循此,您可以輕鬆掌握 MCP 生態系統並了解如何從頭開始建立或擴展符合 MCP 的系統。

初學者的 MCP

有一些很棒的博客,但它們無法涵蓋所有細節。

這是課程涵蓋的主題的完整清單。

{% 嵌入 https://gist.github.com/Anmol-Baranwal/4d56abe74a6b423b431039a14e3cb2de %}

它在 GitHub 上有 5.1k 個星。

{% cta https://github.com/microsoft/mcp-for-beginners %} 為初學者的 MCP 加星 ⭐️ {% endcta %}


6. 12 因素代理程式-建立可靠的 LLM 應用程式的原則。

即使 LLM 變得更加強大,建立可靠的 AI 軟體仍然取決於如何圍繞它們進行設計。

Dex Horthy 的這個 repo 將建構生產級代理的經驗提煉為 12 個核心原則。

{% 嵌入 https://www.youtube.com/watch?v=8kMaTybvDUw

%}

每個 LLM 代理的核心都是一個循環:

  1. LLM 使用結構化工具呼叫來決定下一步

  2. 程式碼執行工具呼叫

  3. 結果附加到上下文視窗

  4. 重複,直到確定下一步“完成”

但最終,這種方法並沒有達到我們所期望的效果。

代理循環

每個因素都附有直覺的範例、詳細的解釋和程式碼片段。

以下是所有 12 個因素的簡要概述(附有了解更多資訊的連結):

1) 自然語言到工具呼叫:將使用者輸入轉換為結構化操作(JSON 或函數呼叫),以便確定性程式碼可靠地處理執行。

2) 掌控你的提示:不要將你的提示工程外包給框架。像對待程式碼一樣對待提示(版本控制、測試、易於更新)。

3) 掌控你的上下文視窗:只將重要的內容傳送給模型。刪除所有不必要的內容,以保持快速執行並避免超出限制。

4) 工具只是結構化的輸出:當您的代理程式使用工具時,讓它以您的程式碼可以理解的乾淨、易讀的 JSON 回應。

5) 統一執行狀態和業務狀態:將代理程式的步驟追蹤(正在執行的操作)和業務資料(正在處理的操作)集中到一處。透過這種統一的視圖,您可以輕鬆回放、偵錯和監控代理的行為。

因素 5

6) 使用簡單的 API 啟動/暫停/恢復:代理應該可以透過簡單的 API 來控制啟動、暫停和恢復工作流程。

因素 6

7) 透過工具呼叫聯繫人類:每當代理人需要幫助或輸入時,讓它使用與自動化任務相同的工具(例如通知、批准請求)與人類溝通。

因素 7

8) 掌控自己的控制流程:不要讓工具隱藏代理正在執行的操作。保持步驟清晰,以便檢查或更改。

因素 8

9) 將錯誤壓縮到上下文視窗:匯總錯誤並將其包含在代理的上下文視窗中,以便模型能夠學習並從錯誤中恢復。不要發送完整的日誌,只需發送有助於解決問題的內容。

因素 9

10) 小型化、專注化的代理:遵循可組合性原則,設計代理人使其能夠做好一件事。小型化、專注化的代理商更易於建置和測試。

11) 從任何地方觸發,在任何地方與使用者會面:允許代理由來自任何來源(API、cron 作業、使用者操作)的事件觸發,以便它們適應不同的工作流程。

12) 讓你的代理人成為無狀態的 Reducer :設計代理來處理輸入並返回輸出,而無需在執行之間保留內部狀態。無狀態代理程式更易於擴展、測試和從錯誤中恢復。

因素 12

這是目前最有價值的程式碼庫之一。它涵蓋了代理的發展歷程(是什麼引領我們走到今天) 、當 LLM 變得更加聰明時會發生什麼,以及其他更多內容,並提供了視覺化範例。

它在 GitHub 上有 8.9k 個星。

{% cta https://github.com/humanlayer/12-factor-agents %} 星級 12 因子代理 ⭐️ {% endcta %}


7. Agents Towards Production-用來建立真實世界 GenAI 代理程式的程式碼優先教學。

代理走向生產

如果您想了解如何將您的 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 %}


8. GenAI Agents - GenAI 代理實現,從簡單到高級。

該儲存庫是學習、建立和共享 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 %}


9. Awesome LLM Apps——帶有 AI Agents 和 RAG 的超棒 LLM 應用程式集合。

很棒的LLMs應用

這個 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 %}


10. OpenAgents-野外語言代理的開放平台。

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 %}


11.系統提示- 大量真實係統提示、工具和 AI 配置的集合。

這個 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 %}


12. 500 個 AI 代理專案- 跨行業 AI 代理用例的集合。

如果您對現實世界的 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上工作。
感謝您的閱讀! 🥰 | 嘰嘰喳喳 GitHub 領英 |

| --------- | -------- |

結尾揮手告別的 GIF

Twitter上關注 CopilotKit 和 AG-UI 並打招呼!

如果您想建立一些很酷的東西,請加入 AG-UI Discord


原文出處:https://dev.to/copilotkit/ai-agent-protocols-every-developer-should-know-in-2025-39m3


共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。

阿川私房教材:
學 JavaScript 前端,帶作品集去面試!

63 個專案實戰,寫出作品集,讓面試官眼前一亮!

立即開始免費試讀!