Bou multi-agentstelsels met agentkommunikasieprotokol (ACP)

Bou multi-agentstelsels met agentkommunikasieprotokol (ACP)

Namate die wêreld van kunsmatige intelligensie uitbrei, beweeg ontwikkelaars van enkelvoudige AI modelle tot komplekse, multi-agentstelsels waar talle gespesialiseerde agente saamwerk om probleme op te los.

Hierdie verskuiwing bring 'n groot uitdaging: Hoe kry jy hierdie verskillende agente, moontlik gebou deur verskillende spanne met verskillende gereedskap, om effektief met mekaar te kommunikeer? Dit is waar 'n gestandaardiseerde protokol noodsaaklik word. 

Die Agentkommunikasieprotokol (ACP) bied 'n oplossing wat 'n verenigde taal bied vir agente om te kommunikeer, wat stelsels meer skaalbaar, buigsaam en makliker maak om te bestuur.

Hierdie gids bied 'n gedetailleerde stap-vir-stap-deurloop vir die bou van 'n skaalbare multi-agent kommunikasiestelsel met behulp van die Agent Kommunikasie Protokol

Wat is die Agentkommunikasieprotokol (ACP)?

Die Agentkommunikasieprotokol (ACP) is 'n oop protokol wat ontwerp is om die manier waarop AI agente met mekaar kommunikeer. Dink daaraan as 'n gemeenskaplike taal, soos Engels of Mandaryns, maar vir sagteware-agente.

argitektuurlig f865806d00
BEELDBRON: IBM BeeAI projek

Dit bied 'n verenigde koppelvlak wat agente in staat stel om naatloos saam te werk, ongeag die Programmeringstaal of raamwerk waarmee hulle gebou is. Dit los 'n groot hoofpyn op in die ontwikkeling van multi-agentstelsels, waar die integrasie van agente dikwels persoonlike, bros kode vereis wat elke keer breek wanneer 'n agent opgedateer word.

beeld?url=https%3A%2F%2Fresearch webwerf produk cms uploads.s3.us.cloud objekberging.appdomain.cloud%2FBee AI animasie 8a662c5834

Ontwikkel deur IBM Research en nou deel van die Linux Foundation se BeeAI projek, ACP is gebou op 'n eenvoudige maar kragtige kliënt-bediener-argitektuur. Dit maak naatlose interaksie tussen moontlik. AI kliënte en wolk-gehosteerde gereedskap, wat intydse, modulêre taakuitvoering moontlik maak. Hier is hoe dit werk:

An AI agent (gebou met enige raamwerk soos Crew)AI of Smolagents) is "toegedraai" binne 'n ACP-bediener.
Hierdie bediener tree op as 'n gasheer, wat die agent opspoorbaar en toeganklik maak.
Ander agente of prosesse, wat as ACP-kliënte optree, kan dan gestandaardiseerde versoeke na hierdie bediener stuur om met die gehoste agent te kommunikeer.

Hierdie struktuur beteken dat jy maklik 'n agent kan omruil vir 'n nuwe weergawe of 'n heeltemal ander agent wat op 'n ander raamwerk gebou is sonder om die hele stelsel te herskryf.

Die Kernbeginsels van ACP

Om ACP te implementeer, moet jy die fundamentele boustene daarvan verstaan. Die protokol standaardiseer kommunikasie deur 'n paar sleutelkomponente wat verseker dat elke boodskap gestruktureerd, duidelik en uitvoerbaar is.

1

ACPMessage Data Klas

Die kern van die protokol is die ACPMessage dataklas. Dit is 'n gestandaardiseerde formaat vir alle boodskappe wat tussen agente gestuur word. Dit verseker dat elke kommunikasiepakket die nodige inligting bevat sodat dit verstaan ​​en korrek gerouteer kan word. 'n Tipiese ACPMessage sluit in:

Sender en Ontvanger: Identifiseer wie die boodskap gestuur het en die beoogde ontvanger daarvan.
Performatief: Die belangrikste deel van die boodskap, wat die sender aandui's voorneme.
Inhoud: Die werklike data of instruksie wat gestuur word.
Gesprek-ID: 'n Unieke identifiseerder om verwante boodskappe in 'n enkele gespreksdraad te groepeer.
2

Uitvoerende Kunste

