OpenClaw源码里藏着一个完整的“做梦“系统
OpenClaw源码隐藏关键功能:一个完整的"做梦"系统未在官方文档披露。该系统包含三种模式:日常轻度整理(LightDreaming)、凌晨深度固化记忆(DeepDreaming)和周日大型复盘(REMDreaming)。2026.4.29版本新增6个模块:承诺追踪、REM预诊、人物关系图谱、超时降级处理、精细内存控制和实时干预功能。感知层优化解决了30分钟超时问题,新增事件
官方文档从没提过: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的用户,这些是很好的切入点。
更多推荐




所有评论(0)