Anthropic · Managed Agents
DOC—2026-05A · DREAMING-PIPELINE
REV 2026-05-07 · a
— DREAMS · ASYNC MEMORY CONSOLIDATION —
讓 Agent/在「睡」之間整理記憶
RESEARCH PREVIEW
requires beta header · managed-agents-2026-04-01,dreaming-2026-04-21 · output store is separate · input never mutated · billed at standard token rates
100
Sessions / dream
4,096
Instr. chars
2
Models
5
Lifecycle states
figure 00 · thesis
◐memory
that
reads
itself —
that
reads
itself —
Agent 在每場 session 裡都會把學到的東西寫進
Dream 是一條非同步管線:它讀一份既有的 memory store,加上最多 100 場過去的 session 逐字稿,再「寫」出一份**全新的** memory store——重複合併、舊值汰換、模式凝結成洞見。
原始的 store 與 sessions 從頭到尾不會被改動。輸出是獨立的一份,不滿意就刪掉、滿意就掛回去用。對你而言,dream 是一個可審查的 diff,不是 in-place 的破壞性遷移。
memory_store。寫久了,重複、矛盾、過期的條目會堆積——這是「增量寫入」的代價。
Dream 是一條非同步管線:它讀一份既有的 memory store,加上最多 100 場過去的 session 逐字稿,再「寫」出一份**全新的** memory store——重複合併、舊值汰換、模式凝結成洞見。
原始的 store 與 sessions 從頭到尾不會被改動。輸出是獨立的一份,不滿意就刪掉、滿意就掛回去用。對你而言,dream 是一個可審查的 diff,不是 in-place 的破壞性遷移。
— inputs (read-only)
memory_store
memstore_01Hx…
// 既有記憶
memstore_01Hx…
// 既有記憶
sessions[ ]
≤ 100 session ids
// 過去的逐字稿
≤ 100 session ids
// 過去的逐字稿
→
dream
claude-opus-4-7
· or sonnet-4-6 ·
· or sonnet-4-6 ·
→
— output (new store)
memory_store
memstore_01Jy…
// 重組過的記憶
memstore_01Jy…
// 重組過的記憶
session_id
可串流 events
// 觀察執行過程
可串流 events
// 觀察執行過程
非同步從幾分鐘到幾十分鐘,依輸入量級而定。建立後 poll 或串流 events 觀察。
可選 instructions最多 4,096 字元,可以指定「只關心 coding 偏好」「忽略 debug 雜訊」等聚焦規則。
輸入只用不改原 store 與 sessions 不被修改。失敗 / 取消時,輸出仍會保留半成品供檢視。
01/05
— why dreams exist
記憶會發霉
memory store 是即時、增量、由 agent 自己寫進去的。寫久了會堆出三種垃圾:重複條目、互相矛盾的版本、已經不成立的舊事實。Dream 就是去除這些雜訊的清掃週期。
// MEMORY · ROT
— BEFORE · raw store
寫進去的樣子
- user 偏好 4-space 縮排
- user 用 4 空白縮排
- user 偏好 tabs(Q1 對話)
- API key 存在 ~/.config/keys
- prod DB host 是 db-old.x
- 2026-03 之後 prod DB host 是 db-new.x
- user 用 zsh + starship
- 使用者 debug 時會先 print,然後再用 debugger(單次觀察)
◐
DREAM
— AFTER · curated store
夢過之後
- user 偏好 4-space 縮排(已合併重複)
- API key 存在 ~/.config/keys
- prod DB host:db-new.x(舊值已汰換)
- user 用 zsh + starship
- 新洞見:user 多次拒絕 mock,偏好 integration test
- 新洞見:使用者習慣先寫小型 PR 再合併大重構
02/05
— anatomy of a dream
夢的解剖
每場 dream 有三個明確的角色:要被重組的 memory store、提供素材的 sessions、執行清掃的 model。三者組合成一個 async job,產出一份新的 store——而不是 mutate 既有的那份。
// INPUTS · MODEL · OUTPUT
— INPUT 01
既有 Memory Store
existing memory_store · required
要被「夢化」的那份 store。Dream 會讀它、驗證、去重、重整,但不會原地修改。即使你只想用 sessions 提煉新洞見,仍須提供一個 store——空的也可以。
— INPUT 02
過去的 Sessions
past sessions · optional · ≤ 100
模型用來「挖掘模式」的素材。每場對話的逐字稿都會被讀過一次,找出反覆出現的偏好、糾錯、未被寫進 memory 但其實重要的訊號,再把它們折進輸出的 store。
— ENGINE
執行的模型
model + instructions
指定哪個模型跑這條 pipeline,並可附上自然語言指令引導重組策略。常見指令:「只關心 coding 偏好」「忽略單次 debug 紀錄」「優先保留與部署相關的事實」。
03/05
— lifecycle
五個生命狀態
Dream 是非同步的:建立後排隊、開始跑、要嘛跑完、要嘛失敗、要嘛被取消。每個狀態都有明確的副作用約定:失敗或取消時,輸出 store 會保留半成品供你檢查;輸入永遠不變。
// STATUS · MACHINE
PENDING
排隊中
建立成功,等待 pipeline 排程。usage 仍為 0。
RUNNING
執行中
Pipeline 正在跑。usage 會逐步增加,session_id 出現可串流。
COMPLETED
完成
成功收尾。outputs[] 中的 memory_store 即為新的可用 store。
FAILED
失敗
中途出錯。輸出 store 保留半成品,可檢視;error 物件提供 type。
CANCELED
取消
由 cancel API 主動結束。同樣保留半成品輸出。
注意 ·
Dream 跑到一半時,刪除或封存它的「輸入」store 或 session,會讓 dream 失敗並回報
input_memory_store_unavailable / input_session_unavailable;刪除「輸出」store 則會直接被 400 拒絕——除非 dream 已到終態。
04/05
— api surface
五個動詞
Dreams 是純 REST 物件:建立、查詢、取消、封存、列舉。配合 SDK 在 bash / python / typescript / go / java / php / ruby / csharp 都有對應 binding。封存後仍可依 ID 讀取,但會從預設 list 中過濾掉。
// REST · OPERATIONS
POST
/v1/dreams
建立 Dream
提交 inputs + model + instructions。回傳 status: pending。
GET
/v1/dreams/{id}
查詢狀態
輪詢 status 與 usage。執行中可拿到 session_id 串流事件。
POST
/v1/dreams/{id}/cancel
取消
把 pending / running 的 dream 立即移到 canceled。對終態回 400。
POST
/v1/dreams/{id}/archive
封存
給已到終態的 dream 設 archived_at。預設 list 會排除,無 unarchive。
GET
/v1/dreams
列舉
回傳所有非封存 dreams,最新優先。limit ≤ 100;可加 include_archived。
# minimal dream creation — bash + curl dream=$(curl -s https://api.anthropic.com/v1/dreams \ -H "x-api-key: $ANTHROPIC_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "anthropic-beta: managed-agents-2026-04-01,dreaming-2026-04-21" \ -H "content-type: application/json" \ --data @- <<EOF { "inputs": [ { "type": "memory_store", "memory_store_id": "$store_id" }, { "type": "sessions", "session_ids": ["$session_a", "$session_b"] } ], "model": "claude-opus-4-7", "instructions": "Focus on coding-style preferences; ignore one-off debugging notes." } EOF ) # → drm_01AbCDefGhIjKlMnOpQrStUv · status: pending
05/05
— boundaries
邊界、錯誤、計費
Beta 期間支援兩個模型、單場 dream 最多 100 個 sessions、instructions 上限 4,096 字元。費用照標準 token rate 走,與輸入量級線性相關——建議從少量 sessions 開始驗證再放大。
// LIMITS · ERRORS · PRICING
◇
硬性限制
— LIMITS
Sessions per dream
100
instructions length
4,096 chars
supported models
opus-4-7 · sonnet-4-6
list page size
≤ 100 (default 20)
required headers
2 beta flags
◬
錯誤類型
— ERROR.TYPE
timeout
超過 pipeline 預算
internal_error
未分類 pipeline 失敗
memory_store_org_limit_exceeded
組織 store 配額已滿
input_memory_store_too_large
輸入 store 超過 pipeline 上限
input_memory_store_unavailable
輸入 store 中途被刪 / 封存
input_session_unavailable
輸入 session 中途被刪 / 封存
◈
計費模式
— BILLING
rate
標準 API token 價
scale
~ 線性於 sessions 數量 / 長度
usage 回報
dream.usage 物件
建議
先小批 sessions 驗證再放大
rate limit
beta 預設值 · 可申請提高
— THE THESIS —
Memory 是寫的·Dream 是「重寫」的
Memory store 解決的是「agent 跨 session 不忘事」。Dream 解決的是「記下來不等於記得對」——當增量寫入累積到一定量,模型自己看不清重點,需要一個離線的整理週期把雜訊清掉、把重複合併、把矛盾的舊版本汰換、把散落在對話裡的隱性偏好凝結成顯式條目。
它的設計刻意保守:輸入永不變、輸出獨立,因為 memory 的破壞性遷移在生產環境是真的會出事。Dream 給你的是一份可審查的 diff,不是一個你必須相信的黑箱。
◉
Further Reading
延伸閱讀
→ 01
Anthropic · Managed Agents
Memory Store — 為 Agent 內建的長期記憶
Dream 的輸入與輸出都是 memory_store。先理解這個物件本身怎麼讀寫、怎麼掛到 session 上。
→
→ 02
Concept · Cognition
Agent Memory Architecture — 四層記憶模型
Working / episodic / semantic / procedural 四層。Dream 的工作是把 episodic 提煉成 semantic。
→
→ 03
Research · Roundup
Agent Memory Research Map
記憶相關 paper 地圖:foundations / architecture / systems。理解 dream 在學術脈絡裡解的是哪個問題。
→
→ 04
Anatomy · Pipeline
Enterprise Agent Anatomy
企業級 agent 的多元件架構。Dream 屬於「離線 consolidation」這層的代表性元件。
→