Cosa è A2A protocol

Cosa è A2A protocol

Cosa è A2A protocol

A2A (Agent-to-Agent) è un protocollo aperto sviluppato da Google per abilitare la comunicazione e la collaborazione tra AI agent eterogenei all’interno di ambienti enterprise. Nato ad aprile 2025 come iniziativa congiunta di oltre 50 partner tecnologici e di servizio (Accenture, Atlassian, Box, Cohere, Intuit, LangChain, MongoDB, PayPal, Salesforce, SAP, ServiceNow, UKG, Workday e molte altre), A2A nasce per colmare il gap di interoperabilità che si crea quando agent costruiti con framework o provider differenti devono cooperare in workflow complessi. Il suo scopo principale è fornire un linguaggio comune —basato su standard consolidati come HTTP, Server-Sent Events (SSE) e JSON-RPC — fornendo al contempo garanzie di sicurezza e scalabilità enterprise.

Nel disegno architetturale A2A distingue due ruoli chiave:

  • Client agent: formula e coordina i task, scopre le capacità degli altri agent tramite “Agent Card” e gestisce il ciclo di vita delle richieste.
  • Remote agent: espone endpoint A2A per ricevere task, eseguire azioni e restituire “artifact” (output strutturati) o stati intermedi.

Lo stack di trasporto utilizza HTTP/1.1 o HTTP/2, con canali dedicate per il trasporto streaming basato su SSE per aggiornamenti in tempo reale dei task e per trasmissioni multimodali (testo, audio, video) . Il formato dati è JSON-RPC 2.0, con messaggi che incapsulano:

  • Task objects: definiscono ID, stato (“pending”, “running”, “completed”), timestamp e metadati.
  • Parts: singole unità di contenuto associate a un task (ad es. testo generato, URL di file, flusso audio) con indicazione di contentType.
  • Agent Card: manifesto JSON firmato digitalmente che descrive un agent (ID, nome, endpoint A2A, scope di autorizzazione, capabilities list) [@turn2view0:L28-L31].

1. Storia e obiettivi – Cosa è A2A protocol

L’annuncio ufficiale è avvenuto nell’aprile 2025 sul blog Google Developers, con l’obiettivo di “aumentare autonomia e produttività, abbattere i silos e ridurre i costi di integrazione” . Tra i principi di design figura:

  1. Agilità multi-agent: supporto a scenari dinamici senza richiedere condivisione di memoria o logica interna tra agent ;
  2. Adozione di standard esistenti: HTTP, SSE, JSON-RPC per facilitare integrazione con infrastrutture enterprise ;
  3. Sicurezza enterprise-grade: autenticazione e autorizzazione basate su meccanismi paritari a quelli di OpenAPI ;
  4. Supporto a task long-running: gestione di processi che possono durare ore o giorni con feedback in tempo reale ;
  5. Modality-agnostic: streaming audio/video e formati custom, oltre al testo .

Questa visione si integra con Anthropic MCP (Model Context Protocol): MCP struttura l’accesso agli strumenti (tool, API, basi dati) fornendo contesti e tipizzazioni rigorose, mentre A2A fornisce il canale di comunicazione peer-to-peer per task orchestration e collaborazione .

2. Architettura di A2A

2.1 Topologia e flusso dati

Un’interazione A2A segue questi passi:

  1. Discovery: il client agent recupera l’Agent Card del remote agent (via registry centralizzato, DNS-based service discovery, o embedding in directory interne) .
  2. Negotiation: il client legge contentTypes e capabilities per selezionare modalità (es. application/json, text/markdown, video/mp4).
  3. Task initiation: invia un JSON-RPC invokeTask su HTTP POST all’endpoint dichiarato nell’Agent Card.
  4. Streaming updates: il remote agent risponde con SSE al client agent trasferendo eventi taskStarted, taskProgress, taskCompleted e parti (parte di risposta) .
  5. Artifact delivery: al completamento, l’agent produce un artifact JSON con URL risorse o payload inline.

2.2 Specifiche di trasporto e data format

  • Transport: HTTP/1.1 o HTTP/2, con SSE sul sottopercorso /stream per la parte di streaming asincrona .
  • Protocollo RPC: JSON-RPC 2.0, definito nella draft specification A2A (progetto GitHub) .
  • Data format: payload JSON conformi allo schema definito in schemas/task.json, schemas/agent_card.json .

2.3 Agent Card – Cosa è A2A protocol

Un esempio di Agent Card minima:

