Dreaming adalah fitur pratinjau riset. Minta akses untuk mencobanya.
Agen menulis ke memory store (penyimpanan memori) mereka saat bekerja, tetapi penulisan ini bersifat lokal dan inkremental: setelah banyak sesi, sebuah memory store akan mengakumulasi duplikat, kontradiksi, dan entri yang sudah usang.
Dreams memungkinkan Claude membersihkan hal tersebut. Sebuah dream membaca memory store yang sudah ada bersama dengan transkrip sesi sebelumnya, lalu menghasilkan memory store baru yang telah direorganisasi: duplikat digabungkan, entri yang usang atau bertentangan diganti dengan nilai terbaru, dan wawasan baru dimunculkan.
Store input tidak pernah dimodifikasi, sehingga Anda dapat meninjau output dan membuangnya jika Anda tidak menyukai hasilnya.
Semua permintaan Managed Agents API memerlukan header beta managed-agents-2026-04-01. Dreams juga memerlukan header beta dreaming-2026-04-21. SDK mengatur ini secara otomatis.
Sebuah dream adalah pekerjaan asinkron yang menerima:
Dream menghasilkan memory store output lain, yang terpisah dari input. ID store output muncul di outputs[] milik dream setelah statusnya menjadi 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...Input dreaming mencakup memory store yang sudah ada dan sebuah array sesi. Model yang dipilih akan menjalankan pipeline dreaming; selama pratinjau riset, claude-opus-4-8, claude-opus-4-7, dan claude-sonnet-4-6 didukung. Anda dapat secara opsional meneruskan instructions untuk mengarahkan proses dreaming; lihat Mengarahkan dengan instruksi.
Responsnya adalah resource dream lengkap dengan 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
}Jika Anda hanya memiliki transkrip sesi dan tidak memiliki store yang sudah ada, buat memory store kosong terlebih dahulu dan teruskan sebagai input memory_store.
Field opsional instructions mengarahkan apa yang disintesis oleh pipeline dreaming. Field ini diterapkan di seluruh pipeline: apa yang harus dibaca dengan cermat, apa yang harus digabungkan atau dibuang, dan bagaimana menyusun struktur store output.
Gunakan instructions untuk panduan sintesis tingkat tinggi seperti area fokus ("fokus pada preferensi gaya pengkodean"), konten yang harus dipertahankan tanpa perubahan, atau konvensi output yang ingin Anda terapkan di seluruh store. Pipeline ini adalah proses sintesis atas input, bukan editor yang diterapkan pada teks store, sehingga arahan imperatif yang menargetkan baris tertentu ("ubah kalimat X menjadi Y", "perbaiki hitungan di bagian Z") umumnya tidak menghasilkan perubahan. Untuk melakukan pengeditan yang ditargetkan pada memori individual, gunakan Memory Stores API langsung pada store output.
Dreams berjalan secara asinkron dan biasanya memakan waktu beberapa menit hingga puluhan menit tergantung pada ukuran input. Lakukan polling pada dream berdasarkan ID untuk memeriksa 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 | Arti |
|---|---|
pending | Dream berhasil dibuat dan dimasukkan ke antrean. |
running | Pipeline sedang memproses. usage diperbarui seiring berjalannya pekerjaan. |
completed | Selesai dengan sukses. Nilai outputs[] adalah memory store baru. |
failed | Proses dreaming berakhir dengan error. Memory store output dibiarkan apa adanya dengan apa pun yang telah ditulis sebelum kegagalan. |
canceled | Proses dreaming dibatalkan. Memory store output dibiarkan apa adanya. |
Setelah sebuah dream berstatus running, field session_id-nya menunjuk ke sesi yang mendasari dan menjalankan pipeline tersebut. Anda dapat melakukan streaming event sesi tersebut untuk mengamati apa yang sedang dibaca dan ditulis oleh dream secara real time. Sesi tersebut diarsipkan (bukan dihapus) ketika dream mencapai status terminal, sehingga transkripnya tetap tersedia setelahnya.
Ketika status mencapai completed, entri memory_store di outputs[] mereferensikan store yang telah terisi penuh. Ini adalah memory store biasa di workspace Anda. Tinjau dengan Memory Stores API atau di Console, lalu:
memory_store sebagai pengganti (atau bersama dengan) memory store input, atau# 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},
],
)Dream itu sendiri tidak pernah menghapus atau memodifikasi inputnya. Pada status failed atau canceled, store output tetap ada dengan konten parsial sehingga Anda dapat memeriksa apa yang telah dihasilkan sebelum berhenti; bersihkan melalui Memory Stores API jika Anda tidak membutuhkannya.
Saat sebuah dream berstatus pending atau running, pengarsipan atau penghapusan store output-nya akan ditolak dengan kode 400. Mengarsipkan atau menghapus store atau sesi input di tengah proses akan menyebabkan dream gagal dengan input_memory_store_unavailable atau input_session_unavailable.
Cancel memindahkan dream yang berstatus pending atau running ke canceled secara langsung. Membatalkan dream yang sudah berstatus canceled adalah no-op idempoten; membatalkan dream yang berstatus completed atau failed mengembalikan kode 400.
Setelah pembatalan, field usage pada dream mungkin terus diperbarui selama beberapa detik sementara pekerjaan yang sedang berjalan diselesaikan. Lakukan polling pada dream hingga usage stabil jika Anda memerlukan hitungan akhir.
client.beta.dreams.cancel(dream.id)Archive menetapkan archived_at pada dream yang telah mencapai status terminal (completed, failed, atau canceled); status dibiarkan tidak berubah. Dream yang diarsipkan dikecualikan dari respons list default tetapi tetap dapat dibaca berdasarkan ID. Mengarsipkan dream yang sudah diarsipkan adalah no-op idempoten. Mengarsipkan dream yang berstatus pending atau running mengembalikan kode 400; batalkan terlebih dahulu. Tidak ada fitur unarchive.
client.beta.dreams.archive(dream.id)Mengarsipkan dream tidak menyentuh memory store output-nya; kelola itu secara terpisah melalui Memory Stores API.
Mengembalikan semua dream yang tidak diarsipkan di workspace, yang terbaru lebih dulu. Gunakan limit (default 20, maks 100) dan kursor page untuk paginasi. Teruskan include_archived=true untuk menyertakan dream yang diarsipkan.
for listed_dream in client.beta.dreams.list(limit=20):
print(listed_dream.id, listed_dream.status)Daftar non-lengkap dari kemungkinan error dreaming ada di bawah ini.
error.type | Kapan |
|---|---|
timeout | Pipeline melebihi anggaran waktu prosesnya. |
internal_error | Kegagalan pipeline yang tidak terklasifikasi. |
memory_store_org_limit_exceeded | Organisasi Anda mencapai batas memory store saat pipeline sedang menyediakan penyimpanan kerja. |
input_memory_store_too_large | Memory store input melebihi batas ukuran pipeline. |
input_memory_store_unavailable | Memory store input diarsipkan atau dihapus setelah dream dibuat. |
input_session_unavailable | Sebuah sesi input diarsipkan atau dihapus setelah dream dibuat. |
Dreams ditagih dengan tarif token API standar untuk model yang Anda pilih; usage pada resource melaporkan total yang tepat. Biaya berskala kira-kira linear dengan jumlah dan panjang sesi input. Mulailah dengan batch sesi yang kecil dan tingkatkan setelah Anda puas dengan kualitas kurasi.
| Batasan | Nilai |
|---|---|
| Sesi per dream | 100 |
Panjang instructions | 4.096 karakter |
| Model yang didukung | claude-opus-4-8, claude-opus-4-7, claude-sonnet-4-6 |
Batas laju default berlaku untuk pembuatan dream selama fitur ini dalam versi beta. Hubungi dukungan jika Anda memerlukan batas yang lebih tinggi.
Was this page helpful?