🤖 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
})
💡 最佳实践
- 合理使用sessionKey - 每个会话都有唯一标识,建议使用有意义的标签
- 设置超时时间 - 避免长时间等待,建议30-60秒
- 分离关注点 - 不同任务使用不同会话,便于管理
- 定期清理 - 关闭不再需要的会话,释放资源
📝 代码示例
场景:多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}`
})
}