{
  "agentId": "urn:agent:acme:resume-screener",
  "name": "ACME Resume Screener",
  "version": "1.0.0",
  "endpoint": "https://agents.acme.com/a2a",
  "capabilities": ["screenResumes","exportCSV"],
  "authentication": {
    "type": "OAuth2",
    "tokenUrl": "https://auth.acme.com/token",
    "scopes": ["a2a:invoke","a2a:stream"]
  }
}

Questa card è firmata dal provider e validata tramite JSON Web Signature (JWS) .

3. Authentication & Authorization – Cosa è A2A protocol

  • Authentication: supportate “Bearer” token OAuth2 o JWT con firma RS256, forniti dal client a Authorization: Bearer <token> nell’header HTTP. Il token viene emesso da un Authorization Server compatibile OAuth2 .
  • Authorization: basata sui scopes dichiarati nell’Agent Card; il remote agent verifica permessi di invocazione e streaming. A2A prevede meccanismi analoghi a OpenAPI Security Schemes (apiKey, HTTP, OAuth2, OpenID Connect) .

3.1 Client/User Identity & Authentication Process

  1. Client registration: il client agent si registra con un Identity Provider (IdP) e ottiene client_id e client_secret.
  2. Token exchange: al bootstrap, il client invia credenziali a tokenUrl per ottenere access token (OAuth2 Client Credentials Grant).
  3. Invocation: include Bearer <token> in ogni chiamata A2A.
  4. Token refresh: gestito secondo norme OAuth2 (Refresh Token Flow) per task long-running.

4. Security – Cosa è A2A protocol

  • Transport layer security: TLS 1.2+ obbligatorio su ogni endpoint [@turn2view0:L23].
  • Message integrity: utilizzo di JSON Web Signatures (JWS) su Agent Card e optional su messaggi sensibili.
  • Replay protection: inclusion di nonce e timestamp in ogni request.
  • Audit logging: obbligatorio mantenere log di invocazione e streaming per compliance enterprise.

5. Enterprise-Ready Features

  • Capability discovery & registry: integrazione con service mesh o API gateway per trovare agent disponibili.
  • Governance & policy enforcement: supporto per policy centriche (RBAC, ABAC) tramite Policy Decision Points esterni.
  • Monitoring e tracing: compatibile con OpenTelemetry per tracciare performance e flussi inter-agent.
  • High availability & failover: agent replicabili e load-balanced tramite cluster Kubernetes o serverless.

6. L’Agent Card in dettaglio

L’Agent Card rappresenta il contratto di interoperabilità:

  • Metadata: agentId, name, version.
  • Endpoint: URL base per A2A.
  • Capabilities: elenco di funzioni dichiarate.
  • Authentication: schema di sicurezza (OAuth2, mTLS, API Key).
  • QoS hints: opzionali (maxConcurrentTasks, supportedModalities).
  • Provisioning data: eventuali parametri di configurazione.

7. Esempi di utilizzo – Cosa è A2A protocol

7.1 Client Python (quickstart)

import requests, sseclient

TOKEN = "<access_token>"
agent_card = requests.get("https://agents.acme.com/card").json()
endpoint = agent_card["endpoint"] + "/invoke"

headers = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}
task_req = {"jsonrpc":"2.0","method":"invokeTask","params": {"taskType":"screenResumes","payload":{"query":"Engineer"}}}
resp = requests.post(endpoint, json=task_req, headers=headers)
task_id = resp.json()["result"]["taskId"]

# stream updates
stream_url = agent_card["endpoint"] + f"/stream/{task_id}"
client = sseclient.SSEClient(stream_url, headers=headers)
for event in client:
    print(event.data)

7.2 Server Node.js (Express)

const express = require('express');
const bodyParser = require('body-parser');
const SSE = require('express-sse');
const sse = new SSE();

const app = express();
app.use(bodyParser.json());

// Expose Agent Card
app.get('/card', (req, res) => res.json(AGENT_CARD));

// Invoke task
app.post('/invoke', async (req, res) => {
  const { taskId } = startTask(req.body.params);
  res.json({ jsonrpc: "2.0", result: { taskId } });
});

// Streaming endpoint
app.get('/stream/:taskId', sse.init);
function startTask({ taskType, payload }) {
  const taskId = generateId();
  // simulate async work
  setTimeout(() => sse.send({ event: 'taskCompleted', data: { taskId, artifact: {/*…*/} }}), 5000);
  return { taskId };
}

app.listen(3000);

