Was this page helpful?
Il dreaming è una funzionalità in anteprima di ricerca. Richiedi l'accesso per provarla.
Gli agenti scrivono nei loro memory store (archivi di memoria) mentre lavorano, ma queste scritture sono locali e incrementali: nel corso di molte sessioni un memory store accumula duplicati, contraddizioni e voci obsolete.
I dream (sogni) consentono a Claude di fare pulizia. Un dream legge un memory store esistente insieme alle trascrizioni delle sessioni passate, quindi produce un nuovo memory store riorganizzato: i duplicati vengono uniti, le voci obsolete o contraddette vengono sostituite con il valore più recente e nuove intuizioni vengono fatte emergere.
Lo store di input non viene mai modificato, quindi puoi esaminare l'output e scartarlo se il risultato non ti soddisfa.
Tutte le richieste alla Managed Agents API richiedono l'header beta managed-agents-2026-04-01. I dream richiedono inoltre l'header beta dreaming-2026-04-21. L'SDK li imposta automaticamente.
Un dream è un job asincrono che riceve:
Il dream produce un altro memory store di output, separato dall'input. L'ID dello store di output compare in outputs[] del dream una volta che passa allo stato running.
Gli input del dreaming includono il memory store preesistente e un array di sessioni. Il modello selezionato eseguirà la pipeline di dreaming; durante l'anteprima di ricerca sono supportati claude-opus-4-8, claude-opus-4-7 e claude-sonnet-4-6. Puoi opzionalmente passare instructions per guidare il processo di dreaming; consulta Guidare con le istruzioni.
La risposta è la risorsa dream completa con status: "pending":
{
"type": "dream",
"id": "drm_01AbCDefGhIjKlMnOpQrStUv",
"status": "pending",
"inputs": [
{ "type": "memory_store", "memory_store_id": "memstore_01Hx..." },
{ "type": "sessions", "session_ids": ["sesn_01...", "sesn_02..."] }
],
"outputs": [],
"model": { "id": "claude-opus-4-8" },
"instructions": "Focus on coding-style preferences; ignore one-off debugging notes.",
"session_id": null,
"created_at": "2026-04-29T17:04:10Z",
"ended_at": null,
"archived_at": null,
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0
},
"error": null
}Se hai solo trascrizioni di sessioni e nessuno store esistente, crea prima un memory store vuoto e passalo come input memory_store.
Il campo opzionale instructions guida ciò che la pipeline di dreaming sintetizza. Viene applicato in tutta la pipeline: cosa leggere con attenzione, cosa unire o eliminare e come strutturare lo store di output.
Usa instructions per indicazioni di sintesi di alto livello come aree di interesse ("concentrati sulle preferenze di stile di codifica"), contenuti da preservare invariati o convenzioni di output che vuoi applicare all'intero store. La pipeline è un passaggio di sintesi sugli input, non un editor applicato al testo dello store, quindi direttive imperative che mirano a righe specifiche ("cambia la frase X in Y", "correggi il conteggio nella sezione Z") generalmente non producono alcuna modifica. Per apportare modifiche mirate a singole memorie, usa la Memory Stores API direttamente sullo store di output.
I dream vengono eseguiti in modo asincrono e richiedono in genere da alcuni minuti a decine di minuti a seconda della dimensione dell'input. Esegui il polling del dream tramite ID per verificarne lo stato:
status | Significato |
|---|---|
pending | Dream creato con successo e in coda. |
running | La pipeline è in elaborazione. usage si aggiorna man mano che il lavoro procede. |
completed | Completato con successo. Il valore in outputs[] è il nuovo memory store. |
failed | L'esecuzione del dreaming è terminata con un errore. Il memory store di output viene lasciato così com'è, con tutto ciò che è stato scritto prima dell'errore. |
canceled | Esecuzione del dreaming annullata. Il memory store di output viene lasciato così com'è. |
Una volta che un dream è running, il suo campo session_id punta alla sessione sottostante che esegue la pipeline. Puoi eseguire lo streaming degli eventi di quella sessione per osservare in tempo reale cosa il dream sta leggendo e scrivendo. La sessione viene archiviata (non eliminata) quando il dream raggiunge uno stato terminale, quindi la trascrizione rimane disponibile in seguito.
Quando status raggiunge completed, la voce memory_store in outputs[] fa riferimento a uno store completamente popolato. È un memory store ordinario nel tuo workspace. Esaminalo con la Memory Stores API o nella Console, quindi:
memory_store al posto del (o insieme al) memory store di input, oppureIl dream stesso non elimina né modifica mai i suoi input. In caso di failed o canceled, lo store di output persiste con contenuti parziali così puoi ispezionare cosa è stato prodotto prima dell'interruzione; ripuliscilo tramite la Memory Stores API se non ti serve.
Mentre un dream è pending o running, l'archiviazione o l'eliminazione del suo store di output viene rifiutata con un errore 400. L'archiviazione o l'eliminazione di uno store o di una sessione di input durante l'esecuzione causerà il fallimento del dream con input_memory_store_unavailable o input_session_unavailable.
L'annullamento sposta immediatamente un dream pending o running allo stato canceled. Annullare un dream già canceled è un'operazione idempotente senza effetto; annullare un dream completed o failed restituisce 400.
Dopo l'annullamento, i campi usage del dream potrebbero continuare ad aggiornarsi per alcuni secondi mentre il lavoro in corso si conclude. Esegui il polling del dream finché usage non si stabilizza se hai bisogno del conteggio finale.
L'archiviazione imposta archived_at su un dream che ha raggiunto uno stato terminale (completed, failed o canceled); status rimane invariato. I dream archiviati sono esclusi dalle risposte di elenco predefinite ma rimangono leggibili tramite ID. Archiviare un dream già archiviato è un'operazione idempotente senza effetto. Archiviare un dream pending o running restituisce 400; annullalo prima. Non esiste un'operazione di ripristino dall'archivio.
L'archiviazione di un dream non tocca il suo memory store di output; gestiscilo separatamente tramite la Memory Stores API.
Restituisce tutti i dream non archiviati nel workspace, dal più recente al meno recente. Usa limit (predefinito 20, massimo 100) e il cursore page per la paginazione. Passa include_archived=true per includere i dream archiviati.
Di seguito è riportato un elenco non esaustivo dei possibili errori di dreaming.
error.type | Quando |
|---|---|
timeout | La pipeline ha superato il suo budget di tempo di esecuzione. |
internal_error | Errore della pipeline non classificato. |
memory_store_org_limit_exceeded | La tua organizzazione ha raggiunto il limite di memory store mentre la pipeline stava allocando lo storage di lavoro. |
input_memory_store_too_large | Il memory store di input supera il limite di dimensione della pipeline. |
input_memory_store_unavailable | Il memory store di input è stato archiviato o eliminato dopo la creazione del dream. |
input_session_unavailable | Una sessione di input è stata archiviata o eliminata dopo la creazione del dream. |
I dream vengono fatturati alle tariffe standard dei token API per il modello selezionato; usage sulla risorsa riporta i totali esatti. Il costo scala in modo approssimativamente lineare con il numero e la lunghezza delle sessioni di input. Inizia con un piccolo batch di sessioni e aumenta gradualmente una volta soddisfatto della qualità della curazione.
| Limite | Valore |
|---|---|
| Sessioni per dream | 100 |
Lunghezza di instructions | 4.096 caratteri |
| Modelli supportati | claude-opus-4-8, claude-opus-4-7, claude-sonnet-4-6 |
I limiti di velocità predefiniti si applicano alla creazione di dream mentre questa funzionalità è in beta. Contatta il supporto se hai bisogno di limiti più elevati.
dream = client.beta.dreams.create(
inputs=[
{"type": "memory_store", "memory_store_id": store_id},
{"type": "sessions", "session_ids": [session_a, session_b]},
],
model="claude-opus-4-8",
instructions="Focus on coding-style preferences; ignore one-off debugging notes.",
)
print(dream.id) # drm_01...while dream.status in ("pending", "running"):
time.sleep(10)
dream = client.beta.dreams.retrieve(dream.id)
print(f"status={dream.status} input_tokens={dream.usage.input_tokens}")# After the dream ends, the output holds the rebuilt memory store
output_store_id = next(
output.memory_store_id for output in dream.outputs if output.type == "memory_store"
)
session = client.beta.sessions.create(
agent=agent_id,
environment_id=environment_id,
resources=[
{"type": "memory_store", "memory_store_id": output_store_id},
],
)client.beta.dreams.cancel(dream.id)client.beta.dreams.archive(dream.id)for listed_dream in client.beta.dreams.list(limit=20):
print(listed_dream.id, listed_dream.status)