Come costruire agenti GPT-6 Astra a lunga durata con stato della conversazione e compattazione
Progetta agenti GPT-6 Astra durevoli utilizzando previous_response_id, Conversations, stato esplicito, budget di contesto, compattazione, checkpoint e pattern di recupero.

Un agente a lungo termine non è semplicemente un chatbot con un trascritto enorme. È un sistema stateful che deve preservare obiettivi, lavoro completato, risultati degli strumenti, permessi e decisioni irrisolte, rimanendo all'interno di una finestra di contesto finita. GPT-6 Astra fornisce una finestra di contesto di 1.050.000 token, supporto al ragionamento persistente, stato della conversazione e compattazione—ma è comunque l'architettura a determinare se un flusso di lavoro rimane coerente dopo ore o giorni.
Separare quattro tipi di stato
Trattare ogni evento come testo di conversazione rende difficile il recupero. Mantieni livelli distinti:
- Stato del dialogo: ciò che l'utente e il modello hanno detto.
- Stato dell'attività: obiettivi, piano, vincoli, passaggi completati e blocchi.
- Stato del mondo: registrazioni in database, file, ticket e altri sistemi esterni.
- Stato di esecuzione: ID delle chiamate agli strumenti, chiavi di idempotenza, approvazioni, tentativi e checkpoint.
Solo il primo strato appartiene naturalmente a una trascrizione. Gli altri tre dovrebbero avere rappresentazioni di proprietà dell'applicazione. Il modello può aiutare ad aggiornarli, ma non dovrebbe essere l'unico sistema di registrazione.
Due modi per continuare una risposta
Il meccanismo di continuazione più semplice è previous_response_id:
const first = await client.responses.create({ model: "gpt-6-astra", input: "Prepara un piano di implementazione per la migrazione." });
const next = await client.responses.create({ model: "gpt-6-astra", previous_response_id: first.id, input: [{ role: "user", content: "Inizia con il modulo di autenticazione." }] });
Questo crea una catena di risposte. È comodo per una sessione, ma non è una scorciatoia di fatturazione: OpenAI documenta che i token di input precedenti nella catena vengono fatturati come input. Le risposte vengono conservate per 30 giorni per impostazione predefinita, a meno che non venga utilizzato `store: false`.
Per i thread durevoli, utilizza l'API Conversations. Una conversazione può contenere messaggi, chiamate a strumenti e output di strumenti e può essere riutilizzata tra sessioni, dispositivi o lavori. Gli oggetti conversazione non sono soggetti al TTL di risposta di 30 giorni. Una richiesta non può utilizzare contemporaneamente un `conversation` e un `previous_response_id`; scegli deliberatamente il modello di stato.
## Crea un budget di contesto prima di averne bisogno
Il contesto include token di input, output e ragionamento. Non attendere che il modello raggiunga il limite. Riserva spazio per il risultato dello strumento successivo e la risposta finale, quindi compatta o pota prima di superare la tua soglia.
Un budget utile può allocare percentuali a:
- istruzioni e strumenti durevoli;
- riepilogo dell'attività corrente;
- dettaglio recente della conversazione;
- prove recuperate;
- ragionamento e output previsti;
- un margine di emergenza per risultati di strumenti insolitamente grandi.
Un contesto ampio ha anche implicazioni sui prezzi. La pagina del modello GPT-6 Astra documenta una tariffa più alta per le richieste il cui input supera i 272K token, applicata all'intera richiesta. Questa soglia rende l'igiene del contesto finanziariamente importante già nelle fasi iniziali, anche quando la finestra completa è ben lontana dall'essere esaurita.
## Cosa fa la compattazione
La compattazione riduce il contesto precedente mantenendo le informazioni necessarie per le interazioni future. OpenAI espone un endpoint esplicito `/responses/compact` e una gestione automatica del contesto. Il materiale di compattazione restituito è opaco: trasmettilo come indicato, senza analizzarlo, modificarlo o trattarlo come un riepilogo destinato all'utente.
Compatto in corrispondenza di tappe semantiche:
- dopo che la ricerca è sintetizzata e l'esplorazione delle fonti grezze non è più necessaria;
- dopo che una fase di codice supera i test;
- dopo che l'utente approva un piano;
- prima di iniziare una nuova fase indipendente;
- quando il contesto misurato si avvicina alla soglia pianificata.
Evita di compattare dopo ogni turno. Aggiunge lavoro, può scartare dettagli locali utili e modifica il prefisso del prompt riutilizzabile, il che può influenzare il comportamento della cache del prompt.
```ts
const compacted = await client.responses.compact({ model: "gpt-6-astra", articoli accumulati });
// Persist the returned compacted items and use them as the base for later work.
Utilizza il riferimento SDK corrente per i tipi esatti; le superfici beta e SDK possono evolversi. La regola duratura è preservare l'output opaco invariato.
## Controlla il lavoro, non solo le parole
Un checkpoint di produzione dovrebbe registrare:
- obiettivo visibile all'utente e ultimo ambito accettato;
- passaggi completati e prove di verifica;
- chiamate di strumenti in sospeso e stato di approvazione;
- identificatori di risorse esterne e versioni;
- decisioni importanti con provenienza;
- l'identificatore della risposta o della conversazione;
- una versione monotona del checkpoint.
Supponiamo che un flusso di lavoro di animazione abbia approvato una sceneggiatura, generato riferimenti per i personaggi e iniziato l'assemblaggio delle scene. L'agente dovrebbe memorizzare gli ID delle risorse, le approvazioni e lo stato della scena nei dati dell'applicazione. Una piattaforma come [Elser AI](https://www.elser.ai/) è una destinazione naturale per le risorse creative, ma il livello di orchestrazione ha comunque bisogno di uno stato esplicito in modo che un agente ripreso non rigeneri scene già approvate.
## Recupero dopo l'interruzione
Progettare per un'esecuzione almeno una volta. Una connessione può scomparire dopo che uno strumento ha agito ma prima che il client abbia ricevuto il risultato. Ogni strumento che modifica lo stato dovrebbe accettare una chiave di idempotenza o supportare un controllo di lettura prima della scrittura. Al ripristino:
1. carica l'ultimo checkpoint committato;
2. ispezionare lo stato esterno per operazioni incerte;
3. riconciliare i risultati degli strumenti per chiamata o ID di idempotenza;
4. ricostruisci il contesto dallo stato compatto più gli eventi recenti;
5. chiedi al modello di continuare dal lavoro in sospeso esplicito.
Non dire mai al modello "continua" senza uno stato strutturato dopo un crash. Potrebbe ripetere azioni o dedurre la tappa sbagliata.
## Mantieni separate la compattazione e la memoria aziendale
La compattazione è un contesto ottimizzato per il modello. La memoria aziendale è un record durevole e ispezionabile per la tua applicazione. Mantieni un registro delle attività conciso e leggibile dall'uomo insieme a elementi compattati opachi. Il registro consente agli operatori di verificare le decisioni, migrare i modelli e recuperare se una catena di risposte non è disponibile.
Un buon registro contiene fatti, non prosa persuasiva. Ad esempio: "Il cliente ha approvato il piano v7 alle 14:32 UTC" è più forte di "Il cliente sembrava soddisfatto del piano." Conserva gli ID di origine per le affermazioni tratte dagli strumenti.
## Controlli di qualità per lunghe esecuzioni
Testa più della precisione della risposta finale. Misura:
- mantenimento dell'obiettivo dopo 20, 50 e 100 turni;
- effetti collaterali duplicati dopo disconnessioni iniettate;
- ripresa corretta dopo la compattazione;
- provenienza del risultato dello strumento;
- persistenza e scadenza dell'autorizzazione;
- costo per milestone;
- deriva tra il registro delle attività e lo stato esterno.
Includi test avversari in cui un vecchio messaggio è in conflitto con un'istruzione più recente, uno strumento restituisce un payload enorme o un'approvazione scade mentre l'agente è in pausa. L'affidabilità a lungo termine riguarda principalmente le transizioni.
## FAQ
### Dovrei usare Conversations o `previous_response_id`?
Usa `previous_response_id` per concatenare risposte semplici. Usa una Conversazione quando hai bisogno di un oggetto durevole riutilizzato tra sessioni o lavori. Non possono essere forniti insieme nella stessa richiesta.
### Una finestra di un milione di token elimina la compattazione?
No. Costo, latenza, pertinenza e la soglia di prezzo documentata per contesti lunghi rendono utile la gestione del contesto prima del limite rigido.
### Posso modificare il contenuto compattato?
Tratta gli elementi compattati come opachi. Tieni separatamente il tuo registro delle attività modificabile.
### Cosa cambia `store: false`?
Disabilita l'archiviazione predefinita della risposta. La tua applicazione deve quindi gestire esplicitamente lo stato necessario e soddisfare i propri requisiti di conservazione e ripristino.
## Conclusione
Gli agenti Durable GPT-6 Astra combinano la continuità della conversazione gestita tramite API con lo stato delle attività e dell'esecuzione di proprietà dell'applicazione. Collega o conserva deliberatamente le risposte, pianifica il contesto prima che diventi costoso, compatta nei momenti chiave, preserva gli elementi di compattazione opachi e rende ogni azione esterna recuperabile. Il risultato è un agente in grado di riprendere il lavoro in modo sicuro, non uno che si limita a ricordare una lunga conversazione.





























































































