
З розширенням світу штучного інтелекту розробники переходять від одного до одного AI моделей до складних багатоагентних систем, де численні спеціалізовані агенти співпрацюють для вирішення проблем.
Протокол зв'язку агентів (ACP) пропонує рішення, забезпечуючи єдину мову для спілкування агентів, роблячи системи більш масштабованими, гнучкими та простішими в управлінні.
Цей посібник містить детальний покроковий опис побудови масштабованої багатоагентної системи зв'язку за допомогою протоколу зв'язку агентів.
Що таке протокол зв'язку агентів (ACP)?
Протокол зв'язку агентів (ACP) – це відкритий протокол, розроблений для стандартизації способу AI агенти спілкуватися один з одним. Уявіть собі це як спільну мову, як-от англійську чи китайську, але для програмних агентів.
Він забезпечує єдиний інтерфейс, який дозволяє агентам безперешкодно працювати разом, незалежно від мови програмування чи фреймворку, за допомогою яких вони були створені. Це вирішує головну проблему розробки багатоагентних систем, де інтеграція агентів часто вимагає спеціального, крихкого коду, який ламається щоразу, коли агент оновлюється.

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

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

Команда ACPAgent є базовим класом для будь-якого агента, що бере участь у системі. Він визначає агента's ідентифікація та її основні можливості, такі як надсилання та отримання ACPMessagesКожен агент має унікальне ім'я або ідентифікатор, який дозволяє системі направляти йому повідомлення.
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 стає очевидною, коли ви масштабуєтеся з двох агентів до багатьох, створюючи складні робочі процеси. Протокол підтримує розширені шаблони, такі як послідовні та ієрархічні ланцюги.
Ця здатність створювати модульні, взаємопов’язані системи змінює правила гри. Вона дозволяє командам самостійно розробляти та підтримувати власні агенти, знаючи, що вони безперешкодно підключатимуться до більшої системи завдяки спільному протоколу.
ACP у реальному світі: аргументи на користь SEO

Принципи ACP не є просто теоретичними; вони мають пряме застосування в автоматизації бізнесу. Розглянемо сферу пошукової оптимізації (SEO). Сучасна SEO-стратегія включає багато рухомих частин: аналіз ключових слів, створення контенту, оптимізацію сторінки та відстеження зворотних посилань.
Багатоагентна система на базі ACP могла б автоматизувати весь цей процес. Уявіть собі систему з:
- An Агент SEO-стратега який відстежує тенденції пошуку та виявляє прогалини в контенті.
- A Агент з дослідження ключових слів який знаходить високоцінну первинну та Ключові слова LSI.
- A Агент з написання контенту який генерує статті на основі брифів від стратега.
- An Агент оптимізації сторінки який перевіряє контент на читабельність, щільність ключових слів та семантичну релевантність.
За допомогою ACP ці агенти могли бездоганно спілкуватися. Агент-стратег міг надіслати REQUEST дослідницькому агенту за ключовими словами, який потім надсилає INFORM повідомлення з його висновками агенту з написання. Така модульність робить весь робочий процес SEO більш ефективним та масштабованим.
Висновок
Створення спільної роботи AI системи є одним з найцікавіших кордонів у technologyОднак, без спільного стандарту зв'язку ці системи ризикують перетворитися на складний комплекс користувацьких інтеграцій. Протокол зв'язку агентів (ACP) забезпечує чітке, надійне та масштабоване рішення цієї проблеми.
Стандартизуючи взаємодію агентів за допомогою простої клієнт-серверної моделі та чітко визначеної структури повідомлень, ACP дозволяє розробникам створювати гнучкі та потужні багатоагентні додатки. Як показано в нашому посібнику з Python , реалізація базової системи ACP є простою.
Звідти ви можете масштабуватися для створення складних, ієрархічних робочих процесів, які можуть вирішувати складні завдання в різних галузях, від розробки програмного забезпечення до SEO. Впровадження такого протоколу, як ACP, є важливим кроком до майбутнього, де інтелектуальні агенти безперешкодно співпрацюють, щоб допомогти нам досягти наших цілей.


