A2A 代理

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 代理支持所有标准代理操作。

有关如何运行和与代理交互的详细信息,请参阅 代理入门教程

后续步骤