代理對代理(A2A)

上一頁展示了如何在單一程序中組合代理——一個代理作為函數工具呼叫另一個代理,框架則負責其餘部分。 當所有客服人員都存在於同一個應用程式、共用同一個執行時,且由同一團隊維護時,這種模式運作良好。

但現實世界的代理系統經常需要跨界溝通。 代理對代理(Agent-to-Agent,簡稱 A2A)是一個專為此設計的開放協定。 它定義了一種標準方式,讓代理者能夠透過 HTTP、跨越任何邊界、任何語言或框架,彼此發現彼此、交換訊息並協調任務。 Agent Framework 內建 A2A 整合 ,讓您能以最少設定方式託管並呼叫符合 A2A 的客服人員。

何時使用

當你的代理人需要跨越流程中組成無法處理的界線時,使用A2A:

  • 服務邊界。 你的旅遊訂票代理以微服務形式運作,而你的報銷代理則以另一種方式運作。 它們不能互相調用為進程內功能工具——它們需要網路協定。
  • 球隊界線。 合作團隊擁有一位「合規審查」代理。 你無法存取他們的程式碼、模型或部署——你只需要發送請求並獲得回應。
  • 組織界線。 第三方服務提供者則提供專業代理人(文件處理、法律審查、醫療分流)。 你需要一個標準化的方式來發現它、了解它能做什麼,並與它溝通——不論它是用什麼框架或語言建構的。
  • 獨立演化。 你的代理需要不同的發佈週期、不同的團隊或不同的語言——但不能緊密結合實作。

小提示

如果你的代理程式都運行在同一個流程中,並由同一個團隊維護,代理程式作為工具 會更簡單且負擔較少。 當你跨越流程、服務或組織邊界時,A2A會帶來價值。

考慮事項

考量事項 詳細資料
互通性 A2A 是框架無關的。 你的 .NET 代理程式可以呼叫 Python 代理程式、LangChain 代理程式,或任何實作該協定的代理程式。 這是 A2A 的主要價值——它是「代理通訊的 HTTP」。
網路開銷 每一個 A2A 呼叫都是 HTTP 請求。 這會比進行中的代理工具通話增加延遲。 對於效能敏感的路徑,請讓代理同址或僅在真正存在邊界的地方使用 A2A。
操作複雜度 遠端代理是分散式服務。 你需要處理網路故障、逾時、重試和版本控制——這些都是你在服務間通訊中會遇到的顧慮。
執行時的發現 經紀人卡讓發現變得動態,但你仍然需要知道該去哪裡找。 在生產環境中,通常會設定已知的代理端點或使用登錄檔。
交談狀態 遠端代理會自行管理其對話狀態(由上下文 ID 鍵控)。 你的客服人員看不到遠端客服的內部推理——只看到它的回應。 如果遠端代理重啟並失去狀態,你的對話上下文可能會遺失。

下一步

現在你的代理可以跨越任何邊界溝通,旅程的最後一步是 工作流程 ——針對多步驟、多代理流程的明確、基於圖形的協調,讓你必須完全掌控執行順序、狀態與可恢復性。

深入探討: