Che cos'è il protocollo di comunicazione degli agenti (ACP)?

Autori

Sandi Besen

AI Research Engineer and Ecosystem Lead

IBM

Anna Gutowska

AI Engineer, Developer Advocate

IBM

Il protocollo di comunicazione degli agenti (ACP) è uno standard aperto per la comunicazione tra agenti. Con questo protocollo, possiamo trasformare il nostro attuale landscape di agenti isolati in sistemi agentici interoperabili con integrazione e collaborazione più semplici.

Le ultime tendenze in materia di AI, proposte da esperti

Ricevi insight selezionati sulle notizie più importanti e interessanti sull'AI. Iscriviti alla nostra newsletter settimanale Think. Leggi l'Informativa sulla privacy IBM.

Grazie per aver effettuato l'iscrizione!

L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.

Panoramica

Con il protocollo ACP, originariamente introdotto da BeeAI di IBM, gli agenti AI possono collaborare liberamente tra team, framework, tecnologie e organizzazioni. È un protocollo universale che trasforma gli agenti AI del panorama frammentato di oggi in compagni di team interconnessi, e questo standard aperto sblocca nuovi livelli di interoperabilità, riutilizzo e scalabilità. Come passo successivo al protocollo di contesto del modello (MCP), uno standard aperto per l'accesso ai dati, il protocollo ACP definisce il modo in cui gli agenti operano e comunicano.1

Per contestualizzare, un agente AI è un sistema o programma in grado di eseguire autonomamente attività per conto di un utente o di un altro sistema. Le esegue progettando il suo workflow e utilizzando gli strumenti disponibili. I sistemi multiagente sono costituiti da più agenti AI che lavorano collettivamente per eseguire attività per conto di un utente o di un altro sistema.

Come standard di comunicazione per gli agenti AI con governance aperta, il protocollo ACP consente agli agenti di intelligenza artificiale di comunicare tra diversi framework e stack tecnologici. Dalla ricezione delle query degli utenti in linguaggio naturale all'esecuzione di una serie di azioni, gli agenti AI offrono prestazioni migliori se dotati di protocolli di comunicazione. Questi protocolli trasmettono queste informazioni tra strumenti, altri agenti e, in ultima analisi, all'utente. 

Con comunicazione degli agenti AI si fa riferimento al modo in cui gli agenti di intelligenza artificiale interagiscono tra loro, con esseri umani o con sistemi esterni per scambiare informazioni, prendere decisioni e completare attività. Questa comunicazione è particolarmente importante nei sistemi multiagente, in cui ci sono più agenti AI che collaborano, e nell'interazione uomo-AI.

Il protocollo ACP fa parte di un ecosistema in crescita, in cui è incluso BeeAI. Di seguito sono riportate alcune caratteristiche principali, e puoi leggere degli approfondimenti sui concetti fondamentali e sui dettagli nella documentazione ufficiale.

Esempio di comunicazione tra un client ACP e degli agenti ACP di framework diversi. Esempio di comunicazione tra un client ACP e degli agenti ACP di framework diversi.

Caratteristiche principali del protocollo ACP

  • Comunicazione basata su REST: il protocollo ACP utilizza convenzioni HTTP standard per la comunicazione che ne facilitano l'integrazione nella produzione. Il protocollo MCP, invece, si basa sul formato JSON-RPC che richiede metodi di comunicazione molto più complessi.
  • Non è necessario alcun SDK: il protocollo ACP non richiede librerie specializzate. Puoi interagire con agenti intelligenti utilizzando strumenti come cURL, Postman o persino il tuo browser. Per una maggiore comodità, c'è un SDK disponibile.
  • Rilevamento offline: gli agenti ACP possono incorporare metadati direttamente nei propri pacchetti di distribuzione, consentendo il rilevamento anche quando sono inattivi. Questo supporta ambienti scalabili a zero, in cui le risorse sono allocate dinamicamente e potrebbero non essere sempre online.
  • Asincronia per impostazione predefinita, sincronizzazione supportata: il protocollo ACP è progettato con la comunicazione asincrona come impostazione predefinita. Questo metodo è ideale per le attività complesse o di lunga durata. Sono supportate anche le richieste sincrone.

Nota: il protocollo ACP consente l'orchestrazione degli agenti per qualsiasi architettura agentica, ma non gestisce i workflow, le distribuzioni o il coordinamento tra agenti. Invece, consente l'orchestrazione tra diversi agenti standardizzando il modo in cui comunicano. IBM Research ha creato BeeAI, un sistema open source progettato per gestire l'orchestrazione, la distribuzione e la condivisione degli agenti utilizzando il protocollo ACP come livello di comunicazione.

