Создание многоагентных систем с протоколом связи агентов (ACP)

Создание многоагентных систем с протоколом связи агентов (ACP)

По мере расширения мира искусственного интеллекта разработчики переходят от одного AI моделей в сложные многоагентные системы, в которых многочисленные специализированные агенты сотрудничают для решения проблем.

Этот сдвиг несет с собой огромную проблему: как заставить этих разных агентов, возможно, созданных разными командами с использованием разных инструментов, эффективно общаться друг с другом? Вот где стандартизированный протокол становится необходимым. 

Протокол связи с агентами (ACP) предлагает решение, предоставляя единый язык для общения агентов, что делает системы более масштабируемыми, гибкими и простыми в управлении.

В этом руководстве подробно описан процесс создания масштабируемой многоагентной системы связи с использованием протокола связи агентов (Agent Communication Protocol).

Что такое протокол связи агента (ACP)?

Протокол связи с агентами (ACP) — это открытый протокол, разработанный для стандартизации способа AI агенты общаться друг с другом. Думайте об этом как об общем языке, как об английском или мандаринском, но для программных агентов.

архитектурный свет f865806d00
ИСТОЧНИК ИЗОБРАЖЕНИЯ: IBM ПчелаAI Проект

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

image?url=https%3A%2F%2Fresearch веб-сайт prod cms uploads.s3.us.cloud объектное хранилище.appdomain.cloud%2FBee AI анимация 8a662c5834

Разработано IBM Research и теперь является частью Linux Foundation. ПчелаAI Проект, ACP построен на простой, но мощной архитектуре клиент-сервер. Он обеспечивает бесшовное взаимодействие между AI клиентов и размещенные в облаке инструменты, позволяющие выполнять модульные задачи в режиме реального времени. Вот как это работает:

An AI агент (создан с использованием любого фреймворка, например CrewAI или Smolagents) «обернут» внутрь сервера ACP.
Этот сервер действует как хост, делая агента обнаруживаемым и доступным.
Другие агенты или процессы, выступающие в качестве клиентов ACP, могут затем отправлять стандартизированные запросы на этот сервер для взаимодействия с размещенным агентом.

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

Основные принципы ACP

Чтобы внедрить ACP, вам нужно понять его основные строительные блоки. Протокол стандартизирует коммуникацию с помощью нескольких ключевых компонентов, которые гарантируют, что каждое сообщение структурировано, понятно и применимо на практике.

Основные принципы ACP
ИСТОЧНИК ИЗОБРАЖЕНИЯ: IBM Протокол связи агента
1

Класс данных ACPMessage

Сердцем протокола является ACPMessage класс данных. Это стандартизированный формат для всех сообщений, отправляемых между агентами. Он гарантирует, что каждый пакет связи содержит необходимую информацию для его правильного понимания и маршрутизации. Типичный ACPMessage включает в себя:

Отправитель и Получатель: Определяет отправителя сообщения и его предполагаемого получателя.
Перформативный: Самая важная часть сообщения, указывающая отправителя.'s намерение.
Содержание: Фактические отправляемые данные или инструкции.
Идентификатор разговора: Уникальный идентификатор для группировки связанных сообщений в одну цепочку сообщений.
2

Перформативы

Перформатив — это глагол, который определяет цель сообщения. Он сообщает принимающему агенту, какое действие или ответ ожидается. Распространенные перформативы включают:

ЗАПРОС: Запрашивает информацию.
ЗАПРОС: Просит агента выполнить определенное действие.
ИНФОРМИРУЙТЕ: Предоставляет информацию, не ожидая ответа.
ПОДПИСКА: Запрашивает будущие обновления по теме.
ТРАНСЛИРОВАТЬ: Отправляет сообщение всем доступным агентам.
3

ACPAgent

Агент АКП
ИСТОЧНИК ИЗОБРАЖЕНИЯ: IBM Протокол связи агента

ACPAgent является базовым классом для любого агента, участвующего в системе. Он определяет агента's идентификация и ее основные возможности, такие как отправка и получение ACPMessages. Каждый агент имеет уникальное имя или идентификатор, который позволяет системе направлять ему сообщения.

4

ACPMessageBroker

В системе со множеством агентов вам понадобится центральное почтовое отделение для обработки всего трафика сообщений. ACPMessageBroker служит этой цели. Это's центральный компонент маршрутизации, который получает сообщения от агентов и обеспечивает их доставку правильному получателю. Эта архитектура брокера является ключом к тому, чтобы сделать систему масштабируемой и управляемой.

Руководство по кодированию вашей первой системы ACP

Система АКП

