上一頁展示了如何在單一程序中組合代理——一個代理作為函數工具呼叫另一個代理,框架則負責其餘部分。 當所有客服人員都存在於同一個應用程式、共用同一個執行時,且由同一團隊維護時,這種模式運作良好。
但現實世界的代理系統經常需要跨界溝通。 代理對代理(Agent-to-Agent,簡稱 A2A)是一個專為此設計的開放協定。 它定義了一種標準方式,讓代理者能夠透過 HTTP、跨越任何邊界、任何語言或框架,彼此發現彼此、交換訊息並協調任務。 Agent Framework 內建 A2A 整合 ,讓您能以最少設定方式託管並呼叫符合 A2A 的客服人員。
何時使用
當你的代理人需要跨越流程中組成無法處理的界線時,使用A2A:
- 服務邊界。 你的旅遊訂票代理以微服務形式運作,而你的報銷代理則以另一種方式運作。 它們不能互相調用為進程內功能工具——它們需要網路協定。
- 球隊界線。 合作團隊擁有一位「合規審查」代理。 你無法存取他們的程式碼、模型或部署——你只需要發送請求並獲得回應。
- 組織界線。 第三方服務提供者則提供專業代理人(文件處理、法律審查、醫療分流)。 你需要一個標準化的方式來發現它、了解它能做什麼,並與它溝通——不論它是用什麼框架或語言建構的。
- 獨立演化。 你的代理需要不同的發佈週期、不同的團隊或不同的語言——但不能緊密結合實作。
小提示
如果你的代理程式都運行在同一個流程中,並由同一個團隊維護,代理程式作為工具 會更簡單且負擔較少。 當你跨越流程、服務或組織邊界時,A2A會帶來價值。
考慮事項
| 考量事項 | 詳細資料 |
|---|---|
| 互通性 | A2A 是框架無關的。 你的 .NET 代理程式可以呼叫 Python 代理程式、LangChain 代理程式,或任何實作該協定的代理程式。 這是 A2A 的主要價值——它是「代理通訊的 HTTP」。 |
| 網路開銷 | 每一個 A2A 呼叫都是 HTTP 請求。 這會比進行中的代理工具通話增加延遲。 對於效能敏感的路徑,請讓代理同址或僅在真正存在邊界的地方使用 A2A。 |
| 操作複雜度 | 遠端代理是分散式服務。 你需要處理網路故障、逾時、重試和版本控制——這些都是你在服務間通訊中會遇到的顧慮。 |
| 執行時的發現 | 經紀人卡讓發現變得動態,但你仍然需要知道該去哪裡找。 在生產環境中,通常會設定已知的代理端點或使用登錄檔。 |
| 交談狀態 | 遠端代理會自行管理其對話狀態(由上下文 ID 鍵控)。 你的客服人員看不到遠端客服的內部推理——只看到它的回應。 如果遠端代理重啟並失去狀態,你的對話上下文可能會遺失。 |
下一步
現在你的代理可以跨越任何邊界溝通,旅程的最後一步是 工作流程 ——針對多步驟、多代理流程的明確、基於圖形的協調,讓你必須完全掌控執行順序、狀態與可恢復性。
深入探討: