Поделиться через


Агенты A2A

Microsoft Agent Framework поддерживает использование удаленного агента, который предоставляется через протокол A2A в приложении, используя ту же AIAgent абстракцию, что и любой другой агент.

Начало работы

Добавьте необходимые пакеты NuGet в проект.

dotnet add package Microsoft.Agents.AI.A2A --prerelease

Создайте агента A2A, используя известное местоположение карты агента.

В следующем сценарии используется хорошо известное расположение карты агента. Он передает корневой URI узла агента A2A конструктору A2ACardResolver, а сопоставитель будет искать карточку агента в https://your-a2a-agent-host/.well-known/agent-card.json.

Сначала создайте A2ACardResolver с URI хоста удаленного агента A2A.

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-адресом агента.

В этом случае вы создаете A2AClient непосредственно с URL-адресом агента.

A2AClient a2aClient = new(new Uri("https://your-a2a-agent-host/echo"));

Затем можно создать экземпляр AIAgent с помощью метода AsAIAgent.

AIAgent agent = a2aClient.AsAIAgent();

Использование агента

Агент стандартный AIAgent и поддерживает все стандартные операции агента.

Дополнительные сведения о запуске и взаимодействии с агентами см. в руководствах по началу работы агента.

Начало работы

Добавьте необходимые пакеты Python в проект.

pip install agent-framework-a2a --pre

Создание агента A2A

В следующем сценарии используется хорошо известное расположение карты агента. Он передает базовый URL-адрес узла A2ACardResolver агента A2A в конструктор, а резолвер ищет карточку агента по адресу https://your-a2a-agent-host/.well-known/agent.json.

Сначала создайте A2ACardResolver с URL-адресом удаленного узла агента A2A.

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")

Получите карточку агента и создайте экземпляр A2AAgent для удаленного агента A2A.

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"
)

Создание агента A2A с помощью URL-адреса

Кроме того, можно указать непосредственно на URL-адрес агента, если он известен. Это может быть полезно для плотно связанных систем, частных агентов или целей разработки, где клиенты напрямую настроены с информацией о карточке агента и URL-адресом агента.

В этом случае вы создаете A2AAgent непосредственно с URL-адресом агента.

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 поддерживает все стандартные операции агента.

Дополнительные сведения о запуске и взаимодействии с агентами см. в руководствах по началу работы агента.

Дальнейшие шаги