Agenti AI

5 tipi di agenti AI: funzioni autonome e applicazioni nel mondo reale

Scopri come l'AI basata sugli obiettivi e sulle utilità si adatta ai workflow e agli ambienti complessi.

Perché abbiamo bisogno del protocollo ACP

Diverse architetture di agenti abilitate usando il protocollo ACP. Diverse architetture di agenti abilitate usando il protocollo ACP.

Con l'agentic AI continua a crescere, aumenta anche la complessità del capire come ottenere il miglior risultato da ogni tecnologia indipendente per il suo caso d'uso, senza essere vincolati a un particolare fornitore. Ogni framework, piattaforma e toolkit offre vantaggi unici, ma integrarli tutti in un unico sistema agentico è difficile.

Oggi, la maggior parte dei sistemi di agenti opera in silos. Sono basati su framework incompatibili, espongono API ed endpoint personalizzati e non dispongono di un protocollo comune per la comunicazione. La loro connessione richiede integrazioni fragili e non ripetibili che sono costose da realizzare.

Il protocollo ACP rappresenta un passaggio fondamentale, ovvero quello da un ecosistema frammentato e ad hoc a una rete interconnessa di agenti, ciascuno in grado di scoprire, comprendere e collaborare con gli altri, indipendentemente da chi li ha creati o dallo stack su cui sono eseguiti. Con il protocollo ACP, gli sviluppatori possono sfruttare l'intelligenza collettiva di diversi agenti per creare workflow più potenti di quelli che un singolo sistema può ottenere da solo.

Sfide attuali

Nonostante la rapida crescita della funzionalità degli agenti, l'integrazione nel mondo reale rimane un grosso collo di bottiglia. Senza un protocollo di comunicazione comune, le organizzazioni devono affrontare diverse sfide ricorrenti:

  • Diversità di framework: in genere, le organizzazioni gestiscono centinaia o migliaia di agenti creati utilizzando framework diversi come LangChain, crewAI, AutoGen o stack personalizzati.
  • Integrazione personalizzata: senza un protocollo standard, gli sviluppatori devono scrivere connettori personalizzati per ogni interazione degli agenti.
  • Sviluppo esponenziale: con n agenti, hai potenzialmente bisogno di n(n-1)/2 punti di integrazione diversi, il che rende difficile la manutenzione degli ecosistemi di agenti su larga scala.
  • Considerazioni interorganizzative: modelli di sicurezza, sistemi di autenticazione e formati di dati diversi complicano l'integrazione tra aziende.

Un esempio concreto

Per illustrare la necessità reale di comunicazione  tra agenti, considera due organizzazioni:

  • Un'azienda manifatturiera che utilizza un agente autonomo per gestire i programmi di produzione e l'evasione degli ordini in base all'inventario interno e alla domanda dei clienti.
  • Un fornitore di servizi logistici che esegue un agente per offrire preventivi di spedizione, disponibilità del corriere e ottimizzazione del percorso in tempo reale.
Un esempio di caso d'uso di due agenti (produzione e logistica) abilitati con il protocollo ACP e che comunicano tra loro tra le organizzazioni. Un esempio di caso d'uso di due agenti (produzione e logistica) abilitati con il protocollo ACP e che comunicano tra loro tra le organizzazioni.

Ora immagina che il sistema del produttore debba stimare i tempi di consegna per un ordine di attrezzatura personalizzata di grandi dimensioni per fornire un preventivo al cliente.

Senza protocollo ACP: questo approccio richiede la creazione di un'integrazione su misura tra il software di pianificazione del produttore e le API del fornitore di servizi logistici. Ciò implica la gestione manuale dell'autenticazione, delle discrepanze nei formati dei dati e della disponibilità dei servizi. Queste integrazione sono costose, fragili e difficili da scalare con l'aggiungersi di più partner.

Con il protocollo ACP: ogni organizzazione integra il proprio agente con un'interfaccia ACP. L'agente di produzione invia i dettagli dell'ordine e della destinazione all'agente logistico, che risponde con opzioni di spedizione in tempo reale ed ETA. Entrambi i sistemi realizzano una collaborazione agentica senza esporre componenti interni o scrivere integrazioni personalizzate. I nuovi partner logistici possono essere introdotti facilmente con l'implementazione del protocollo ACP. L'automazione fornita dagli agenti AI in combinazione con il protocollo ACP consente la scalabilità e la semplificazione degli scambi di dati.

Come iniziare

