Anthropic Claude Managed Agents "Dreaming" 功能深度解读

> 发布日期: 2026 年 5 月 6 日(Code with Claude 开发者大会)

> 官方博客: New in Claude Managed Agents: dreaming, outcomes, and multiagent orchestration

> API 文档: Dreams - Claude API Docs

> 当前状态: Dreaming 为 Research Preview;Outcomes、Multiagent Orchestration、Memory 已进入 Public Beta

一、概要

Anthropic 在 2026 年 5 月 6 日的 "Code with Claude" 开发者大会上,为 Claude Managed Agents 平台发布了一项名为 "Dreaming"(做梦) 的新功能。核心思想借鉴了人类睡眠中的记忆巩固机制——让 AI agent 在空闲时自动回顾过去的会话记录,提取模式、整理记忆、发现重复错误,从而实现自我改进(self-improving)

同时发布的还有三项配套功能:

Together, memory + dreaming 构成了一个完整的 agent 记忆系统

二、Dreaming 功能详解

2.1 为什么需要 Dreaming?

AI agent 在长期工作中会持续向 memory store 写入信息,但这些写入是局部的、增量的。随着 session 增多,memory store 会出现:

问题说明
**重复条目**同一信息被多次写入
**矛盾条目**不同 session 写入冲突信息
**过时条目**早期写入的信息已不再准确
**噪声**一次性调试笔记等临时信息堆积

Dreaming 就是为了解决 memory decay(记忆衰退) 而设计的。

2.2 工作原理

Dreaming 是一个异步任务(asynchronous job),接受两类输入:

1. 已有的 Memory Store — Claude 会验证、去重、重组这个 store

2. 最多 100 个 Session 的历史记录(可选)— Claude 从中挖掘模式和洞察

输出是一个全新的、重组后的 Memory Store,与输入 store 完全分离。原始输入永远不会被修改,开发者可以审查输出后决定保留或丢弃。


输入:
  ├── Memory Store (已有记忆)
  └── Sessions[] (最多100个历史会话)
          ↓
    [Dreaming Pipeline]
          ↓
输出:
  └── New Memory Store (重组后的新记忆)

2.3 Dreaming 的具体能力

- 反复出现的错误

- 多个 agent 趋于采用的工作流

- 团队共享的偏好

2.4 技术细节

参数说明
**API 端点**`POST https://api.anthropic.com/v1/dreams`
**Beta Headers**`managed-agents-2026-04-01` + `dreaming-2026-04-21`
**支持模型**`claude-opus-4-7`、`claude-sonnet-4-6`
**每 dream 最大 session 数**100
**instructions 长度上限**4,096 字符
**运行时间**数分钟到数十分钟(取决于输入规模)
**计费**按标准 API token 费率,成本与 session 数量和长度大致线性相关

2.5 生命周期

状态含义
`pending`已创建,排队中
`running`pipeline 正在处理,`usage` 实时更新
`completed`完成,`outputs[]` 中是新的 memory store
`failed`出错终止,output store 保留已写入的部分内容
`canceled`已取消,output store 保留部分内容

运行期间可通过 session_id 字段连接到底层 session,实时流式观察 dream 在读取和写入什么。session 在 dream 结束后会被归档(不删除),记录仍可查阅。

2.6 使用输出

完成后,开发者有两个选择:

关键安全特性: Dream 运行期间,不允许删除或归档 output store(会返回 400)。删除输入 store 或 session 会导致 dream 失败。

2.7 可能的错误

错误类型触发条件
`timeout`超出运行时间预算
`internal_error`未分类的 pipeline 故障
`memory_store_org_limit_exceeded`组织达到 memory store 数量上限
`input_memory_store_too_large`输入 store 超出大小限制
`input_memory_store_unavailable`输入 store 在 dream 创建后被归档/删除
`input_session_unavailable`输入 session 在 dream 创建后被归档/删除

2.8 实际案例

法律 AI 公司 Harvey 使用 Dreaming 帮助其 agent 在长时间的法律文书起草 session 中发现文件类型变通方法和工具特定模式,任务完成率提升了 6 倍

三、Outcomes(结果评估)

Outcomes 让开发者为 agent 定义成功标准(rubric),agent 按照标准努力完成任务。

核心机制:

1. 开发者编写评估标准,描述"什么是好的"

2. Agent 按照标准执行任务

3. 一个独立的 grader agent 在自己的 context window 中评估输出(不受主 agent 推理影响)

4. 如果不达标,grader 指出需要改进的地方,agent 自动重试

这实现了 agent 的闭环自我纠错

四、Multiagent Orchestration(多 agent 编排)

当任务量超出单个 agent 的能力时,lead agent(协调者) 可以将工作拆分并委派给多个 specialist agent。

架构特点:

适用模式:

模式说明
**并行化**独立子任务同时执行(搜索多个来源、分析不同文件)
**专业化**路由到领域专家 agent(安全 agent、文档 agent 等)
**升级**将复杂子任务交给更强的模型处理

限制:

五、Claude Code "Auto Dream"(额外相关)

除了 Managed Agents 的 Dreaming API,Anthropic 还在 Claude Code 中实验一个名为 "Auto Dream" 的功能:

六、意义与展望

核心价值

Dreaming 标志着 AI agent 从 "只写不读""自我反思、持续改进" 的范式转变:

1. 记忆不再是单向累积 — 有了自动清理和优化机制

2. 跨 session 洞察 — 发现单次对话中看不到的全局模式

3. 可审查性 — 原始输入不被修改,输出可人工审核

4. 自我改进闭环 — Dreaming + Outcomes 形成 "做 → 评估 → 反思 → 改进" 的完整循环

Anthropic 的愿景

Anthropic 联合创始人 Jack Clark 在同日发表的文章中指出,AI 系统独立工作的时间长度正在显著增长,这与 agentic coding 工具的爆发式增长高度相关。Dreaming 是 Anthropic 构建自我改进 AI agent 路线图中的关键一步。

七、快速参考

关键链接

资源链接
官方博客https://claude.com/blog/new-in-claude-managed-agents
Dreams API 文档https://platform.claude.com/docs/en/managed-agents/dreams
Multiagent 文档https://platform.claude.com/docs/en/managed-agents/multi-agent
Memory 文档https://platform.claude.com/docs/en/managed-agents/memory
申请访问https://claude.com/form/claude-managed-agents

API 示例(Python)


import anthropic

client = anthropic.Anthropic()

# 创建 dream
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-7",
    instructions="Focus on coding-style preferences; ignore one-off debugging notes.",
)

# 轮询等待完成
while dream.status in ("pending", "running"):
    time.sleep(10)
    dream = client.beta.dreams.retrieve(dream.id)

# 获取输出 store 并用于新 session
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}],
)

报告生成时间:2026-05-07 | 基于 Anthropic 官方文档及多方报道整理