Agent Team Protocol v3

Non solo testo.
Il lavoro del team,
evento per evento.

ATP è il protocollo di Envai che porta nella tua applicazione ciò che accade nel team: chi risponde, chi delega, quali strumenti vengono eseguiti e quando il turno si conclude.

UN TURNO · PIÙ AGENTIATP / SSE
01
turn.startedInizia il lavoro del team
TURNO
02
agent.startedIl coordinatore prende la parola
AGENTE
↳
Delega allo specialistaUn’attività collegata al turno
DELEGA
↳
Esecuzione dello strumentoArgomenti, esecuzione e risultato
TOOL
✓
turn.completedIl risultato del turno è disponibile
RISULTATO
Identità + ciclo di vita + contenutoUn unico contratto
01 / Perché ATP

I token raccontano la risposta.
ATP racconta il lavoro.

Abbiamo introdotto ATP per rendere leggibile l’esecuzione di un team, oltre al testo del modello. L’applicazione deve distinguere le voci, collegare le deleghe e seguire gli strumenti senza perdere il contesto del turno.

01 / IDENTITÀ

Sai chi sta lavorando.

Gli eventi mantengono il contesto dell’agente e dell’esecuzione. Puoi attribuire messaggi e attività al partecipante giusto, anche quando il lavoro si intreccia.

02 / ORCHESTRAZIONE

Segui più del testo.

Deleghe, strumenti, avanzamento e conclusioni hanno eventi dedicati. La tua interfaccia può mostrare l’attività del team mentre la risposta prende forma.

03 / INTEGRAZIONE

Un contratto coerente.

Lo stesso stream trasporta contenuto e ciclo di vita. Un modello di eventi comune collega l’orchestrazione di Envai all’esperienza che costruisci nel tuo prodotto.

02 / Il funzionamento di base

Invii un messaggio.
Segui un intero turno.

I comandi viaggiano via HTTP; gli aggiornamenti arrivano su uno stream Server-Sent Events separato. Un canale condiviso trasporta gli eventi del team man mano che vengono prodotti.

01 / SSE

Collega lo stream

Un unico stream multiplexato raccoglie gli eventi dei diversi agenti, con le informazioni per distinguerli.

02 / HTTP

Invia il messaggio

Il client invia il messaggio alla chat e avvia un nuovo turno del team.

03 / TEAM

Segui il lavoro

Ricevi testo, deleghe e attività degli strumenti. Aggiorna l’interfaccia in base al tipo di evento.

04 / RISULTATO

Chiudi il turno

L’evento terminale conclude il turno con il suo esito. La chat e lo stream restano il contesto della conversazione.

Dal singolo agente al risultato del team

agent.done conclude l’attività di un agente; turn.completed conclude il turno. Uno specialista può finire mentre il coordinatore continua a lavorare.

03 / Il catalogo degli eventi

Ogni evento.
Una responsabilità precisa.

19 eventi per leggere il ciclo di vita del team. Cerca un identificatore o scegli una famiglia per trovare subito il segnale da gestire.

19 di 19 eventi
turn.startedTurno

Apre il turno e comunica il messaggio o l’input che lo ha avviato.

turn.completedTurno

Conclude con successo il turno e riporta motivo finale, consumi e costi.

turn.cancelledTurno

Conclude il turno annullato, con il motivo e i consumi maturati.

turn.failedTurno

Conclude il turno fallito, con codice, messaggio di errore e consumi.

turn.steeredTurno

Registra indicazioni associate al turno attivo.

agent.startedAgenti e deleghe

Avvia un’istanza di agente e ne comunica ruolo, modello e genitore.

agent.delegatedAgenti e deleghe

Annuncia l’incarico a un agente figlio, con identità, modalità e attività assegnata.

agent.doneAgenti e deleghe

Conclude l’istanza di agente con stato, sintesi, consumi e durata.

agent.text.deltaTesto

Trasporta un frammento di testo da aggiungere alla risposta dell’agente.

agent.text.doneTesto

Consegna il testo completo prodotto dall’agente.

agent.tool.startStrumenti

Avvia un tool della piattaforma: server, knowledge o code, con argomenti e call_id.

agent.tool.completeStrumenti

Consegna il risultato del tool della piattaforma, con esito e consumi.

agent.tool.requestStrumenti

Richiede un tool al client con argomenti e firma; gli altri rami possono proseguire.

agent.tool.resultStrumenti

Riporta il risultato, l’errore o il timeout del tool client, collegato dal call_id.

agent.context.compactingContesto

Segnala l’inizio della compattazione del contesto dell’agente.

agent.context.compactedContesto

Consegna il nuovo contesto riassunto, conservabile come checkpoint.

pingChat e connessione

Mantiene attivo il collegamento SSE con un segnale periodico.

chat.title.updatedChat e connessione

Comunica il nuovo titolo della chat dopo il salvataggio.

chat.cron.wakeupChat e connessione

Segnala un’attivazione pianificata, diretta a un nuovo turno o a quello attivo.

ATP v3 · Il protocollo di orchestrazione di Envai Teams.

Eventi riservati 11 identificatori

Definiti dal contratto, non ancora emessi dal runtime.

agent.plan

Piano di lavoro dell’agente.

agent.reasoning.delta

Frammento incrementale di ragionamento.

agent.reasoning.done

Testo completo del ragionamento.

agent.tool.delta

Aggiornamento incrementale di uno strumento.

agent.escalate

Richiesta di una decisione all’orchestratore da parte di un subagente.

agent.escalation.result

Esito della decisione dell’orchestratore per il subagente.

agent.artifact

Artefatto prodotto dall’agente, con identificativo e metadati.

agent.failed

Errore specifico dell’agente.

approval.request

Richiesta di approvazione all’utente, con origine e scadenza.

approval.response

Decisione dell’utente su una richiesta di approvazione.

approval.expire

Scadenza di una richiesta di approvazione senza risposta.

04 / Leggere lo stream

Il contesto viaggia
con l’evento.

Ogni evento combina un tipo, il contesto dell’esecuzione e i dati dell’attività. La tua applicazione può ricostruire il lavoro senza dedurlo dal testo della risposta.

Turno — Il lavoro avviato da un messaggio, fino al suo esito.

Agente — Il partecipante che produce contenuti o esegue attività.

Delega — Un incarico assegnato a un altro agente, collegato al lavoro del team.

SSE — Il trasporto HTTP che consegna gli eventi progressivamente al client.

v · type

La versione del protocollo e il nome dell’evento: il punto di partenza per interpretare i dati.

id · seq · ts

Identificativo, ordine progressivo e timestamp dell’evento nello stream.

chat_id · turn_id

La chat e il turno a cui appartiene l’attività. Gli eventi di chat descrivono il contesto condiviso.

agent

Identità dell’agente: instance_id, name, role e parent_id collegano il partecipante alla sua gerarchia.

data

Il contenuto specifico dell’evento: testo, incarico, argomenti, risultato o stato.

call_id

Dentro i dati dei tool, collega la richiesta o l’avvio al relativo risultato.

05 / Dal protocollo al prodotto

Invia. Ascolta.
Costruisci l’esperienza.

Usa gli SDK o le API per avviare la conversazione e consumare gli eventi. Dal primo messaggio al risultato, il flusso entra nella tua applicazione.

Avvia un turno

Avvia il turno nella chat del team.

Eventi di un turno

Collega lo stream allo stato della tua interfaccia.

Il team lavora.
Il tuo prodotto sa cosa succede.

Definisci gli agenti, componi il team e porta il suo lavoro nella tua applicazione.