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。