Теперь давайте приступим к практической работе и создадим простую систему обмена сообщениями, совместимую с протоколом ACP, на языке Python . В этом руководстве будет использоваться API Gemini от Google для обработки естественного языка, как показано в оригинальной реализации.

Шаг 1. Настройка среды

Для начала вам необходимо установить необходимую библиотеку Python для взаимодействия с Google.'s генеративный AI модели.

pip install google-generativeai

Вам также потребуется настроить свой API-ключ для аутентификации запросов.

Шаг 2: Определение основных компонентов ACP

Давайте переведём основные концепции ACP в код на Python . Начнём с определения структуры нашего сообщения.

# Define the ACP Message Structure using a dataclass
from dataclasses import dataclass, field
from typing import Any, Dict, Optional
import uuid

@dataclass
class ACPMessage:
    """A standard message format for Agent Communication Protocol."""
    sender: str
    receiver: str
    performative: str
    content: Any
    message_id: str = field(default_factory=lambda: str(uuid.uuid4()))
    conversation_id: Optional[str] = None
    metadata: Dict[str, Any] = field(default_factory=dict)

    def create_reply(self, sender: str, performative: str, content: Any) -> 'ACPMessage':
        """Helper to create a reply to this message."""
        return ACPMessage(
            sender=sender,
            receiver=self.sender,
            performative=performative,
            content=content,
            conversation_id=self.conversation_id or self.message_id
        )

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

# Define the base class for an ACP Agent
class ACPAgent:
    """Base class for an agent in an ACP system."""
    def __init__(self, name, broker):
        self.name = name
        self.broker = broker
        self.broker.register_agent(self)

    def send_message(self, message: ACPMessage):
        """Sends a message through the broker."""
        print(f"[{self.name}] Sending message to {message.receiver}: {message.performative}")
        self.broker.route_message(message)

    def receive_message(self, message: ACPMessage):
        """Processes an incoming message."""
        print(f"[{self.name}] Received message from {message.sender}: {message.performative}")
        # Agent-specific logic goes here
        pass

Наконец, мы создаем ACPMessageBroker для управления коммуникацией.

# Define the Message Broker for routing messages
class ACPMessageBroker:
    """A central broker to route messages between agents."""
    def __init__(self):
        self.agents: Dict[str, ACPAgent] = {}

    def register_agent(self, agent: ACPAgent):
        """Adds a new agent to the network."""
        print(f"[Broker] Registering agent: {agent.name}")
        self.agents[agent.name] = agent

    def route_message(self, message: ACPMessage):
        """Routes a message to the intended recipient."""
        recipient_agent = self.agents.get(message.receiver)
        if recipient_agent:
            recipient_agent.receive_message(message)
        else:
            print(f"[Broker] Error: Agent '{message.receiver}' not found.")

Шаг 3: Создание и внедрение агентов

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

импорт google.generativeai как генай

# Configure your Gemini API key
# genai.configure(api_key="YOUR_API_KEY")

class ResearcherAgent(ACPAgent):
    """An agent that uses a generative model to answer queries."""
    def __init__(self, name, broker):
        super().__init__(name, broker)
        # self.model = genai.GenerativeModel('gemini-pro')

    def receive_message(self, message: ACPMessage):
        super().receive_message(message)
        if message.performative == "QUERY":
            question = message.content
            # For demonstration, we'll use a canned response.
            # In a real scenario, you would call the model:
            # response_text = self.model.generate_content(question).text
            response_text = f"My analysis on '{question}' indicates a positive outlook."

            reply = message.create_reply(
                sender=self.name,
                performative="INFORM",
                content=response_text
            )
            self.send_message(reply)

class ManagerAgent(ACPAgent):
    """An agent that delegates tasks and queries other agents."""
    def receive_message(self, message: ACPMessage):
        super().receive_message(message)
        if message.performative == "INFORM":
            print(f"[{self.name}] Got a response: {message.content}")

    def start_task(self, topic: str):
        """Starts a new task by querying the researcher."""
        print(f"[{self.name}] Initiating research on: {topic}")
        query_message = ACPMessage(
            sender=self.name,
            receiver="Researcher_1",
            performative="QUERY",
            content=f"What is the market trend for {topic}?",
            conversation_id=str(uuid.uuid4())
        )
        self.send_message(query_message)

Шаг 4: Запуск системы

Теперь позвольте's соберите все это вместе и посмотрите в действии.

# Main execution block
if __name__ == "__main__":
    # 1. Initialise the broker
    message_broker = ACPMessageBroker()

    # 2. Create and register agents
    manager = ManagerAgent("Manager_Alpha", message_broker)
    researcher = ResearcherAgent("Researcher_1", message_broker)

    # 3. Kick off a task
    manager.start_task("AI-powered SEO tools")

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