'n Performatief is 'n werkwoord wat die doel van die boodskap definieer. Dit sê vir die ontvangende agent watter soort aksie of reaksie verwag word. Algemene performatiewe sluit in:

VRAAG: Vra vir inligting.
VERSOEK: Vra die agent om 'n spesifieke aksie uit te voer.
INLIGTING: Verskaf inligting sonder om 'n antwoord te verwag.
TEKEN IN: Vra vir toekomstige opdaterings oor 'n onderwerp.
UITSENDING: Stuur 'n boodskap aan alle beskikbare agente.
3

ACPAgent

Die ACPAgent is die basisklas vir enige agent wat aan die stelsel deelneem. Dit definieer die agent's identiteit en sy kernvermoëns, soos stuur en ontvang ACPMessagesElke agent het 'n unieke naam of ID wat die stelsel toelaat om boodskappe daarna te stuur.

4

ACPBoodskapmakelaar

In 'n stelsel met baie agente benodig jy 'n sentrale poskantoor om al die boodskapverkeer te hanteer. ACPMessageBroker dien hierdie doel. Dit's 'n sentrale roeteringskomponent wat boodskappe van agente ontvang en verseker dat hulle aan die korrekte ontvanger afgelewer word. Hierdie makelargitektuur is die sleutel om die stelsel skaalbaar en hanteerbaar te maak.

'n Koderingsgids vir jou eerste ACP-stelsel

ACP-stelsel

Nou, laat's kry ons hande vuil en bou 'n eenvoudige, ACP-versoenbare boodskapstelsel in PythonHierdie tutoriaal sal gebruik Google's Tweeling API vir natuurlike taalverwerking, soos gedemonstreer in die oorspronklike implementering.

Stap 1: Stel jou omgewing op

Eerstens moet jy die nodige Python-biblioteek installeer vir interaksie met Google.'s Generative AI modelle.

pip install google-generativeai

Jy sal ook jou moet konfigureer API sleutel om jou versoeke te verifieer.

Stap 2: Definisie van die kern ACP-komponente

Laat's vertaal die kern ACP-konsepte in Python-kodeOns begin deur ons boodskapstruktuur te definieer.

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

Vervolgens definieer ons die ACPAgent klas. Elke agent sal 'n naam en 'n metode hê om inkomende boodskappe te hanteer.

# 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

Laastens skep ons die ACPMessageBroker kommunikasie te bestuur.

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

Stap 3: Skep en implementeer agente

Met die raamwerk in plek, kan ons gespesialiseerde agente skep.'s maak 'n Navorsingsagent wat vrae kan beantwoord en 'n Bestuurderagent wat dit bevraagteken.

invoer google.generativeai as 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)

Stap 4: Die stelsel laat loop

Nou, laat's sit dit alles bymekaar en sien dit in aksie.

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

Wanneer jy hierdie kode uitvoer, sal jy die bestuurderagent stuur 'n navraag, die makelaar stuur dit na die navorser, die navorser verwerk dit en stuur 'n antwoord, en die makelaar stuur die antwoord terug na die bestuurder. Hierdie eenvoudige interaksie demonstreer 'n robuuste, ontkoppelde kommunikasievloei.

Skaal jou stelsel met gevorderde werkvloeie

Die ware krag van ACP word duidelik wanneer jy van twee agente na baie opskaal, wat komplekse werkvloeie skep. Die protokol ondersteun gevorderde patrone soos opeenvolgende en hiërargiese kettings.

Sekwensiële Werkvloei: 'n Aanvanklike versoek aktiveer 'n reeks agente, een na die ander. Byvoorbeeld, 'n Bestuurderagent kon vra 'n Navorsingsagent om data in te samel, wat dan sy bevindinge aan 'n Skryfagent om 'n verslag op te stel.
Hiërargiese Werkvloei: 'n Topvlak Roeteerder Agent ontvang 'n komplekse navraag, verdeel dit in subtake en delegeer elke subtaak aan die toepaslike gespesialiseerde agent. Dit is algemeen in gesofistikeerde stelsels soos dié wat gebruik word vir AI agente vir SEO, waar verskillende agente dalk kan hanteer outomatiese sleutelwoordnavorsing, inhoudoptimalisering, en mededinger-analise.