7.3 Integrazione con LangChain

from langchain.agents import AgentExecutor

# Definisco un A2A Agent
a2a_agent = AgentExecutor.from_a2a_card("https://agents.acme.com/card", token=TOKEN)
response = a2a_agent.run("Trova venditori locale di componenti elettronici")
print(response)

Conclusione: Scenari e prospettive di innovazione con A2A – Cosa è A2A protocol

L’adozione del protocollo A2A abilita scenari in cui agent intelligenti, sviluppati da fornitori diversi e basati su tecnologie eterogenee, possono orchestrarsi automaticamente per eseguire workflow complessi senza intervento umano diretto . Grazie a un linguaggio comune e a un’infrastruttura di discovery robusta, si aprono possibilità di integrazione in ambiti quali automazione dei processi aziendali, assistenti digitali collaborativi, orchestrazione di microservizi agent-based e raccolta dati in real-time da dispositivi IoT .

1. Automazione avanzata dei processi aziendali

In contesti enterprise, A2A permette di creare pipeline di approvazione documentale in cui un “Document Ingestion Agent” invia task a un “Compliance Agent” e poi a un “Archiving Agent”, mantenendo audit trail e aggiornamenti in streaming . Ciò riduce i tempi di ciclo e minimizza gli errori di passaggio tra sistemi ERP, CRM, e piattaforme di gestione documentale .

2. Ecosistemi di assistenti digitali collaborativi

Immaginiamo un “Travel Planner Agent” che coordina un “Flight Search Agent”, un “Hotel Booking Agent” e un “Local Guide Agent”: grazie ad A2A, questi agent dialogano in tempo reale, negoziano vincoli di budget e preferenze utente, e restituiscono un’unica proposta di viaggio completa . Tale approccio supera il modello “single agent”, offrendo esperienze multimodali e altamente personalizzate .

3. Orchestrazione di microservizi agent-based

Nei moderni architetture a microservizi, ogni servizio può esporre un’interfaccia A2A per delegare task specializzati (es. analisi dati, generazione report, esecuzione calcoli complessi) ad agent containerizzati, favorendo un’evoluzione dal tradizionale RPC a un flusso di messaggi intelligenti e autogestiti).

4. Raccolta dati e automazione IoT

In ambito IoT, sensori e dispositivi edge possono registrarsi come agent A2A e segnalare eventi a un “Event Aggregator Agent” che filtra, normalizza e inoltra i dati a specifici “Analytics Agent” o “Alerting Agent” per interventi predittivi o realtime .

5. Ecosistemi aziendali multi-fornitore

A2A facilita la collaborazione tra partner e fornitori esterni che desiderano integrare i propri agenti con i sistemi core dell’azienda, senza dover esporre API custom né gestire versioning disparato: basta aderire al protocollo, registrare l’Agent Card e partire con scambi sicuri ed interoperabili .

Innovazione verso un’“era degli agenti autonomi”

L’avvento di A2A segna l’inizio di un nuovo paradigma in cui le applicazioni diventano reti di agenti autonomi e cooperanti, piuttosto che monolitici bundle di funzionalità . Si va quindi verso:

  • Ecosistemi digitali dinamici in cui componenti intelligenti si scoprono e orchestrano on-the-fly, adattandosi a carichi di lavoro variabili e policy aziendali senza intervento umano diretto .
  • Riduzione dei silos informativi, con agent che fungono da mediatori tra sistemi legacy non progettati per l’intelligenza artificiale e nuovi servizi cloud-native .
  • Incremento della resilienza grazie a meccanismi di failover e load-balancing nativi al protocollo A2A, dove agent replicati in cluster possono subentrare automaticamente in caso di guasto .

In definitiva, A2A sta aprendo la strada verso soluzioni software che non solo “eseguono codice”, ma collaborano come team di specialisti digitali, guidando l’innovazione verso un’AI truly distributed, sicura e enterprise-ready.

(fonte) (fonte) (fonte)

Innovaformazione, scuola informatica specialistica segue costantemente il mercato IT e promuove la formazione continua dei team di sviluppatori delle aziende informatiche. Nell’offerta formativa trovate il Corso Agenti AI ed MCP. Mentre l’offerta formativa completa è presente sul nostro sito QUI.

Se invece volete leggere altri articolo tecnici consigliamo di navigare sul nostro blog QUI.

INFO: info@innovaformazione.net – tel. 3471012275 (Dario Carrassi)

Ti potrebbe interessare

Articoli correlati