Microsoft Agent Framework 支持使用与任何其他代理相同的 AIAgent 抽象通过应用程序中的 A2A 协议公开的远程代理。
入门
将所需的 NuGet 包添加到项目。
dotnet add package Microsoft.Agents.AI.A2A --prerelease
使用已知的代理卡位置创建 A2A 代理
首先,让我们看看使用已知代理卡位置的方案。
我们将 A2A 代理主机的根 URI 传递给A2ACardResolver构造函数,解析程序将查找代理卡。https://your-a2a-agent-host/.well-known/agent-card.json
首先,使用远程 A2A 代理主机的 URI 创建一个 A2ACardResolver 。
using System;
using A2A;
using Microsoft.Agents.AI;
using Microsoft.Agents.AI.A2A;
A2ACardResolver agentCardResolver = new(new Uri("https://your-a2a-agent-host"));
使用AIAgent辅助方法为远程 A2A 代理创建GetAIAgentAsync实例。
AIAgent agent = await agentCardResolver.GetAIAgentAsync();
使用直接配置/专用发现机制创建 A2A 代理
如果已知,也可以直接指向代理 URL。 这可用于紧密耦合的系统、专用代理或开发目的,其中客户端直接配置了代理卡信息和代理 URL。
在本例中,我们直接使用代理的 URL 构造 A2AClient 。
A2AClient a2aClient = new(new Uri("https://your-a2a-agent-host/echo"));
然后,我们可以使用AIAgent方法创建GetAIAgent的实例。
AIAgent agent = a2aClient.GetAIAgent();
使用代理
代理是标准 AIAgent 代理,支持所有标准代理操作。
有关如何运行和与代理交互的详细信息,请参阅 代理入门教程 。
入门
将所需的 Python 包添加到项目。
pip install agent-framework-a2a --pre
创建 A2A 代理
首先,让我们看看使用已知代理卡位置的方案。
我们将 A2A 代理主机的基 URL 传递给A2ACardResolver构造函数,解析器将会在https://your-a2a-agent-host/.well-known/agent.json查找代理卡。
首先,使用远程 A2A 代理主机的 URL 创建一个 A2ACardResolver 。
import httpx
from a2a.client import A2ACardResolver
# Create httpx client for HTTP communication
async with httpx.AsyncClient(timeout=60.0) as http_client:
resolver = A2ACardResolver(httpx_client=http_client, base_url="https://your-a2a-agent-host")
获取代理卡并创建远程 A2A 代理的 A2AAgent 实例。
from agent_framework.a2a import A2AAgent
# Get agent card from the well-known location
agent_card = await resolver.get_agent_card(relative_card_path="/.well-known/agent.json")
# Create A2A agent instance
agent = A2AAgent(
name=agent_card.name,
description=agent_card.description,
agent_card=agent_card,
url="https://your-a2a-agent-host"
)
使用 URL 创建 A2A 代理
如果已知,也可以直接指向代理 URL。 这可用于紧密耦合的系统、专用代理或开发目的,其中客户端直接配置了代理卡信息和代理 URL。
在本例中,我们直接使用代理的 URL 构造 A2AAgent 。
from agent_framework.a2a import A2AAgent
# Create A2A agent with direct URL configuration
agent = A2AAgent(
name="My A2A Agent",
description="A directly configured A2A agent",
url="https://your-a2a-agent-host/echo"
)
使用代理
A2A 代理支持所有标准代理操作。
有关如何运行和与代理交互的详细信息,请参阅 代理入门教程 。