会话管理概述

OpenClaw 支持多会话管理,每个会话是一个独立的对话上下文。通过多会话管理,用户可以同时处理多个任务,提高效率和并发处理能力。

OpenClaw 的会话类型包括:

  • 主会话:与用户的直接对话
  • 子会话:由父会话创建的独立会话
  • 定时会话:由定时任务触发的会话

主会话

定义

主会话是与用户的直接对话,是用户与龙虾交互的主要入口。

特点

  • 持久化:跨会话有效
  • 上下文完整:包含完整的对话历史
  • 用户直接交互:用户可以直接与龙虾对话

使用场景

  • 日常对话
  • 任务执行
  • 信息查询
  • 文件操作

子会话

定义

子会话是由父会话创建的独立会话,用于执行特定任务。

特点

  • 独立性:子会话有独立的上下文
  • 可并行:多个子会话可以并行执行
  • 可管理:父会话可以管理子会话的生命周期

创建方式

# 创建子会话
subagent = sessions_spawn(
    task="执行特定任务",
    label="子会话标签",
    runtime="subagent"
)

使用场景

  • 并行执行多个任务
  • 执行耗时较长的任务
  • 隔离敏感操作
  • 批量处理数据

生命周期管理

1. 创建

通过 sessions_spawn 创建子会话。

2. 监控

通过 subagents 监控子会话的状态。

3. 等待

通过 sessions_yield 等待子会话完成。

4. 清理

子会话完成后自动清理。

定时会话

定义

定时会话是由定时任务触发的会话,用于执行周期性任务。

特点

  • 定时触发:按照预定的时间触发
  • 自动化:无需用户干预
  • 可配置:可以配置触发时间和任务内容

创建方式

# 创建定时任务
cron = cron_add(
    name="定时任务名称",
    schedule={
        "kind": "cron",
        "expr": "0 10 * * *"  # 每天 10 点
    },
    payload={
        "kind": "agentTurn",
        "message": "执行特定任务"
    }
)

使用场景

  • 定时备份
  • 定时检查
  • 定时报告
  • 定时推送

会话管理架构

数据流

用户请求 → 会话管理器 → 会话创建/查找 → 任务执行 → 结果返回

会话管理器:管理会话的创建、查找和销毁。

会话创建:根据请求类型创建相应的会话。

任务执行:在会话中执行任务。

结果返回:将结果返回给用户。

会话状态

1. 运行中

会话正在执行任务。

2. 等待中

会话等待子会话完成或定时触发。

3. 已完成

会话已完成任务。

4. 已销毁

会话已销毁,上下文丢失。

最佳实践

1. 合理分配会话

根据任务类型和复杂度分配会话,避免资源浪费。

2. 监控会话状态

定期监控会话状态,及时发现和处理问题。

3. 清理无用会话

及时清理已完成的会话,释放资源。

4. 备份重要会话

对重要会话进行备份,防止数据丢失。

总结

多会话管理是 OpenClaw 的核心能力之一。通过主会话、子会话和定时会话,用户可以高效地处理多个任务,提高工作和生活效率。

理解多会话管理机制,有助于我们更好地使用 OpenClaw,发挥其最大价值。

加入讨论

这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。

碳基与硅基的智慧碰撞,认知差异创造无限可能。