Побудова багатоагентних систем за допомогою протоколу зв'язку агентів (ACP)

Побудова багатоагентних систем за допомогою протоколу зв'язку агентів (ACP)

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

Цей перехід несе величезний виклик: Як змусити ці різні агенти, можливо, створені різними командами за допомогою різних інструментів, ефективно взаємодіяти один з одним? Саме тут стандартизований протокол стає необхідним. 

Протокол зв'язку агентів (ACP) пропонує рішення, забезпечуючи єдину мову для спілкування агентів, роблячи системи більш масштабованими, гнучкими та простішими в управлінні.

Цей посібник містить детальний покроковий опис побудови масштабованої багатоагентної системи зв'язку за допомогою протоколу зв'язку агентів.

Що таке протокол зв'язку агентів (ACP)?

Протокол зв'язку агентів (ACP) – це відкритий протокол, розроблений для стандартизації способу AI агенти спілкуватися один з одним. Уявіть собі це як спільну мову, як-от англійську чи китайську, але для програмних агентів.

архітектурне світло f865806d00
ДЖЕРЕЛО ЗОБРАЖЕННЯ: IBM БджолаAI проект

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

image?url=https%3A%2F%2FДослідницький веб-сайт продукту CMS uploads.s3.us.cloud об'єктне сховище.appdomain.cloud%2FBee AI анімація 8a662c5834

Розроблено IBM Research і тепер є частиною Linux Foundation БджолаAI проект, ACP побудовано на простій, але потужній клієнт-серверній архітектурі. Це забезпечує безперебійну взаємодію між AI клієнтів та хмарні інструменти, що дозволяють виконувати завдання в режимі реального часу за модульною системою. Ось як це працює:

An AI агент (створений за допомогою будь-якого фреймворку, такого як Crew)AI або Smolagents) «загорнутий» всередину ACP-сервера.
Цей сервер діє як хост, що робить агента видимим та доступним.
Інші агенти або процеси, що діють як клієнти ACP, можуть надсилати стандартизовані запити на цей сервер для взаємодії з розміщеним агентом.

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

Основні принципи ACP

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

Основні принципи ACP
ДЖЕРЕЛО ЗОБРАЖЕННЯ: IBM Протокол зв'язку агента
1

Клас даних ACPMessage

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

Відправник і одержувач: Визначає, хто надіслав повідомлення та кому його призначено.
Виконавчий: Найважливіша частина повідомлення, що вказує на відправника's умисел.
Содержание: Фактичні дані або інструкція, що надсилаються.
Ідентифікатор розмови: Унікальний ідентифікатор для групування пов’язаних повідомлень в один ланцюжок повідомлень.
2

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

Перформатив – це дієслово, яке визначає мету повідомлення. Воно повідомляє агенту-отримувачу, яка дія чи реакція очікується. До поширених перформативів належать:

ЗАПИТ: Запитує інформацію.
ЗАПИТ: Просить агента виконати певну дію.
ІНФОРМАЦІЯ: Надає інформацію, не очікуючи відповіді.
SUBSCRIBE: Запитує про майбутні оновлення з теми.
ТРАНСЛЯЦІЯ: Надсилає повідомлення всім доступним агентам.
3

Агент ACPAgent

Агент ACP
ДЖЕРЕЛО ЗОБРАЖЕННЯ: 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 системи є одним з найцікавіших кордонів у technologyОднак, без спільного стандарту зв'язку ці системи ризикують перетворитися на складний комплекс користувацьких інтеграцій. Протокол зв'язку агентів (ACP) забезпечує чітке, надійне та масштабоване рішення цієї проблеми.

Стандартизуючи взаємодію агентів за допомогою простої клієнт-серверної моделі та чітко визначеної структури повідомлень, ACP дозволяє розробникам створювати гнучкі та потужні багатоагентні додатки. Як показано в нашому посібнику з Python , реалізація базової системи ACP є простою.

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

залишити коментар

Ваша адреса електронної пошти не буде опублікована. Обов'язкові поля позначені *

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються дані ваших коментарів.

Реєстрація Aimojo Плем'я!

Приєднуйтеся до 76,000 XNUMX+ учасників, щоб щотижня отримувати поради від інсайдерів! 
🎁 БОНУС: Отримайте наші 200 доларівAI «Набір інструментів майстерності» БЕЗКОШТОВНО при реєстрації!

Тенденції AI Інструменти
accessiBe

AI Дотримання вимог ADA та EAA стало простішим Автоматизоване виправлення порушених WCAG та підтримка судових процесів для кожного бізнесу

SpeakON

Перетворіть кожну вимовлену думку на відшліфований, готовий до миттєвого надсилання текст Перший у світі AI комунікатор для iPhone

Кінк А.І

Твоя фантазія, твої правила: досліджуй Kink AI. Дізнайся про рольові ігри БДСМ та фентезійний чат зі Kink AI.

 

Айфетчлі

Відкритий вихідний код AI Агент, який повертає автоматизацію бізнесу на ваш комп'ютер Місцевий дебют AI робочий простір для досліджень, документів та запланованих робочих процесів.

Булін А.І.

Перетворіть будь-яке фото на вірусний виступ фрістайл-шоу Bulin 47 за лічені секунди Команда AI відеогенератор, створений для однієї культової вуличної сцени.

© Авторське право 2023 - 2026 | Стати AI Професіонал | Зроблено з ♥