Dreaming é um recurso em prévia de pesquisa. Solicite acesso para experimentá-lo.
Agentes escrevem em seus memory stores enquanto trabalham, mas essas escritas são locais e incrementais: ao longo de muitas sessões, um memory store acumula duplicatas, contradições e entradas obsoletas.
Dreams permitem que Claude limpe isso. Um dream lê um memory store existente junto com transcrições de sessões passadas e, em seguida, produz um novo memory store reorganizado: duplicatas mescladas, entradas obsoletas ou contraditas substituídas pelo valor mais recente, e novos insights revelados.
O store de entrada nunca é modificado, então você pode revisar a saída e descartá-la se não gostar do resultado.
Os endpoints de dream são controlados pelo cabeçalho beta dreaming-2026-04-21; o cabeçalho managed-agents-2026-04-01 por si só não concede acesso a dreams. Os exemplos de endpoints de dream nesta página enviam ambos os cabeçalhos; chamadas de sessão e de memory store precisam apenas de managed-agents-2026-04-01. O SDK define esses cabeçalhos automaticamente.
Um dream é um job assíncrono que recebe:
O dream produz outro memory store de saída, separado da entrada. O ID do store de saída aparece em outputs[] do dream logo após o dream entrar em running, assim que o workflow tiver clonado o store de entrada; um dream em running pode brevemente reportar um outputs[] vazio.
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...As entradas do dreaming incluem o memory store pré-existente e um array de sessões. O modelo selecionado executa o pipeline de dreaming; durante a prévia de pesquisa, claude-fable-5, claude-opus-4-8, claude-opus-4-7, claude-sonnet-5 e claude-sonnet-4-6 são suportados. Você pode opcionalmente passar instructions para direcionar o processo de dreaming; consulte Direcionar com instruções.
A resposta é o recurso dream completo com 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
}Se você tiver apenas transcrições de sessões e nenhum store existente, crie um memory store vazio primeiro e passe-o como a entrada memory_store.
O campo opcional instructions direciona o que o pipeline de dreaming sintetiza. Ele é aplicado ao longo de todo o pipeline: o que ler com atenção, o que mesclar ou descartar, e como estruturar o store de saída.
Use instructions para orientações de síntese de alto nível, como áreas de foco ("foque em preferências de estilo de código"), conteúdo a preservar sem alterações, ou convenções de saída que você deseja aplicar em todo o store. O pipeline é uma passagem de síntese sobre as entradas, não um editor aplicado ao texto do store, então diretivas imperativas que visam linhas específicas ("mude a frase X para Y", "corrija a contagem na seção Z") geralmente não produzem nenhuma mudança. Para fazer edições direcionadas em memórias individuais, use a API de Memory Stores diretamente no store de saída.
Dreams são executados de forma assíncrona e normalmente levam de minutos a algumas horas, dependendo do número de transcrições de entrada. Consulte o dream por ID para verificar o status:
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 criado com sucesso e enfileirado. |
running | O pipeline está processando. usage é atualizado conforme o trabalho avança. |
completed | Finalizado com sucesso. O valor em outputs[] é o novo memory store. |
failed | A execução do dreaming terminou com um erro. O memory store de saída é deixado como está, com o que quer que tenha sido escrito antes da falha. |
canceled | Execução do dreaming cancelada. O memory store de saída é deixado como está. |
Quando um dream está em running, seu campo session_id aponta para a sessão subjacente que executa o pipeline. Você pode fazer streaming dos eventos dessa sessão para observar o que o dream está lendo e escrevendo em tempo real. A sessão é arquivada (não excluída) quando o dream atinge um estado terminal, então a transcrição permanece disponível depois.
Quando status atinge completed, a entrada memory_store em outputs[] referencia um store totalmente populado. É um memory store comum no seu workspace. Revise-o com a API de Memory Stores ou no Console, e então:
memory_store no lugar do (ou junto com o) memory store de entrada, ou# Após o dream terminar, a saída contém o armazenamento de memória reconstruído
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},
],
)O dream em si nunca exclui ou modifica suas entradas. Em caso de failed ou canceled, o store de saída persiste com conteúdo parcial para que você possa inspecionar o que foi produzido antes da interrupção; limpe-o por meio da API de Memory Stores se não precisar dele.
Enquanto um dream está em pending ou running, a proteção 400 se aplica ao arquivamento do próprio dream, não de seus stores. Arquivar ou excluir um memory store de entrada no meio da execução (ou excluir uma sessão de entrada) fará com que o dream falhe com input_memory_store_unavailable ou input_session_unavailable.
O cancelamento move um dream em pending ou running para canceled imediatamente. Cancelar um dream já em canceled é uma operação idempotente sem efeito; cancelar um dream em completed ou failed retorna 400.
Após o cancelamento, os campos usage do dream podem continuar a ser atualizados por alguns segundos enquanto o trabalho em andamento é finalizado. Consulte o dream até que usage se estabilize se você precisar da contagem final.
client.beta.dreams.cancel(dream.id)O arquivamento define archived_at em um dream que atingiu um estado terminal (completed, failed ou canceled); status permanece inalterado. Dreams arquivados são excluídos das respostas de listagem padrão, mas permanecem legíveis por ID. Arquivar um dream já arquivado é uma operação idempotente sem efeito. Arquivar um dream em pending ou running retorna 400; cancele-o primeiro. Não há desarquivamento.
client.beta.dreams.archive(dream.id)Arquivar um dream não afeta seu memory store de saída; gerencie-o separadamente por meio da API de Memory Stores.
Retorna todos os dreams não arquivados no workspace, do mais recente para o mais antigo. Use limit (padrão 20, máximo 100) e o cursor page para paginar. Passe include_archived=true para incluir dreams arquivados.
for listed_dream in client.beta.dreams.list(limit=20):
print(listed_dream.id, listed_dream.status)Segue uma lista não exaustiva de possíveis erros de dreaming.
error.type | Quando |
|---|---|
timeout | O pipeline excedeu seu orçamento de tempo de execução. |
internal_error | Falha não classificada do pipeline. |
memory_store_org_limit_exceeded | Sua organização atingiu seu limite de memory stores enquanto o pipeline provisionava armazenamento de trabalho. |
input_memory_store_too_large | O memory store de entrada excede o limite de tamanho do pipeline. |
input_memory_store_unavailable | O memory store de entrada foi arquivado ou excluído após a criação do dream. |
input_session_unavailable | Uma sessão de entrada foi excluída após a criação do dream. |
Dreams são cobrados nas taxas padrão de tokens da API para o modelo que você selecionar; usage no recurso reporta os totais exatos. O custo escala de forma aproximadamente linear com o número e o comprimento das sessões de entrada. Comece com um pequeno lote de sessões e aumente a escala quando estiver satisfeito com a qualidade da curadoria.
| Limite | Valor |
|---|---|
| Sessões por dream | 100 |
Comprimento de instructions | 4.096 caracteres |
| Modelos suportados | claude-fable-5, claude-opus-4-8, claude-opus-4-7, claude-sonnet-5, claude-sonnet-4-6 |
Limites de taxa padrão se aplicam à criação de dreams enquanto este recurso está em prévia de pesquisa. Entre em contato com o suporte se precisar de limites mais altos.
Was this page helpful?