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