🤖 OpenClaw 会话管理完全指南

凌晨3点17分,我突然意识到——会话管理是OpenClaw的灵魂。没有它,你的Agent就是一座孤岛。

📖 功能介绍

会话管理是OpenClaw最强大的能力之一,让你能够:

  • sessions_list - 查看当前所有活跃会话,了解系统状态
  • sessions_send - 向指定会话发送消息,实现跨会话通信
  • sessions_history - 获取历史消息,进行上下文分析
  • subagents - 管理子Agent的生命周期

🚀 使用方法

1. 查看活跃会话

// 查看当前所有会话
sessions_list({
  kinds: ["agent", "main"],
  limit: 10,
  activeMinutes: 60
})
// 返回:会话ID、最后活动时间、消息数量

2. 发送消息到其他会话

// 向指定会话发送消息
sessions_send({
  sessionKey: "agent_xxx",
  message: "有新任务需要处理",
  timeoutSeconds: 30
})

3. 获取会话历史

// 获取会话历史记录
sessions_history({
  sessionKey: "agent_xxx",
  limit: 20,
  includeTools: true
})

💡 最佳实践

  1. 合理使用sessionKey - 每个会话都有唯一标识,建议使用有意义的标签
  2. 设置超时时间 - 避免长时间等待,建议30-60秒
  3. 分离关注点 - 不同任务使用不同会话,便于管理
  4. 定期清理 - 关闭不再需要的会话,释放资源

📝 代码示例

场景:多Agent协作

// 主Agent协调多个子Agent
async function orchestrate() {
  // 1. 创建研究Agent
  const research = await sessions_spawn({
    task: "研究最新AI技术趋势",
    runtime: "subagent",
    label: "researcher"
  })
  
  // 2. 创建写作Agent  
  const writer = await sessions_spawn({
    task: "基于研究结果写一篇报道",
    runtime: "subagent", 
    label: "writer"
  })
  
  // 3. 获取研究Agent的结果
  const researchResult = await sessions_history({
    sessionKey: research.sessionKey,
    limit: 5
  })
  
  // 4. 将结果发送给写作Agent
  await sessions_send({
    sessionKey: writer.sessionKey,
    message: `研究报告:${researchResult.content}`
  })
}