Масштабирование вашей системы с помощью расширенных рабочих процессов

Реальная мощь ACP становится очевидной, когда вы масштабируетесь от двух агентов до многих, создавая сложные рабочие процессы. Протокол поддерживает расширенные шаблоны, такие как последовательные и иерархические цепочки.

Последовательный рабочий процесс: Первоначальный запрос запускает ряд агентов, один за другим. Например, Менеджер Агент мог бы спросить Исследовательский агент для сбора данных, которые затем передают свои выводы Писающий агент составить отчет.
Иерархический рабочий процесс: Высший уровень Агент маршрутизатора получает сложный запрос, разбивает его на подзадачи и делегирует каждую подзадачу соответствующему специализированному агенту. Это распространено в сложных системах, таких как те, которые используются для AI агенты для SEO, где разные агенты могут заниматься автоматизированное исследование ключевых слов, оптимизация содержанияи анализ конкурентов.

Возможность создавать модульные, взаимосвязанные системы кардинально меняет ситуацию. Она позволяет командам разрабатывать и поддерживать собственных агентов независимо друг от друга, зная, что благодаря общему протоколу они беспрепятственно интегрируются в более крупную систему.

ACP в реальном мире: аргументы в пользу SEO

Как ACP упрощает SEO

Принципы ACP не ограничиваются теорией; они имеют прямое применение в автоматизации бизнес-процессов. Рассмотрим область поисковой оптимизации (SEO). Современная SEO-стратегия включает в себя множество составляющих: анализ ключевых слов, создание контента, оптимизация страниц и отслеживание обратных ссылок.

Многоагентная система на базе ACP могла бы автоматизировать весь этот процесс. Представьте себе систему с:

  1. An Агент SEO-стратега который отслеживает тенденции поиска и выявляет пробелы в контенте.
  2. A Агент по исследованию ключевых слов который находит высокоценные первичные и Ключевые слова LSI.
  3. A Агент по написанию контента который генерирует статьи на основе сводок от стратега.
  4. An Агент оптимизации на странице который проверяет контент на читабельность, плотность ключевых слов и семантическую релевантность.

С ACP эти агенты могли общаться безупречно. Агент-стратег мог отправить REQUEST исследовательскому агенту по ключевым словам, который затем отправляет INFORM сообщение с его выводами для агента-писателя. Эта модульность делает весь рабочий процесс SEO более эффективным и масштабируемым.

Заключение

Построение совместной работы AI системы является одним из самых захватывающих рубежей в Технология. Однако без общего стандарта связи эти системы рискуют превратиться в запутанную мешанину пользовательских интеграций. Протокол связи агентов (ACP) обеспечивает чистое, надежное и масштабируемое решение этой проблемы.

Стандартизация взаимодействия агентов с помощью простой клиент-серверной модели и четко определенной структуры сообщений позволяет ACP разработчику создавать гибкие и мощные многоагентные приложения. Как показано в нашем руководстве по Python , реализация базовой системы ACP довольно проста.

Отсюда можно масштабировать систему для создания сложных иерархических рабочих процессов, способных решать комплексные задачи в самых разных областях, от разработки программного обеспечения до SEO. Внедрение протокола, подобного ACP, — важный шаг на пути к будущему, где интеллектуальные агенты будут беспрепятственно сотрудничать, помогая нам достигать наших целей.

Оставьте комментарий

Ваш адрес электронной почты не будет опубликован. Обязательные поля отмечены *.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши комментарии.

Присоединяйтесь к команде Aimojo Племя!

Присоединяйтесь к более чем 76,200 XNUMX участникам, чтобы получать инсайдерские советы каждую неделю! 
???? БОНУС: Получите наши 200 долларов “AI «Мастерский набор инструментов» БЕСПЛАТНО при регистрации!

Топ AI Инструменты
Нграм

Превратите любой документ о продукте в готовый к публикации видеоролик за считанные минуты. AI Генератор видеороликов, созданный для продуктовых и маркетинговых команд.

ZenCreator

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

Pixazo AI

Представьте, что вам за 50. AI модели готовы воплотить в жизнь все, что вы только можете себе представить. Одна платформа. Сотни AI Возможности. Бесконечные способы творчества.

Фитнес AI

Тренируйтесь эффективнее. Продвигайтесь быстрее. AI Тренер, который знает, что вам следует поднять в следующий раз.

OiiOii AI

Создавайте анимацию студийного качества с помощью OiiOii AI. Превратите одну идею в полноценную анимацию.