Python A2A — это реализация протокола Google Agent-to-Agent (A2A), который позволяет агентам искусственного интеллекта взаимодействовать друг с другом, используя общий стандартизированный формат. Это устраняет необходимость в индивидуальной интеграции между сервисами.
В этом руководстве мы будем использовать подход, основанный на декораторах, который предоставляет библиотека python-a2a. С помощью простых декораторов @agent и @skill вы можете определить личность и поведение вашего агента, а библиотека позаботится об обработке протокола и потоке сообщений.
Этот метод идеально подходит для быстрого создания полезных агентов, ориентированных на решение конкретных задач, не беспокоясь о логике низкоуровневого взаимодействия.
Установка зависимостей
Чтобы начать работу, вам необходимо установить библиотеку python-a2a, которая предоставляет чёткую абстракцию для создания и запуска агентов, следующих протоколу A2A.
Откройте терминал и выполните команду:
`pip install python-a2A`
Создание агентов
В этом руководстве мы создадим двух агентов:
* один для расчёта доходности по акциям на основе инвестиций, ставки и времени;
* другой для корректировки суммы с учётом инфляции за период в несколько лет.
Агент EMI (emi_agent.py)
“`python
from pythona2a import A2AServer, skill, agent, runserver, TaskStatus, TaskState
import re
@agent(
name=”EMI Calculator Agent”,
description=”Calculates EMI for a given principal, interest rate, and loan duration”,
version=”1.0.0″
)
class EMIAgent(A2AServer):
# …
“`
Агент инфляции (inflation_agent.py)
“`python
from pythona2a import A2AServer, skill, agent, runserver, TaskStatus, TaskState
import re
@agent(
name=”Inflation Adjusted Amount Agent”,
description=”Calculates the future value adjusted for inflation”,
version=”1.0.0″
)
class InflationAgent(A2AServer):
# …
“`
Создание сети агентов
Сначала запустите обоих агентов в двух отдельных терминалах:
`python emi_agent.py`
`python inflation_agent.py`
Каждый из этих агентов предоставляет конечную точку REST API (например, http://localhost:4737 для EMI, http://localhost:4747 для инфляции). Они прослушивают входящие задачи (например, «рассчитать EMI для ₹2,00,000…») и отвечают текстовыми ответами.
Теперь мы добавим этих двух агентов в нашу сеть:
“`python
from python_a2a import AgentNetwork, A2AClient, AIAgentRouter
Create an agent network
network = AgentNetwork(name=”Economics Calculator”)
Add agents to the network
network.add(“EMI”, “http://localhost:4737”)
network.add(“Inflation”, “http://localhost:4747”)
“`
Далее мы создадим маршрутизатор для интеллектуальной маршрутизации запросов к лучшему агенту. Это основная утилита протокола A2A — он определяет стандартный формат задач, чтобы агенты могли обрабатываться единообразно, а маршрутизаторы могли принимать интеллектуальные решения о маршрутизации с использованием LLM.
“`python
router = AIAgentRouter(
llm_client=A2AClient(“http://localhost:5000/openai”), # LLM for making routing decisions
agent_network=network
)
“`
Наконец, мы отправим запросы агентам:
“`python
query = “Calculate EMI for ₹200000 at 5% interest over 18 months.”
agentname, confidence = router.routequery(query)
print(f”Routing to {agent_name} with {confidence:.2f} confidence”)
Get the selected agent and ask the question
agent = network.getagent(agentname)
response = agent.ask(query)
print(f”Response: {response}”)
“`
Проверьте записные книжки — inflationagent.py, network.ipynb и emiagent.py. Все заслуги за это исследование принадлежат исследователям этого проекта. Также подписывайтесь на нас в Twitter и присоединяйтесь к нашему сообществу в ML SubReddit с более чем 100 тысячами участников и подписывайтесь на нашу рассылку.