Dreaming es una función en vista previa de investigación. Solicita acceso para probarla.
Los agentes escriben en sus almacenes de memoria mientras trabajan, pero estas escrituras son locales e incrementales: a lo largo de muchas sesiones, un almacén de memoria acumula duplicados, contradicciones y entradas obsoletas.
Los dreams permiten que Claude limpie eso. Un dream lee un almacén de memoria existente junto con las transcripciones de sesiones pasadas, y luego produce un nuevo almacén de memoria reorganizado: duplicados fusionados, entradas obsoletas o contradichas reemplazadas con el valor más reciente, y nuevos insights descubiertos.
El almacén de entrada nunca se modifica, por lo que puedes revisar la salida y descartarla si no te gusta el resultado.
Los endpoints de dreams están restringidos por el encabezado beta dreaming-2026-04-21; el encabezado managed-agents-2026-04-01 por sí solo no otorga acceso a los dreams. Los ejemplos de endpoints de dreams en esta página envían ambos encabezados; las llamadas a sesiones y almacenes de memoria solo necesitan managed-agents-2026-04-01. El SDK los establece automáticamente.
Un dream es un trabajo asíncrono que toma:
El dream produce otro almacén de memoria de salida, separado de la entrada. El ID del almacén de salida aparece en outputs[] del dream poco después de que el dream pase a running, una vez que el flujo de trabajo haya clonado el almacén de entrada; un dream en estado running puede reportar brevemente un outputs[] vacío.
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...Las entradas de dreaming incluyen el almacén de memoria preexistente y un arreglo de sesiones. El modelo seleccionado ejecuta el pipeline de dreaming; durante la vista previa de investigación se admiten claude-fable-5, claude-opus-4-8, claude-opus-4-7, claude-sonnet-5 y claude-sonnet-4-6. Opcionalmente puedes pasar instructions para guiar el proceso de dreaming; consulta Guiar con instrucciones.
La respuesta es el recurso dream completo 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_read_input_tokens": 0,
"cache_creation_input_tokens": 0
},
"error": null
}Si solo tienes transcripciones de sesiones y ningún almacén existente, primero crea un almacén de memoria vacío y pásalo como la entrada memory_store.
El campo opcional instructions guía lo que el pipeline de dreaming sintetiza. Se aplica a lo largo de todo el pipeline: qué leer con atención, qué fusionar o descartar, y cómo estructurar el almacén de salida.
Usa instructions para orientación de síntesis de alto nivel, como áreas de enfoque ("enfócate en las preferencias de estilo de código"), contenido que debe preservarse sin cambios, o convenciones de salida que quieras aplicar en todo el almacén. El pipeline es una pasada de síntesis sobre las entradas, no un editor aplicado al texto del almacén, por lo que las directivas imperativas que apuntan a líneas específicas ("cambia la oración X por Y", "corrige el conteo en la sección Z") generalmente no producen ningún cambio. Para hacer ediciones específicas a memorias individuales, usa la API de Memory Stores directamente sobre el almacén de salida.
Los dreams se ejecutan de forma asíncrona y normalmente tardan desde minutos hasta unas pocas horas, según el número de transcripciones de entrada. Consulta el dream por ID para verificar su estado:
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}")status | Significado |
|---|---|
pending | Dream creado exitosamente y en cola. |
running | El pipeline está procesando. usage se actualiza a medida que avanza el trabajo. |
completed | Finalizado exitosamente. El valor de outputs[] es el nuevo almacén de memoria. |
failed | La ejecución de dreaming terminó con un error. El almacén de memoria de salida se deja tal cual, con lo que se haya escrito antes del fallo. |
canceled | Ejecución de dreaming cancelada. El almacén de memoria de salida se deja tal cual. |
Una vez que un dream está en running, su campo session_id apunta a la sesión subyacente que ejecuta el pipeline. Puedes hacer streaming de los eventos de esa sesión para observar lo que el dream está leyendo y escribiendo en tiempo real. La sesión se archiva (no se elimina) cuando el dream alcanza un estado terminal, por lo que la transcripción sigue disponible después.
Cuando status llega a completed, la entrada memory_store en outputs[] hace referencia a un almacén completamente poblado. Es un almacén de memoria ordinario en tu espacio de trabajo. Revísalo con la API de Memory Stores o en la Console, y luego:
memory_store en lugar del almacén de memoria de entrada (o junto a él), o# Tras finalizar el dream, la salida contiene el almacén de memoria reconstruido
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},
],
)El dream en sí nunca elimina ni modifica sus entradas. En caso de failed o canceled, el almacén de salida persiste con contenido parcial para que puedas inspeccionar lo que se produjo antes de detenerse; límpialo a través de la API de Memory Stores si no lo necesitas.
Mientras un dream está en pending o running, la protección 400 se aplica al archivado del dream en sí, no a sus almacenes. Archivar o eliminar un almacén de memoria de entrada a mitad de la ejecución (o eliminar una sesión de entrada) hará que el dream falle con input_memory_store_unavailable o input_session_unavailable.
Cancelar mueve un dream en pending o running a canceled inmediatamente. Cancelar un dream que ya está en canceled es una operación idempotente sin efecto; cancelar un dream en completed o failed devuelve 400.
Después de la cancelación, los campos usage del dream podrían seguir actualizándose durante unos segundos mientras el trabajo en curso finaliza. Consulta el dream hasta que usage se estabilice si necesitas el conteo final.
client.beta.dreams.cancel(dream.id)Archivar establece archived_at en un dream que ha alcanzado un estado terminal (completed, failed o canceled); status se deja sin cambios. Los dreams archivados se excluyen de las respuestas de listado predeterminadas, pero siguen siendo legibles por ID. Archivar un dream ya archivado es una operación idempotente sin efecto. Archivar un dream en pending o running devuelve 400; cancélalo primero. No existe la opción de desarchivar.
client.beta.dreams.archive(dream.id)Archivar un dream no afecta su almacén de memoria de salida; gestiónalo por separado a través de la API de Memory Stores.
Devuelve todos los dreams no archivados en el espacio de trabajo, los más recientes primero. Usa limit (predeterminado 20, máximo 100) y el cursor page para paginar. Pasa include_archived=true para incluir los dreams archivados.
for listed_dream in client.beta.dreams.list(limit=20):
print(listed_dream.id, listed_dream.status)A continuación, una lista no exhaustiva de posibles errores de dreaming.
error.type | Cuándo |
|---|---|
timeout | El pipeline excedió su presupuesto de tiempo de ejecución. |
internal_error | Fallo del pipeline sin clasificar. |
memory_store_org_limit_exceeded | Tu organización alcanzó su límite de almacenes de memoria mientras el pipeline aprovisionaba almacenamiento de trabajo. |
input_memory_store_too_large | El almacén de memoria de entrada excede el límite de tamaño del pipeline. |
input_memory_store_unavailable | El almacén de memoria de entrada fue archivado o eliminado después de que se creó el dream. |
input_session_unavailable | Una sesión de entrada fue eliminada después de que se creó el dream. |
Los dreams se facturan a las tarifas estándar de tokens de la API para el modelo que selecciones; usage en el recurso reporta los totales exactos. El costo escala de forma aproximadamente lineal con el número y la longitud de las sesiones de entrada. Comienza con un lote pequeño de sesiones y escala una vez que estés satisfecho con la calidad de la curación.
| Límite | Valor |
|---|---|
| Sesiones por dream | 100 |
Longitud de instructions | 4,096 caracteres |
| Modelos admitidos | claude-fable-5, claude-opus-4-8, claude-opus-4-7, claude-sonnet-5, claude-sonnet-4-6 |
Los límites de velocidad predeterminados se aplican a la creación de dreams mientras esta función está en vista previa de investigación. Contacta a soporte si necesitas límites más altos.
Was this page helpful?