Hierdie vermoë om modulêr te bou, onderling gekoppelde stelsels is 'n spelwisselaar. Dit laat spanne toe om hul eie agente onafhanklik te ontwikkel en te onderhou, wetende dat hulle naatloos by die groter stelsel sal inskakel danksy die gemeenskaplike protokol.

ACP in die werklike wêreld: Die argument vir SEO

Hoe ACP SEO moeiteloos maak

Die beginsels van ACP is nie net teoreties nie; hulle het direkte toepassings in besigheidsoutomatisering. Beskou die veld van Search Engine Optimization (SEO). 'n Moderne SEO strategie behels baie bewegende dele: sleutelwoordanalise, inhoudskepping, optimalisering op die bladsy en terugskakelopsporing.

'n Multi-agentstelsel, aangedryf deur ACP, kan hierdie hele proses outomatiseer. Stel jou 'n stelsel voor met:

  1. An SEO Strateeg Agent wat soektendense monitor en inhoudgapings identifiseer.
  2. A Sleutelwoordnavorsingsagent wat primêre en hoëwaarde-waarde vind LSI sleutelwoorde.
  3. A Inhoudskryfagent wat artikels genereer gebaseer op opdragte van die strateeg.
  4. An Agent vir optimalisering op die bladsy wat die inhoud vir leesbaarheid, sleutelwoorddigtheid en semantiese relevansie nagaan.

Met ACP kon hierdie agente foutloos kommunikeer. Die strateeg-agent kon 'n REQUEST aan die navorsingsagent vir sleutelwoorde, wat dan 'n INFORM boodskap met sy bevindinge aan die skryfagent. Hierdie modulariteit maak die hele SEO-werkvloei meer doeltreffend en skaalbaar.

Gevolgtrekking

Bou samewerking AI stelsels is een van die opwindendste grense in tegnologieSonder 'n gemeenskaplike kommunikasiestandaard loop hierdie stelsels egter die risiko om deurmekaar gemors van persoonlike integrasies te word. Die Agentkommunikasieprotokol (ACP) bied 'n skoon, robuuste en skaalbare oplossing vir hierdie probleem.

Deur die standaardisering van hoe agente interaksie het deur middel van 'n eenvoudige kliënt-bediener-model en 'n goed gedefinieerde boodskapstruktuur, stel ACP ontwikkelaars in staat om buigsame en kragtige multi-agent toepassings te bou. Soos gedemonstreer in ons Python-gids, die implementering van 'n basiese ACP-stelsel is eenvoudig. 

Van daar af kan jy skaal om gesofistikeerde, hiërargiese werkvloeie te skep wat komplekse take in velde kan aanpak wat wissel van sagteware-ontwikkeling tot SEO. Die aanvaarding van 'n protokol soos ACP is 'n belangrike stap in die rigting van 'n toekoms waar intelligente agente naatloos saamwerk om ons te help om ons doelwitte te bereik.

Lewer Kommentaar

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde gemerk *

Hierdie webwerf gebruik Akismet om spam te verminder. Leer hoe jou opmerkingdata verwerk word.

Sluit aan by die Aimojo Stam!

Sluit elke week by 76,200 XNUMX+ lede aan vir binnewenke! 
🎁 BONUS: Kry ons $200 “AI "Bemeesteringsgereedskapskis" GRATIS wanneer jy inteken!

Neigings AI Gereedskap
LiteLLM

Een Toegang. 100+ LLM's. Totale Kostebeheer. Die AI Infrastruktuurlaag vir ernstige ingenieurspanne.

LibreTranslate

Die oopbron-masjienvertalings-API gebou vir ontwikkelaars wat hul data besit Selfgehoste, privaatheid-eerste neurale vertaling vir spanne en bouers

Sintra AI 

Sit 12 AI Werknemers om te werk en u hele besigheid op outopilot te bestuur Die AI spanplatform gebou vir solo-stigters en groeiende KMO's

LibreChat

Een Platform. Elke AI Model. Jou data bly joune. Die open source AI kletsentrum gebou vir spanne wat weier om verskaffers vas te hou.

Hermes Agent

Die Self-Gehoste AI Agent wat elke dag leer, onthou en slimmer word Oopbron outonome agent vir ontwikkelaars, ingenieurs en MLOps-spanne

© Kopiereg 2023 - 2026 | Word 'n AI Pro | Gemaak met ♥