La semplicità è un principio di progettazione fondamentale del protocollo ACP. L'integrazione di un agente con il protocollo ACP può essere eseguita in poche righe di codice. Utilizzando l'SDK Python, puoi definire un agente conforme al protocollo ACP semplicemente decorando una funzione.

Questa implementazione minima:

  1. Crea un'istanza del server ACP.
  2. Definisce una funzione agente utilizzando il decoratore @server.agent() .
  3. Implementa un agente utilizzando il framework LangChain con un ampio backend di modelli linguistici di grandi dimensioni (LLM) e memoria per la persistenza del contesto.
  4. Traduce tra il formato del messaggio del protocollo ACP e il formato nativo del framework per restituire una risposta strutturata.
  5. Avvia il server, rendendo disponibile l'agente tramite HTTP.

Esempio di codice:

from typing import Annotated
import os
from typing_extensions import TypedDict
from dotenv import load_dotenv
#ACP SDK
from acp_sdk.models import Message
from acp_sdk.models.models import MessagePart
from acp_sdk.server import RunYield, RunYieldResume, Server
from collections.abc import AsyncGenerator
#Langchain SDK
from langgraph.graph.message import add_messages
from langchain_anthropic import ChatAnthropic 

load_dotenv() 

class State(TypedDict):
    messages: Annotated[list, add_messages]

#Set up the AI model of your choice
llm = ChatAnthropic(model="claude-3-5-sonnet-latest", 
api_key=os.environ.get("ANTHROPIC_API_KEY")) 

#------ACP Requirement-------#
#START SERVER
server = Server()
#WRAP AGENT IN DECORACTOR
@server.agent()
async def chatbot(messages: list[Message])-> AsyncGenerator[RunYield, RunYieldResume]:
    "A simple chatbot enabled with memory"
    #formats ACP Message format to be compatible with what langchain expects
    query = " ".join(
        part.content
        for m in messages
        for part in m.parts             
    )
    #invokes llm
    llm_response = llm.invoke(query)    
    #formats langchain response to ACP compatible output
    assistant_message = Message(parts=[MessagePart(content=llm_response.content)])
    # Yield so add_messages merges it into state
    yield {"messages": [assistant_message]}  

server.run()
#---------------------------#

Ora hai creato un agente completamente conforme allo standard ACP che è in grado di:

  • Essere scoperto da altri agenti (online o offline).
  • Elaborare le richieste in modo sincrono o asincrono.
  • Comunicare utilizzando i formati di messaggio standard.
  • Integrarsi con qualsiasi altro sistema compatibile con il protocollo ACP.

Confronto tra i protocolli ACP, MCP e A2A

Per comprendere meglio il ruolo del protocollo ACP nell'ecosistema AI in evoluzione, è utile confrontarlo con altri protocolli emergenti. Questi protocolli non sono necessariamente concorrenti. Piuttosto, si rivolgono a diversi livelli dello stack di integrazione dei sistemi AI e spesso si completano a vicenda.

In sintesi:

Protocollo di contesto del modello (MCP): progettato per arricchire il contesto di un singolo modello con strumenti, memoria e risorse. Introdotto da Anthropic.
Focus: un modello, tanti strumenti

Protocollo di comunicazione degli agenti (ACP): progettato per la comunicazione tra agenti indipendenti attraverso sistemi e organizzazioni. Introdotto da BeeAI di IBM.
Focus: molti agenti, che lavorano in modo sicuro come colleghi, senza blocco da fornitore, con governance aperta

Protocollo Agent2Agent (A2A): progettato per la comunicazione tra agenti indipendenti tra sistemi e organizzazioni diversi. Introdotto da Google.

Focus: molti agenti, che lavorano come colleghi, ottimizzati per l'ecosistema di Google

ACP e MCP

Il team ACP ha inizialmente esplorato l'opportunità di adattare il protocollo di contesto del modello (MCP), in quanto offre una solida base per le interazioni modello-contesto. Tuttavia, ha subito riscontrato delle limitazioni architetturali che lo hanno reso inadatto a una vera comunicazione da agente a agente.

Perché il protocollo MCP non è all'altezza dei sistemi multiagente:

Streaming: il protocollo MCP supporta lo streaming di base, probabilmente di messaggi completi, ma non il più dettagliato stile "delta", in cui gli aggiornamenti vengono inviati non appena si verificano. I flussi delta, come i token e gli aggiornamenti della traiettoria, sono flussi composti da aggiornamenti incrementali piuttosto che da payload di dati completi. Questa limitazione deriva dal fatto che quando il protocollo MCP è stato creato, non era destinato a interazioni in stile agente.

