Dreaming é um recurso em prévia de pesquisa. Solicite acesso para experimentá-lo.
Agentes escrevem em seus memory stores (armazenamentos de memória) 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 o Claude limpe isso. Um dream lê um memory store existente junto com transcrições de sessões anteriores e, em seguida, produz um novo memory store reorganizado: duplicatas mescladas, entradas obsoletas ou contraditórias 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.
Todas as requisições à Managed Agents API exigem o cabeçalho beta managed-agents-2026-04-01. Dreams exigem adicionalmente o cabeçalho beta dreaming-2026-04-21. 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 assim que ele começa a ficar running.
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 de dreaming incluem o memory store pré-existente e um array de sessões. O modelo selecionado executará o pipeline de dreaming; durante a prévia de pesquisa, claude-opus-4-8, claude-opus-4-7 e claude-sonnet-4-6 são suportados. Opcionalmente, você pode passar instructions para orientar o processo de dreaming; consulte Orientar 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_creation_input_tokens": 0,
"cache_read_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 orienta 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 ser preservado 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 alteração. Para fazer edições direcionadas em memórias individuais, use a Memory Stores API diretamente no store de saída.
Dreams são executados de forma assíncrona e normalmente levam de minutos a dezenas de minutos, dependendo do tamanho da entrada. Consulte o dream pelo 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 | Concluído com sucesso. O valor em outputs[] é o novo memory store. |
failed | A execução de dreaming terminou com um erro. O memory store de saída é deixado como está, com o que foi escrito antes da falha. |
canceled | Execução de dreaming cancelada. O memory store de saída é deixado como está. |
Assim que um dream está 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 preenchido. É um memory store comum no seu workspace. Revise-o com a Memory Stores API ou no Console e, em seguida:
memory_store no lugar do (ou junto com o) memory store de entrada, ou# 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},
],
)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 via Memory Stores API se não precisar dele.
Enquanto um dream está pending ou running, arquivar ou excluir seu store de saída é rejeitado com um 400. Arquivar ou excluir um store ou sessão de entrada durante a execução fará com que o dream falhe com input_memory_store_unavailable ou input_session_unavailable.
Cancelar move um dream pending ou running para canceled imediatamente. Cancelar um dream que já está canceled é uma operação idempotente sem efeito; cancelar um dream completed ou failed retorna 400.
Após o cancelamento, os campos usage do dream podem continuar sendo 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)Arquivar 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 pending ou running retorna 400; cancele-o primeiro. Não há como desarquivar.
client.beta.dreams.archive(dream.id)Arquivar um dream não afeta seu memory store de saída; gerencie-o separadamente via Memory Stores API.
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)Uma lista não exaustiva de possíveis erros de dreaming está abaixo.
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 o limite de memory stores enquanto o pipeline estava provisionando 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 arquivada ou excluída após a criação do dream. |
Dreams são cobrados às taxas padrão de tokens da API para o modelo que você selecionar; usage no recurso reporta os totais exatos. O custo escala aproximadamente de forma linear com o número e o tamanho 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 |
Tamanho de instructions | 4.096 caracteres |
| Modelos suportados | claude-opus-4-8, claude-opus-4-7, claude-sonnet-4-6 |
Limites de taxa padrão se aplicam à criação de dreams enquanto este recurso está em beta. Entre em contato com o suporte se precisar de limites mais altos.
Was this page helpful?