エージェントは作業中にメモリストアに書き込みますが、これらの書き込みは局所的かつ増分的なものです。多数のセッションを経ると、メモリストアには重複、矛盾、古くなったエントリが蓄積されていきます。
**「dream」(ドリーム)**は、Claudeにこれを整理させる機能です。ドリームは既存のメモリストアを過去のセッショントランスクリプトとともに読み込み、再編成された新しいメモリストアを生成します。重複はマージされ、古くなったエントリや矛盾するエントリは最新の値に置き換えられ、新たなインサイトが浮かび上がります。
入力ストアは一切変更されないため、出力を確認し、結果が気に入らなければ破棄できます。
ドリームは、以下を入力として受け取る非同期ジョブです。
ドリームは、入力とは別の出力メモリストアを生成します。出力ストアのIDは、ワークフローが入力ストアをクローンした後、ドリームが running を開始した直後にドリームの outputs[] に表示されます。running 状態のドリームは、短時間だけ空の outputs[] を報告することがあります。
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...ドリーミングの入力には、既存のメモリストアとセッションの配列が含まれます。選択したモデルがドリーミングパイプラインを実行します。リサーチプレビュー期間中は claude-opus-5、claude-fable-5、claude-opus-4-8、claude-opus-4-7、claude-sonnet-5、claude-sonnet-4-6 がサポートされています。オプションで instructions を渡してドリーミングプロセスを誘導することもできます。詳細はinstructionsで誘導するを参照してください。
レスポンスは status: "pending" を持つ完全な dream リソースです。
{
"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
}オプションの instructions フィールドは、ドリーミングパイプラインが何を統合するかを誘導します。これはパイプライン全体に適用されます。何を注意深く読むか、何をマージまたは削除するか、出力ストアをどのように構造化するかなどです。
instructions は、重点領域(「コーディングスタイルの好みに焦点を当てる」)、変更せずに保持すべき内容、ストア全体に適用したい出力規約など、高レベルの統合ガイダンスに使用してください。パイプラインは入力に対する統合パスであり、ストアのテキストに適用されるエディタではないため、特定の行を対象とする命令的な指示(「文Xを文Yに変更する」、「セクションZのカウントを修正する」)は通常、変更を生じさせません。個々のメモリに対して的を絞った編集を行うには、出力ストアに対して直接Memory Stores APIを使用してください。
ドリームは非同期で実行され、通常は数分から数時間かかります。所要時間は入力トランスクリプトの数によって決まります。ステータスを確認するには、IDでドリームをポーリングしてください。
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 | 意味 |
|---|---|
pending | ドリームが正常に作成され、キューに入りました。 |
running | パイプラインが処理中です。作業の進行に伴い usage が更新されます。 |
completed | 正常に完了しました。outputs[] の値が新しいメモリストアです。 |
failed | ドリーミングの実行がエラーで終了しました。出力メモリストアは、失敗前に書き込まれた内容のまま残されます。 |
canceled | ドリーミングの実行がキャンセルされました。出力メモリストアはそのまま残されます。 |
ドリームが running になると、その session_id フィールドはパイプラインを実行している基盤のセッションを指します。そのセッションのイベントをストリーミングすることで、ドリームが何を読み書きしているかをリアルタイムで観察できます。ドリームが終了状態に達すると、セッションはアーカイブされます(削除はされません)。そのため、トランスクリプトはその後も利用可能です。
status が completed に達すると、outputs[] 内の memory_store エントリは完全に内容が入ったストアを参照します。これはワークスペース内の通常のメモリストアです。Memory Stores APIまたはコンソールで確認した後、次のいずれかを行ってください。
memory_store リソースとしてアタッチします。# dream が終了すると、出力には再構築されたメモリストアが保持されます
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},
],
)ドリーム自体は、その入力を削除または変更することはありません。failed または canceled の場合、出力ストアは停止前に生成された部分的な内容とともに残るため、何が生成されたかを確認できます。不要な場合はMemory Stores APIを通じてクリーンアップしてください。
キャンセルは、pending または running のドリームを即座に canceled に移行させます。すでに canceled のドリームをキャンセルすることは冪等な無操作(no-op)です。completed または failed のドリームをキャンセルすると400が返されます。
client.beta.dreams.cancel(dream.id)アーカイブは、終了状態(completed、failed、または canceled)に達したドリームに archived_at を設定します。status は変更されません。アーカイブされたドリームはデフォルトのリストレスポンスから除外されますが、IDによる読み取りは引き続き可能です。すでにアーカイブされたドリームをアーカイブすることは冪等な無操作(no-op)です。pending または running のドリームをアーカイブすると400が返されます。先にキャンセルしてください。アーカイブ解除はありません。
client.beta.dreams.archive(dream.id)ドリームをアーカイブしても、その出力メモリストアには影響しません。出力メモリストアはMemory Stores APIを通じて別途管理してください。
ワークスペース内のアーカイブされていないすべてのドリームを、新しい順に返します。ページネーションには limit(デフォルト20、最大100)と page カーソルを使用してください。アーカイブされたドリームを含めるには include_archived=true を渡します。
for listed_dream in client.beta.dreams.list(limit=20):
print(listed_dream.id, listed_dream.status)以下は、発生しうるドリーミングエラーの一部です(網羅的なリストではありません)。
error.type | 発生条件 |
|---|---|
timeout | パイプラインが実行時間の上限を超えました。 |
internal_error | 分類されていないパイプライン障害です。 |
memory_store_org_limit_exceeded | パイプラインが作業用ストレージをプロビジョニング中に、組織がメモリストアの上限に達しました。 |
input_memory_store_too_large | 入力メモリストアがパイプラインのサイズ制限を超えています。 |
input_memory_store_unavailable | ドリーム作成後に入力メモリストアがアーカイブまたは削除されました。 |
input_session_unavailable | ドリーム作成後に入力セッションが削除されました。 |
ドリームは、選択したモデルの標準APIトークンレートで課金されます。リソースの usage が正確な合計を報告します。コストは入力セッションの数と長さにほぼ比例してスケールします。少数のセッションから始め、キュレーションの品質に満足したらスケールアップしてください。
| 制限 | 値 |
|---|---|
| ドリームあたりのセッション数 | 100 |
instructions の長さ | 4,096文字 |
| サポートされるモデル | claude-opus-5、claude-fable-5、claude-opus-4-8、claude-opus-4-7、claude-sonnet-5、claude-sonnet-4-6 |
この機能がリサーチプレビュー中は、ドリーム作成にデフォルトのレート制限が適用されます。より高い制限が必要な場合はサポートにお問い合わせください。
Was this page helpful?