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 тысячами участников и подписывайтесь на нашу рассылку.