Tworzenie systemów wieloagentowych z protokołem komunikacji agentów (ACP)

Tworzenie systemów wieloagentowych z protokołem komunikacji agentów (ACP)

W miarę rozwoju świata sztucznej inteligencji programiści przechodzą od pojedynczych AI modeli złożonych systemów wieloagentowych, w których liczni wyspecjalizowani agenci współpracują ze sobą w celu rozwiązania problemów.

Zmiana ta niesie ze sobą ogromne wyzwanie: jak sprawić, by ci różni agenci, być może stworzeni przez różne zespoły przy użyciu różnych narzędzi, skutecznie ze sobą rozmawiali? To właśnie tutaj niezbędny staje się ujednolicony protokół. 

Protokół komunikacji agenta (ACP) oferuje rozwiązanie, zapewniając ujednolicony język komunikacji agentów, dzięki czemu systemy stają się bardziej skalowalne, elastyczne i łatwiejsze w zarządzaniu.

W tym przewodniku znajdziesz szczegółowy opis tworzenia skalowalnego rozwiązania wieloagentowy system komunikacji wykorzystujący protokół komunikacji agentów

Czym jest protokół komunikacji agentów (ACP)?

Protokół komunikacji agentów (ACP) to otwarty protokół zaprojektowany w celu standaryzacji sposobu AI agentów komunikować się ze sobą. Pomyśl o tym jak o wspólnym języku, takim jak angielski lub mandaryński, ale dla agentów oprogramowania.

architektura światło f865806d00
ŹRÓDŁO OBRAZU: IBM pszczołaAI projekt

Zapewnia ujednolicony interfejs, który umożliwia agentom bezproblemową współpracę, niezależnie od język programowania lub framework, w którym zostały zbudowane. Rozwiązuje to główny problem w rozwijaniu systemów wieloagentowych, gdzie integrowanie agentów często wymaga niestandardowego, kruchego kodu, który psuje się za każdym razem, gdy agent jest aktualizowany.

image?url=https%3A%2F%2Fstrona internetowa wyszukiwania prod cms uploads.s3.us.cloud obiekt storage.appdomain.cloud%2FBee AI animacja 8a662c5834

Opracowany przez IBM Research i obecnie będący częścią Linux Foundation pszczołaAI projekt, ACP jest zbudowany na prostej, ale potężnej architekturze klient-serwer. Umożliwia bezproblemową interakcję między AI klientów i narzędzia hostowane w chmurze, umożliwiające wykonywanie zadań modułowych w czasie rzeczywistym. Oto jak to działa:

An AI agent (zbudowany przy użyciu dowolnego frameworka, takiego jak Crew)AI lub Smolagents) jest „opakowany” wewnątrz serwera ACP.
Serwer ten pełni funkcję hosta, umożliwiając wykrycie agenta i dostęp do niego.
Inni agenci lub procesy, działający jako klienci ACP, mogą następnie wysyłać standardowe żądania do tego serwera w celu interakcji z hostowanym agentem.

Taka struktura oznacza, że ​​można łatwo wymienić agenta na nową wersję lub zupełnie innego agenta zbudowanego na innym środowisku, bez konieczności przepisywania całego systemu.

Podstawowe zasady ACP

Aby wdrożyć ACP, musisz zrozumieć jego podstawowe elementy składowe. Protokół standaryzuje komunikację za pomocą kilku kluczowych komponentów, które zapewniają, że każda wiadomość jest ustrukturyzowana, jasna i możliwa do wykonania.

1

Klasa danych ACPMessage

Sercem protokołu jest ACPMessage klasa danych. Jest to standardowy format wszystkich wiadomości wysyłanych między agentami. Zapewnia, że ​​każdy pakiet komunikacyjny zawiera niezbędne informacje, aby mógł zostać zrozumiany i prawidłowo przekierowany. Typowy ACPMessage obejmuje:

Nadawca i odbiorca: Określa nadawcę wiadomości i jej docelowego odbiorcę.
Performatywny: Najważniejsza część wiadomości, wskazująca nadawcę's zamiar.
Treść: Faktyczne dane lub instrukcje, które są wysyłane.
Identyfikator konwersacji: Unikalny identyfikator umożliwiający grupowanie powiązanych wiadomości w pojedynczy wątek konwersacji.
2

Performatywy

Performatyw to czasownik, który definiuje cel komunikatu. Informuje odbiorcę, jakiego rodzaju działania lub odpowiedzi się oczekuje. Typowe performatywy obejmują:

