官方文档从没提过:OpenClaw源码里藏着一个完整的"做梦"系统

---

解析v2026.4.29源码时发现了几个有意思的东西——OpenClaw不只是一个Agent运行时,它内部藏着一个完整的感知层和做梦系统。这些细节在官方文档里几乎找不到,但对理解AI Agent的运作机制很有价值。

## OpenClaw也在"做梦"

官方文档几乎没有提及,但OpenClaw确实有Dreaming系统:

| 类型 | 触发时间 | 功能 |
|------|---------|------|
| Light Dreaming | 日常 | 轻度整理 |
| Deep Dreaming | 03:00 | 深度固化记忆 |
| REM Dreaming | 周日05:00 | 大型复盘 |

这是一个有趣的设计——用做梦的逻辑做记忆整理。日常对话触发Light Dreaming,凌晨3点触发Deep Dreaming做深度固化,周日5点触发REM Dreaming做大型复盘。

## 6个新模块解析

v2026.4.29新增的6个模块,填补了之前的一些功能空白:

### 1. commitment_tracker——承诺追踪

Agent在对话里记录用户的承诺事项("明天要用"、"这周完成"),在未来的心跳时主动提醒。队列结构:

```typescript
type FollowupQueueState = {
  items: FollowupRun[];
  draining: boolean;
  lastEnqueuedAt: number;
  cap: number;           // 队列上限
  droppedCount: number;    // 满了就丢
};
```

### 2. preview_dream——REM预诊

只读接口,可以预览记忆整合的效果,不需要实际执行就能看到记忆压缩后的摘要。

### 3. persona_wiki——人物关系图谱

自动归纳聊过的人,建立别名、人物卡片、关系图谱。

```typescript
PersonWiki = {
  id: string,
  name: string,
  aliases: string[],
  cards: PersonCard[],
  relations: Relation[],
  privacy: PrivacyInfo,
  lastSeen: timestamp
}
```

### 4. graceful_degradation——超时降级

记忆获取超时时,不是直接丢弃,而是返回"有限部分摘要"。

```typescript
async function getMemoryRecordsWithTimeout(params) {
  try {
    return await Promise.race([
      getMemoryRecords(params),
      timeout(5000)
    ]);
  } catch (error) {
    if (isTimeoutError(error)) {
      return getPartialSummary(params);  // 超时返回部分摘要
    }
    throw error;
  }
}
```

### 5. memory_scope——Active Memory精细控制

之前是全局开关,现在可以精确到特定会话:

```json
{
  "activeMemory": {
    "allowedChatIds": ["oc_work"],
    "deniedChatIds": ["oc_blocked"],
    "allowedChatTypes": ["direct", "group"]
  }
}
```

### 6. steer_handler——插话处理

允许在Agent运行时注入干预,实时调整对话方向。

## 感知层优化:心跳自动更新机制

v2026.4.29修复了一个关键问题:**30分钟超时不更新**。

之前感知事件如果30分钟没有新输入就断了,现在的心跳自动更新机制让感知状态可以持续保持,不因为静默时间过长而丢失上下文。

另外还增加了**感知事件闭环检测**——P0/P1级别的事件会自动追踪到底,直到确认处理结果才归档。

## 代码规范升级:Karpathy Surgical原则

这次源码里还有一个细节值得注意:

| 旧写法 | 新写法 | 原因 |
|--------|--------|------|
| `except:` | `except Exception:` | 捕获具体异常,不吃所有错误 |
| 无日志分级 | DEBUG/INFO/WARNING/ERROR | 日志可过滤可监控 |
| 事件格式散乱 | 统一: `type/timestamp/phase/reportPath` | 事件可追踪可查询 |

特别是`except:`改成`except Exception:`——bare except会捕获所有异常包括KeyboardInterrupt和SystemExit,容易掩盖真实问题。

---

这些隐藏模块大多数都是**可插拔**的设计——commitment_tracker、graceful_degradation、preview_dream都是独立模块,可以按需启用。对于想深度定制OpenClaw的用户,这些是很好的切入点。
 

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