Bygg system med flera agenter med Agent Communication Protocol (ACP)

Bygg system med flera agenter med Agent Communication Protocol (ACP)

I takt med att världen av artificiell intelligens expanderar, går utvecklare från en enda AI modeller till komplexa system med flera agenter där ett flertal specialiserade agenter samarbetar för att lösa problem.

Denna förändring medför en enorm utmaning: Hur får man dessa olika agenter, eventuellt byggda av olika team med olika verktyg, att kommunicera effektivt med varandra? Det är här ett standardiserat protokoll blir avgörande. 

Ocuco-landskapet Agentkommunikationsprotokoll (ACP) erbjuder en lösning som tillhandahåller ett enhetligt språk för agenter att kommunicera med, vilket gör systemen mer skalbara, flexibla och enklare att hantera.

Den här guiden ger en detaljerad genomgång av hur man bygger en skalbar kommunikationssystem med flera agenter med hjälp av agentkommunikationsprotokollet

Vad är Agent Communication Protocol (ACP)?

Agent Communication Protocol (ACP) är ett öppet protokoll utformat för att standardisera hur AI medel kommunicera med varandra. Tänk på det som ett gemensamt språk, som engelska eller mandarin, fast för programvaruagenter.

arkitekturlampa f865806d00
BILDKÄLLA: IBM BeeAI projektet

Det tillhandahåller ett enhetligt gränssnitt som gör det möjligt för agenter att arbeta tillsammans sömlöst, oavsett programmeringsspråk eller ramverket de byggdes med. Detta löser ett stort problem vid utveckling av system med flera agenter, där integration av agenter ofta kräver anpassad, spröd kod som går sönder varje gång en agent uppdateras.

image?url=https%3A%2F%2Fresearch webbplats prod cms uploads.s3.us.cloud objektlagring.appdomain.cloud%2FBee AI animering 8a662c5834

Utvecklad av IBM Research och nu en del av Linux Foundations BeeAI projektetACP är byggt på en enkel men kraftfull klient-server-arkitektur. Den möjliggör sömlös interaktion mellan AI klienter och molnbaserade verktyg, vilket möjliggör modulär körning av uppgifter i realtid. Så här fungerar det:

An AI agent (byggd med valfritt ramverk som CrewAI eller Smolagents) är "inlindad" inuti en ACP-server.
Den här servern fungerar som en värd, vilket gör agenten synbar och tillgänglig.
Andra agenter eller processer, som fungerar som ACP-klienter, kan sedan skicka standardiserade förfrågningar till den här servern för att interagera med den värdbaserade agenten.

Den här strukturen innebär att du enkelt kan byta ut en agent mot en ny version eller en helt annan agent byggd på ett annat ramverk utan att behöva skriva om hela systemet.

Kärnprinciperna för ACP

För att implementera ACP behöver du förstå dess grundläggande byggstenar. Protokollet standardiserar kommunikationen genom några få nyckelkomponenter som säkerställer att varje meddelande är strukturerat, tydligt och handlingsbart.

1

ACPMeddelandedataklass

Kärnan i protokollet är ACPMessage dataklass. Detta är ett standardiserat format för alla meddelanden som skickas mellan agenter. Det säkerställer att varje kommunikationspaket innehåller den information som krävs för att det ska kunna förstås och dirigeras korrekt. En typisk ACPMessage ingår:

Avsändare och mottagare: Identifierar vem som skickade meddelandet och dess avsedda mottagare.
Performativ: Den viktigaste delen av meddelandet, som anger avsändaren's uppsåt.
Innehåll: De faktiska data eller instruktioner som skickas.
Konversations-ID: En unik identifierare för att gruppera relaterade meddelanden i en enda konversationstråd.
2

Performativa

Ett performativt verb är ett verb som definierar syftet med meddelandet. Det talar om för mottagaren vilken typ av handling eller respons som förväntas. Vanliga performativ inkluderar:

FRÅGA: Ber om information.
BEGÄRAN: Ber agenten att utföra en specifik åtgärd.
INFORMERA: Ger information utan att förvänta sig svar.
Prenumerera: Frågar om framtida uppdateringar om ett ämne.
UTSÄNDA: Skickar ett meddelande till alla tillgängliga agenter.
3

ACPAgent

Ocuco-landskapet ACPAgent är basklassen för alla agenter som deltar i systemet. Den definierar agenten's identitet och dess kärnfunktioner, såsom att skicka och ta emot ACPMessagesVarje agent har ett unikt namn eller ID som gör det möjligt för systemet att dirigera meddelanden till den.

4

ACPMeddelandemäklare

I ett system med många agenter behöver man ett centralt postkontor för att hantera all meddelandetrafik. ACPMessageBroker tjänar detta syfte. Det's en central routingkomponent som tar emot meddelanden från agenter och säkerställer att de levereras till rätt mottagare. Denna mäklararkitektur är nyckeln till att göra systemet skalbart och hanterbart.

En kodningsguide för ditt första ACP-system

ACP-systemet

Nu, låt's smutsa ner händerna och bygga ett enkelt, ACP-kompatibelt meddelandesystem i PythonDen här handledningen kommer att använda Google's Gemini API för bearbetning av naturligt språk, vilket demonstrerades i den ursprungliga implementeringen.

Steg 1: Konfigurera din miljö

Först måste du installera det nödvändiga Python-biblioteket för att interagera med Google.'s generativ AI modeller.

pip install google-generativeai

Du måste också konfigurera din API-nyckel för att autentisera dina förfrågningar.

Steg 2: Definiera de viktigaste ACP-komponenterna

Låt's översätta de centrala AVS-koncepten till Python-kodVi börjar med att definiera vår meddelandestruktur.

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