ZAPYTANIE: Prosi o informacje.
ŻĄDANIE: Prosi agenta o wykonanie określonej czynności.
POINFORMOWAĆ: Udziela informacji nie oczekując odpowiedzi.
Zapisz się: Prosi o przyszłe aktualizacje na dany temat.
AUDYCJA: Wysyła wiadomość do wszystkich dostępnych agentów.
3

Akcja

ACPAgent jest klasą bazową dla każdego agenta uczestniczącego w systemie. Definiuje agenta's tożsamość i jej podstawowe możliwości, takie jak wysyłanie i odbieranie ACPMessagesKażdy agent ma unikalną nazwę lub identyfikator, który umożliwia systemowi kierowanie do niego wiadomości.

4

Broker wiadomości ACPMessage

W systemie z wieloma agentami potrzebny jest centralny urząd pocztowy do obsługi całego ruchu wiadomości. ACPMessageBroker służy temu celowi. To's centralny komponent routingu, który odbiera wiadomości od agentów i zapewnia ich dostarczenie do właściwego odbiorcy. Ta architektura brokera jest kluczowa dla skalowalności i zarządzania systemem.

Przewodnik po kodowaniu dla Twojego pierwszego systemu ACP

System ACP

Teraz pozwól's zakasać rękawy i stworzyć prosty, zgodny z ACP system przesyłania wiadomości Python. Ten samouczek będzie używał Google's API Gemini do przetwarzania języka naturalnego, jak zademonstrowano w oryginalnej implementacji.

Krok 1: Konfigurowanie środowiska

Najpierw musisz zainstalować potrzebną bibliotekę Pythona do interakcji z Google's generatywny AI modele.

pip install google-generativeai

Będziesz musiał również skonfigurować swoje Klucz API aby uwierzytelnić Twoje żądania.

Krok 2: Definiowanie podstawowych komponentów ACP

Niech's przetłumaczyć podstawowe koncepcje ACP na Kod PythonaZaczniemy od zdefiniowania struktury naszej wiadomości.

# 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
        )

Następnie definiujemy ACPAgent Klasa. Każdy agent będzie miał nazwę i metodę obsługi wiadomości przychodzących.

# 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

Na koniec tworzymy plik ACPMessageBroker do zarządzania komunikacją.

# 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.")

Krok 3: Tworzenie i wdrażanie agentów

Mając już ramy, możemy tworzyć wyspecjalizowanych agentów. Niech's zrobić Agent badawczy który może odpowiedzieć na pytania i Menedżer Agent który to podważa.

importuj google.generativeai jak genai

# 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)

Krok 4: Uruchomienie systemu

Teraz pozwól's złóż to wszystko do kupy i zobacz w akcji.

# 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")

Po uruchomieniu tego kodu zobaczysz agent menedżer wyślij zapytanie, broker kieruje je do badacza, badacz przetwarza je i wysyła odpowiedź, a broker kieruje odpowiedź z powrotem do menedżera. Ta prosta interakcja pokazuje solidny, odseparowany przepływ komunikacji.

Skalowanie systemu za pomocą zaawansowanych przepływów pracy

Prawdziwa moc ACP staje się oczywista, gdy skalujesz od dwóch agentów do wielu, tworząc złożone przepływy pracy. Protokół obsługuje zaawansowane wzorce, takie jak łańcuchy sekwencyjne i hierarchiczne.

Sekwencyjny przepływ pracy: Pierwsze żądanie uruchamia serię agentów, jednego po drugim. Na przykład, Menedżer Agent mógłbym zapytać Agent badawczy w celu zebrania danych, które następnie przekazuje swoje ustalenia Agent pisarski sporządzić raport.
Hierarchiczny przepływ pracy: Najwyższy poziom Agent routera otrzymuje złożone zapytanie, dzieli je na podzadania i deleguje każde podzadanie do odpowiedniego wyspecjalizowanego agenta. Jest to powszechne w zaawansowanych systemach, takich jak te używane do AI agenci SEOgdzie różni agenci mogą obsługiwać automatyczne badanie słów kluczowych, optymalizacja treścii analiza konkurencji.

Ta umiejętność budowania modułowego, wzajemnie połączone systemy zmienia zasady gry. Pozwala zespołom rozwijać i utrzymywać własnych agentów niezależnie, wiedząc, że będą oni płynnie podłączać się do większego systemu dzięki wspólnemu protokołowi.

