メインコンテンツへスキップ
Memory Store にエントリが蓄積していくと、重複・古い情報・抜け漏れが生じる可能性があります。Dreams は非同期のメモリ整理機能です。専用の Agent が直近の Session を見直し、Memory Store のマージ・削減・補完を行います。

コアコンセプト

概念説明
Dream非同期のメモリ整理ジョブ
Input Memory Storeデータソース。変更されません
Output Memory Store自動でクローンされたコピー。整理結果はこちらに書き込まれる
Dreaming SessionDream 実行中に作成される内部 Session。通常の Session 一覧には表示されない

ワークフロー

POST /v1/dreams

入力 Memory Store をクローン → 独立した出力コピーを生成

Dreaming Session を作成(メモリ整理用ビルトイン Agent)

Agent が実行: 直近の Session を読み込み → 記憶のマージ/削除/補完

Dream 完了 → outputs に整理後の Memory Store ID が含まれる

API エンドポイント一覧

メソッドパス説明
POST/dreamsDream を作成
GET/dreamsDream 一覧を取得
GET/dreams/{id}Dream を取得
POST/dreams/{id}/cancel実行中の Dream をキャンセル
POST/dreams/{id}/archive完了した Dream をアーカイブ

クイックスタート

1. メモリ整理をトリガー

curl -s -X POST 'https://api.qoder.com/api/v1/cloud/dreams' \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "inputs": [
      { "type": "memory_store", "memory_store_id": "memstore_019e5cdb9c3f71c3b6505eba937a40b4" }
    ]
  }'

2. 進捗を確認

curl -s 'https://api.qoder.com/api/v1/cloud/dreams/drm_019e86b4a8f070a3b6c5d4e3f2a1b0c9' \
  -H "Authorization: Bearer $QODER_PAT"

3. 結果を確認

完了後、outputs フィールドに整理後の Memory Store ID が含まれます:
{
  "status": "completed",
  "outputs": [
    { "type": "memory_store", "memory_store_id": "memstore_019e86b4b10578059435632bb357c5ed", "files_touched": ["preferences.md", "project/arch.md"] }
  ]
}

オプションパラメータ

パラメータ説明
modelモデル選択: auto(デフォルト)、liteultimate
instructionsカスタム指示(例: 「Python プロジェクトの規約を重視」)、最大 4096 文字
inputs[].type: "sessions"優先する Session ID を指定(最大 100 件)

安全設計

  • コピーオンライト: 入力 Memory Store は変更されず、書き込みはすべてクローンされた出力に対して行われる
  • 最小権限: Dreaming Agent は memorysession_listsession_read の 3 つのツールのみ使用可能。コード実行やネットワークアクセスはできない
  • Single-flight: 1 ユーザーあたり同時に 1 件のアクティブな Dream(pending または running)のみ。重複作成は 409 を返す

よくある質問

Q: Dream は元の Memory Store を変更しますか? A: いいえ。Dream は常にクローンされたコピー上で動作し、元の Memory Store は一切影響を受けません。 Q: Dream はどれくらい時間がかかりますか? A: Memory Store のサイズと振り返る Session 数によりますが、通常 1〜5 分です。