Därefter definierar vi ACPAgent klass. Varje agent kommer att ha ett namn och en metod för att hantera inkommande meddelanden.

# 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

Slutligen skapar vi ACPMessageBroker att hantera kommunikationen.

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

Steg 3: Skapa och implementera agenter

Med ramverket på plats kan vi skapa specialiserade agenter.'s göra en Forskaragent som kan svara på frågor och en Chefsagent som frågar efter det.

importera google.generativeai som 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)

Steg 4: Köra systemet

Nu, låt's sätta ihop allt och se det i aktion.

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

När du kör den här koden kommer du att se chefsagent skicka en fråga, mäklaren dirigerar den till forskaren, forskaren bearbetar den och skickar ett svar, och mäklaren dirigerar svaret tillbaka till chefen. Denna enkla interaktion demonstrerar ett robust, frikopplat kommunikationsflöde.

Skala ditt system med avancerade arbetsflöden

Den verkliga kraften hos ACP blir tydlig när man skalar upp från två agenter till många, vilket skapar komplexa arbetsflöden. Protokollet stöder avancerade mönster som sekventiella och hierarkiska kedjor.

Sekventiellt arbetsflöde: En första begäran utlöser en serie agenter, en efter en. Till exempel en Chefsagent kunde fråga en Forskningsagent att samla in data, som sedan skickar sina resultat till en Skrivagent att utarbeta en rapport.
Hierarkiskt arbetsflöde: En toppnivå Routeragent tar emot en komplex fråga, delar upp den i deluppgifter och delegerar varje deluppgift till lämplig specialiserad agent. Detta är vanligt i sofistikerade system som de som används för AI agenter för SEO, där olika agenter kan hantera automatiserad sökordsanalys, innehållsoptimering, och konkurrentanalys.

Denna förmåga att bygga modulärt, sammankopplade system är banbrytande. Det gör det möjligt för team att utveckla och underhålla sina egna agenter oberoende, i vetskap om att de kommer att anslutas sömlöst till det större systemet tack vare det gemensamma protokollet.

ACP i verkligheten: Argumenten för SEO

Hur ACP gör SEO enkelt

Principerna för ACP är inte bara teoretiska; de har direkta tillämpningar inom affärsautomation. Betrakta området för Sökmotoroptimering (SEO). En modern SEO-strategi involverar många rörliga delar: sökordsanalys, innehållsskapande, optimering på sidan och spårning av bakåtlänkar.

Ett system med flera agenter, drivet av ACP, skulle kunna automatisera hela processen. Tänk dig ett system med:

  1. An SEO-strateg som övervakar söktrender och identifierar innehållsluckor.
  2. A Agent för sökordsanalys som finner primära och LSI-nyckelord.
  3. A Agent för innehållsförfattande som genererar artiklar baserade på briefs från strategen.
  4. An Agent för optimering på sidan som kontrollerar innehållet för läsbarhet, sökordstäthet och semantisk relevans.

Med ACP kunde dessa agenter kommunicera felfritt. Strategagenten kunde skicka en REQUEST till researchagenten för sökord, som sedan skickar en INFORM meddelande med sina resultat till skribenten. Denna modularitet gör hela SEO-arbetsflödet mer effektivt och skalbart.

Slutsats

Bygga samarbete AI system är en av de mest spännande gränsområdena i teknikUtan en gemensam kommunikationsstandard riskerar dock dessa system att bli ett virrvarr av anpassade integrationer. Agent Communication Protocol (ACP) ger en ren, robust och skalbar lösning på detta problem.

Genom att standardisera hur agenter interagerar genom en enkel klient-servermodell och en väldefinierad meddelandestruktur gör ACP det möjligt för utvecklare att bygga flexibla och kraftfulla applikationer för flera agenter. Som visats i vår Python-guide, är det enkelt att implementera ett grundläggande ACP-system. 

Därifrån kan du skala upp och skapa sofistikerade, hierarkiska arbetsflöden som kan hantera komplexa uppgifter inom områden som mjukvaruutveckling till SEO. Att använda ett protokoll som ACP är ett viktigt steg mot en framtid där intelligenta agenter samarbeta smidigt för att hjälpa oss att uppnå våra mål.

Lämna en kommentar

E-postadressen publiceras inte. Obligatoriska fält är markerade *

Den här sidan använder Akismet för att minska spam. Lär dig hur din kommentarsdata behandlas.

Gå med i Aimojo Stam!

Gå med i 76,200 XNUMX+ medlemmar för insidertips varje vecka! 
🎁 BONUS: Få våra 200 dollarAI ”Mastery Toolkit” GRATIS när du registrerar dig!

Trend AI Verktyg
Superskallig AI

Förvandla valfri URL till en lanseringsklar annonskampanj på några minuter Ocuco-landskapet AI Annonsagent byggd för prestationsbaserade marknadsförare och tillväxtfokuserade varumärken

tl;dv

Sluta tappa bort det som sagts. Börja agera på varje möte. Ocuco-landskapet AI mötesanteckningsmaskin som spelar in och omvandlar samtal till handlingsbara resultat.

AskYura

Förvandla varje kundkonversation till en avslutad affärsåtgärd Ingen kod AI Agent byggd för operativ exekvering

Kuberns

Implementera smartare. Skala snabbare. Sänk molnkostnaderna med upp till 40 %. AI-Agentic Cloud PaaS byggd för fullstack-distribution utan konfiguration.

Trollkarl

Förvandla idéer till interaktiva prototyper utan en enda designkunskap AI UI-designverktyg för wireframes, mockups och appprototyper

© Upphovsrätt 2023 - 2026 | Bli en AI Proffs | Tillverkad med ♥