文章总结: 本文介绍了OpenClaw的Session系统,将其比作智能体操作系统中的核心管理单元。详细讲解了Session作为对话基本单位的概念、生命周期及存储结构。通过实操演示了如何使用CLI命令查看活跃Session及详情,并指出子代理功能可通过Cron任务实现隔离执行。文章辅以常见问题解答及课后练习,帮助用户掌握多对话上下文管理技巧,为后续开发奠定基础。 综合评分: 86 文章分类: AI安全,安全工具,实战经验
跟着OpenClaw学OpenClaw: Sessions:对话的管理者
zyliang
2026年3月4日 21:13 北京
越来越感觉像是在学k8s。openclaw的workspace、session、agent、cron让我联想到k8s的namespace、pod、node、cronjob。包括openclaw的声明式设计、隔离机制、丰富的CLI等等。
如果说k8s是容器的操作系统,那么openclaw就是智能体的操作系统。
以下大部分文字为AI生成,仅用作学习记录
📌 导语
前几篇我们学会了让AI执行任务、定时提醒。但当你同时处理多个话题、让AI做不同的事时,对话会变得混乱。OpenClaw的Session系统,让你可以管理多个独立的对话上下文——每个任务一个会话,互不干扰。这篇教你理解Session的本质,以及如何创建和管理子代理。
前置要求:已完成第6篇,熟悉Cron定时任务。
📖 概念讲解
什么是Session
Session是OpenClaw中对话的基本单位。每一次你和AI的交互,都发生在一个Session里。Session保存了:
对话历史
上下文信息
关联的Channel
创建时间和状态
Session的生命周期
创建:用户发送第一条消息,或系统创建
活跃:持续交互,历史记录累积
休眠:一段时间无交互,进入休眠
结束:手动关闭或超时清理
什么是子代理(Sub-agent)
子代理是一个独立的Session,专门用于执行特定任务:
与主会话隔离,不影响当前对话
可以长时间运行(适合耗时任务)
可以并行执行多个子代理
完成后结果可以返回给主会话
🔧 动手实操
步骤1:查看当前活跃的Sessions
执行命令:
openclaw sessions list
步骤2:查看特定Session的详情–不支持
执行命令:
openclaw sessions info
root@iv-yeglp4e9kw5i3z4tce1x:~# openclaw sessions --json{ "path": "/root/.openclaw/agents/main/sessions/sessions.json", "count": 10, "activeMinutes": null, "sessions": [ { "key": "agent:main:main", // 会话标识:agent/主agent/主会话 "updatedAt": 1772615134650, // 最后更新时间戳(毫秒) "ageMs": 17323, // 距离现在多久(毫秒) "sessionId": "edea3770-c7b5-4fb4-bfc4-c3a155c59f28", // UUID格式的会话ID "systemSent": true, // 系统是否发送过消息 "abortedLastRun": false, // 上次运行是否被中断 "inputTokens": 1777, // 用户输入的token数 "outputTokens": 136, // AI输出的token数 "totalTokens": 35313, // 总会话token数(含历史) "totalTokensFresh": true, // token计数是否最新 "model": "k2p5", // 使用的模型 "modelProvider": "kimi-coding", // 模型提供商 "contextTokens": 262144, // 上下文窗口上限 "agentId": "main", // 所属agent "kind": "direct" // 会话类型:直接对话 }}root@iv-yeglp4e9kw5i3z4tce1x:~#
root@iv-yeglp4e9kw5i3z4tce1x:~# cat /root/.openclaw/agents/main/sessions/edea3770-c7b5-4fb4-bfc4-c3a155c59f28.jsonl | head -5{"type":"session","version":3,"id":"edea3770-c7b5-4fb4-bfc4-c3a155c59f28","timestamp":"2026-03-04T05:43:15.804Z","cwd":"/root/.openclaw/workspace"}{"type":"model_change","id":"d85ef3c5","parentId":null,"timestamp":"2026-03-04T05:43:15.805Z","provider":"kimi-coding","modelId":"k2p5"}{"type":"thinking_level_change","id":"61d0c40d","parentId":"d85ef3c5","timestamp":"2026-03-04T05:43:15.805Z","thinkingLevel":"off"}{"type":"custom","customType":"model-snapshot","data":{"timestamp":1772602995806,"provider":"kimi-coding","modelApi":"anthropic-messages","modelId":"k2p5"},"id":"e00b89f1","parentId":"61d0c40d","timestamp":"2026-03-04T05:43:15.806Z"}{"type":"message","id":"8fa4ecc1","parentId":"e00b89f1","timestamp":"2026-03-04T05:43:15.810Z","message":{"role":"user","content":[{"type":"text","text":"System: [2026-03-04 13:43:15 GMT+8] Feishu[default] DM from ou_f1be989af29aa985f872d3bb80557750: 小K 你现在记得哪些和我相关的内容\n\n小K 你现在记得哪些和我相关的内容"}],"timestamp":1772602995809}}root@iv-yeglp4e9kw5i3z4tce1x:~#
步骤3:创建一个子代理任务
让子代理帮你搜索信息:
openclaw sessions spawn –task “搜索OpenClaw的最新更新” –channel feishu
无此命令,可以使用cron -add替代
步骤4:查看子代理的状态
执行命令:
openclaw subagents list
kimi-claw没有subagent的概念,通过多agent管理
❓ 常见问题
OpenClaw给出的问题都是和subagent相关的,环境里没找到
📝 小结与预告
今天我们学会了:
Session的基本概念和生命周期
如何查看和管理Sessions
创建和使用子代理执行独立任务
子代理与主会话的关系
关键命令速查:
openclaw sessions list — 查看所有会话
openclaw sessions info — 查看会话详情
openclaw sessions spawn –task <内容> — 创建子代理
openclaw subagents list — 查看子代理列表
openclaw subagents kill — 结束子代理
下篇预告:《动手写一个Skill》——深入了解Skill的结构,创建你的第一个自定义Skill。
课后练习
题目 1:查看 Agent
查看当前配置的所有 Agent,应该用什么命令?
答案:
openclawagentslist
题目 2:Session 查看命令
-
查看所有 Session 用什么命令?
-
只看最近1小时的 Session 用什么命令?
-
以 JSON 格式查看 Session 详情用什么命令?
答案:
| 需求 | 命令 | | — | — | | 查看所有 Session | openclaw sessions | | 只看最近1小时 | openclaw sessions –active 60 | | JSON 格式 | openclaw sessions –json |
题目 3:Session Key 理解
agent:main:main 和 agent:main:cron:eda23347-f7e1-455e-891d-a191b2fca6a1 这两个 Session Key 有什么区别?分别代表什么?
答案:
| Key | 含义 | | — | — | | agent:main:main | 主会话,你和 AI 的直接对话 | | agent:main:cron:eda23347… | Cron 任务会话,cron: 后面是任务 ID |
题目 4:Session 文件位置
Session 的具体内容(消息记录)存储在哪个目录?文件名是什么格式?
答案:
-
存储目录:/root/.openclaw/agents/main/sessions/
-
文件名格式:
.jsonl -
示例:edea3770-c7b5-4fb4-bfc4-c3a155c59f28.jsonl
题目 5:创建独立 Session 任务
你想创建一个5分钟后执行的提醒任务,让它在独立的 Session 中执行,不影响当前对话。应该怎么写命令?
答案:
openclawcronadd–name”reminder”–at”5m”–message”提醒内容”–channelfeishu
说明: Cron 任务会自动创建独立的 Session 执行,不影响当前对话。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:zyliang 《跟着OpenClaw学OpenClaw: Sessions:对话的管理者》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论