Condivisione della memoria: il protocollo MCP non supporta l'esecuzione di più agenti tra i server mantenendo al contempo la memoria comune. Anche il protocollo ACP non supporta ancora pienamente questa funzione, ma è un'area di sviluppo attiva.

Struttura del messaggio: il protocollo MCP accetta qualsiasi schema JSON, ma non definisce la struttura del corpo del messaggio. Questa flessibilità rende difficile l'interoperabilità, soprattutto per gli agenti di sviluppo che devono interpretare diversi formati di messaggio.

Complessità del protocollo: il protocollo MCP utilizza JSON-RPC e richiede SDK e tempo di esecuzione specifici. Invece, il design basato su REST del protocollo ACP con supporto asincrono/sincrono integrato è più leggero e facile da integrare.


Pensa al protocollo MCP come qualcosa che dà a una persona degli strumenti migliori, come una calcolatrice o un libro di riferimento, per migliorare le sue prestazioni. Il protocollo ACP, invece, consiste nel consentire alle persone di formare team, in cui ogni persona o agente contribuisce con le proprie capacità in modo collaborativo all'interno dell'applicazione AI.

I protocolli ACP e MCP possono completarsi a vicenda:

Tabella che mostra come i protocolli ACP e MCP possono completarsi a vicenda.

Anche il protocollo Agent2Agent (A2A) di Google, introdotto poco dopo l'ACP, mira a standardizzare la comunicazione tra agenti AI. Entrambi i protocolli condividono l'obiettivo di abilitare i sistemi multiagente, ma divergono nella filosofia e nella governance.

Principali differenze:

Tabella che mostra le differenze tra i protocolli ACP e A2A

Il protocollo ACP è stato deliberatamente progettato per essere:

  • Semplice da integrare utilizzando strumenti HTTP e convenzioni REST comuni.
  • Flessibile per un'ampia gamma di tipi di agenti e workload.
  • Indipendente dal fornitore, con governance aperta e ampio allineamento con l'ecosistema.

Entrambi i protocolli possono coesistere, in quanto ognuno di essi soddisfa esigenze diverse a seconda dell'ambiente. Il design leggero, aperto ed estensibile del protocollo ACP lo rende adatto per i sistemi decentralizzati e l'interoperabilità del mondo reale oltre i confini organizzativi. L'integrazione naturale dell'A2A potrebbe renderle quest'opzione più adatta per chi utilizza l'ecosistema Google.

Roadmap e community

Con l'evoluzione del protocollo ACP, vengono esplorate nuove possibilità per migliorare la comunicazione tra agenti. Ecco alcune aree chiave di interesse:

  • Federazione delle identità: in che modo il protocollo ACP può interagire con i sistemi di autenticazione per migliorare l'attendibilità di più reti?
  • Delega dell'accesso: in che modo è possibile consentire agli agenti di delegare le attività in modo sicuro mantenendo il controllo dell'utente?
  • Supporto multiregistro: il protocollo ACP può supportare il rilevamento di agenti decentralizzati su reti diverse?
  • Condivisione degli agenti: come possiamo semplificare la condivisione e il riutilizzo degli agenti tra diverse organizzazioni o all'interno di un'organizzazione?
  • Distribuzioni: quali strumenti e modelli possono semplificare l'implementazione degli agenti?

Il protocollo ACP è stato sviluppato con l'open source perché gli standard funzionano meglio quando vengono sviluppati direttamente con gli utenti. I contributi di sviluppatori, ricercatori e organizzazioni interessate al futuro dell'interoperabilità degli agenti AI sono i benvenuti. Contribuisci a dare forma a questo standard di gen AI in evoluzione.

Per ulteriori informazioni, visita il sito ufficiale del protocollo ACP e partecipa alla conversazione su GitHub e Discord.

Soluzioni correlate
Agenti AI per il Business

Crea, implementa e gestisci assistenti e agenti AI potenti che automatizzano workflow e processi con l'AI generativa.

    Scopri watsonx Orchestrate
    Soluzioni per agenti AI IBM

    Costruisci il futuro della tua azienda con soluzioni AI di cui puoi fidarti.

    Esplora le soluzioni basate su agenti AI
    Servizi AI di IBM Consulting

    I servizi di AI di IBM Consulting aiutano a reinventare il modo in cui le aziende lavorano con l'AI per la trasformazione.

    Esplora i servizi di intelligenza artificiale
    Prossimi passi

    Sia che tu scelga di personalizzare app e competenze precostituite o di creare e implementare servizi di agenti personalizzati utilizzando uno studio di AI, la piattaforma IBM watsonx è la soluzione che fa per te.

    Scopri watsonx Orchestrate Esplora watsonx.ai