ACP w realnym świecie: przypadek SEO

Jak ACP sprawia, że ​​SEO jest bezwysiłkowe

Zasady ACP nie są tylko teoretyczne; mają bezpośrednie zastosowanie w automatyzacji biznesu. Rozważmy dziedzinę Optymalizacja wyszukiwarki internetowej (SEO). Nowoczesny Strategia SEO obejmuje wiele ruchomych części: analizę słów kluczowych, tworzenie treści, optymalizację na stronie i śledzenie linków przychodzących.

System multi-agentowy zasilany przez ACP mógłby zautomatyzować cały ten proces. Wyobraź sobie system z:

  1. An Agent strategii SEO który monitoruje trendy wyszukiwania i identyfikuje luki w treściach.
  2. A Agent ds. badań słów kluczowych który znajduje wartościowe materiały podstawowe i Słowa kluczowe LSI.
  3. A Agent ds. pisania treści który generuje artykuły na podstawie wytycznych stratega.
  4. An Agent optymalizacji na stronie która sprawdza czytelność treści, gęstość słów kluczowych i trafność semantyczną.

Dzięki ACP agenci mogli komunikować się bezbłędnie. Agent strateg mógł wysłać REQUEST do agenta badawczego w celu uzyskania słów kluczowych, który następnie wysyła INFORM wiadomość ze swoimi ustaleniami do agenta piszącego. Ta modułowość sprawia, że ​​cały przepływ pracy SEO jest bardziej wydajny i skalowalny.

Wniosek

Budowanie współpracy AI systemy jest jedną z najbardziej ekscytujących granic w technologia. Jednak bez wspólnego standardu komunikacji systemy te ryzykują, że staną się splątanym bałaganem niestandardowych integracji. Protokół komunikacji agenta (ACP) zapewnia czyste, solidne i skalowalne rozwiązanie tego problemu.

Standaryzując sposób interakcji agentów za pomocą prostego model klient-serwer i dobrze zdefiniowaną strukturę wiadomości, ACP umożliwia deweloperom tworzenie elastycznych i wydajnych aplikacji wieloagentowych. Jak wykazano w naszym Przewodnik po Pythoniewdrożenie podstawowego systemu ACP jest proste. 

Stamtąd możesz skalować, aby tworzyć wyrafinowane, hierarchiczne przepływy pracy, które mogą zająć się złożonymi zadaniami w dziedzinach od rozwoju oprogramowania po SEO. Przyjęcie protokołu takiego jak ACP jest kluczowym krokiem w kierunku przyszłości, w której inteligentni agenci współpracują ze sobą bezproblemowo, aby pomóc nam osiągnąć nasze cele.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Ta strona używa Akismet do redukcji spamu. Dowiedz się, w jaki sposób przetwarzane są Twoje dane dotyczące komentarzy.

Dołącz Aimojo Plemię!

Dołącz do ponad 76,200 XNUMX członków i otrzymuj co tydzień fachowe porady! 
???? BONUS: Odbierz nasze 200 dolarówAI „Zestaw narzędzi Mastery Toolkit” GRATIS po rejestracji!

Trendy AI Narzędzia
Superskalowalna sztuczna inteligencja

Zmień dowolny adres URL w gotową do uruchomienia kampanię reklamową w kilka minut AI Agent reklamowy stworzony dla marketerów efektywnościowych i marek nastawionych na rozwój

tl; dv

Przestań gubić to, co zostało powiedziane. Zacznij działać na każdym spotkaniu. AI narzędzie do sporządzania notatek ze spotkań, które zapisuje rozmowy i przekształca je w gotowe do podjęcia działań wyniki.

Zapytaj Yurę

Zmień każdą rozmowę z klientem w zrealizowaną akcję biznesową Bez kodu AI Agent stworzony do realizacji operacyjnej

Kuberns

Wdrażaj mądrzej. Skaluj szybciej. Obniż koszty chmury nawet o 40%. Rozwiązanie PaaS w chmurze AI-Agentic stworzone z myślą o wdrożeniach pełnego stosu bez konieczności konfiguracji.

uizard

Przekształcaj pomysły w interaktywne prototypy bez żadnych umiejętności projektowych AI Narzędzie do projektowania interfejsów użytkownika do tworzenia szkieletów, makiet i prototypów aplikacji

© Copyright 2023 - 2026 | Zostań AI Pro | Wykonane z ♥