Skip to content

Session 管理

Session 生命周期

创建 → 活跃 → 空闲 → 过期/关闭
 ↓       ↓      ↓
初始化  处理消息  等待超时
系统提示 工具调用  自动保存状态
加载记忆 上下文更新

Session 结构

每个 Session 包含:

typescript
interface Session {
  id: string              // 唯一标识
  channel: string         // 来源频道(telegram/discord/...)
  userId: string          // 用户标识
  messages: Message[]     // 对话历史
  systemPrompt: string    // 系统提示
  tools: Tool[]           // 可用工具列表
  metadata: {
    createdAt: Date
    lastActiveAt: Date
    tokenCount: number
  }
}

并发处理

同一用户同时发送多条消息时,OpenClaw 的处理策略:

策略说明配置值
排队按顺序处理,保证一致性queue(默认)
并发同时处理,速度更快concurrent
丢弃处理中忽略新消息drop
json
{
  "session": {
    "concurrencyPolicy": "queue"
  }
}

Session 持久化

会话状态自动保存,重启后恢复:

bash
# 查看保存的会话
ls ~/.openclaw/sessions/

# 清理过期会话(超过 7 天)
openclaw sessions clean --older-than 7d

多设备同步

同一用户从不同设备(手机 Telegram + 电脑 Web)发送消息时,默认合并到同一 Session,保持上下文一致:

json
{
  "session": {
    "mergeByUser": true,
    "crossChannelSync": true
  }
}

设置为 false 则每个频道独立 Session。

基于 OpenClaw 官方文档整理,仅供学习研究