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.
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.
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.
Gli eventi mantengono il contesto dell’agente e dell’esecuzione. Puoi attribuire messaggi e attività al partecipante giusto, anche quando il lavoro si intreccia.
Deleghe, strumenti, avanzamento e conclusioni hanno eventi dedicati. La tua interfaccia può mostrare l’attività del team mentre la risposta prende forma.
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.
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.
Un unico stream multiplexato raccoglie gli eventi dei diversi agenti, con le informazioni per distinguerli.
Il client invia il messaggio alla chat e avvia un nuovo turno del team.
Ricevi testo, deleghe e attività degli strumenti. Aggiorna l’interfaccia in base al tipo di evento.
L’evento terminale conclude il turno con il suo esito. La chat e lo stream restano il contesto della conversazione.
agent.done conclude l’attività di un agente; turn.completed conclude il turno. Uno specialista può finire mentre il coordinatore continua a lavorare.
19 eventi per leggere il ciclo di vita del team. Cerca un identificatore o scegli una famiglia per trovare subito il segnale da gestire.
turn.startedTurnoApre il turno e comunica il messaggio o l’input che lo ha avviato.
turn.completedTurnoConclude con successo il turno e riporta motivo finale, consumi e costi.
turn.cancelledTurnoConclude il turno annullato, con il motivo e i consumi maturati.
turn.failedTurnoConclude il turno fallito, con codice, messaggio di errore e consumi.
turn.steeredTurnoRegistra indicazioni associate al turno attivo.
agent.startedAgenti e delegheAvvia un’istanza di agente e ne comunica ruolo, modello e genitore.
agent.delegatedAgenti e delegheAnnuncia l’incarico a un agente figlio, con identità, modalità e attività assegnata.
agent.doneAgenti e delegheConclude l’istanza di agente con stato, sintesi, consumi e durata.
agent.text.deltaTestoTrasporta un frammento di testo da aggiungere alla risposta dell’agente.
agent.text.doneTestoConsegna il testo completo prodotto dall’agente.
agent.tool.startStrumentiAvvia un tool della piattaforma: server, knowledge o code, con argomenti e call_id.
agent.tool.completeStrumentiConsegna il risultato del tool della piattaforma, con esito e consumi.
agent.tool.requestStrumentiRichiede un tool al client con argomenti e firma; gli altri rami possono proseguire.
agent.tool.resultStrumentiRiporta il risultato, l’errore o il timeout del tool client, collegato dal call_id.
agent.context.compactingContestoSegnala l’inizio della compattazione del contesto dell’agente.
agent.context.compactedContestoConsegna il nuovo contesto riassunto, conservabile come checkpoint.
pingChat e connessioneMantiene attivo il collegamento SSE con un segnale periodico.
chat.title.updatedChat e connessioneComunica il nuovo titolo della chat dopo il salvataggio.
chat.cron.wakeupChat e connessioneSegnala un’attivazione pianificata, diretta a un nuovo turno o a quello attivo.
Nessun evento corrisponde alla ricerca. Prova un altro termine o rimuovi i filtri.
ATP v3 · Il protocollo di orchestrazione di Envai Teams.
Definiti dal contratto, non ancora emessi dal runtime.
agent.planPiano di lavoro dell’agente.
agent.reasoning.deltaFrammento incrementale di ragionamento.
agent.reasoning.doneTesto completo del ragionamento.
agent.tool.deltaAggiornamento incrementale di uno strumento.
agent.escalateRichiesta di una decisione all’orchestratore da parte di un subagente.
agent.escalation.resultEsito della decisione dell’orchestratore per il subagente.
agent.artifactArtefatto prodotto dall’agente, con identificativo e metadati.
agent.failedErrore specifico dell’agente.
approval.requestRichiesta di approvazione all’utente, con origine e scadenza.
approval.responseDecisione dell’utente su una richiesta di approvazione.
approval.expireScadenza di una richiesta di approvazione senza risposta.
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 · typeLa versione del protocollo e il nome dell’evento: il punto di partenza per interpretare i dati.
id · seq · tsIdentificativo, ordine progressivo e timestamp dell’evento nello stream.
chat_id · turn_idLa chat e il turno a cui appartiene l’attività. Gli eventi di chat descrivono il contesto condiviso.
agentIdentità dell’agente: instance_id, name, role e parent_id collegano il partecipante alla sua gerarchia.
dataIl contenuto specifico dell’evento: testo, incarico, argomenti, risultato o stato.
call_idDentro i dati dei tool, collega la richiesta o l’avvio al relativo risultato.
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 il turno nella chat del team.
Collega lo stream allo stato della tua interfaccia.
Definisci gli agenti, componi il team e porta il suo lavoro nella tua applicazione.