几何图形计算器
40.01M · 2026-03-05
简单说:Session就是OpenClaw的"记忆容器"。
想象你在和一个助手聊天:
OpenClaw里,Session负责保存三件事:
搞懂Session,你就能控制Agent什么时候该"记得"、什么时候该"忘记"。
这是你最常打交道的Session。每次发消息给Agent,都在一个对话Session里。
它长什么样?
你:帮我写个Python脚本
Agent:好的,什么功能?
你:爬取微博热搜
Agent:(写代码中...)
这一来一回,全记录在Session里。Agent能记住"爬取微博热搜"这个需求,是因为它翻了Session的"聊天记录"。
存在哪儿?
~/.openclaw/agents/main/sessions/
├── abc123.jsonl ← 你和Agent的聊天记录
├── def456.jsonl ← 另一个对话
└── ...
什么时候新建?
用exec跑一个耗时命令,比如:
exec python train_model.py --epochs 100
如果这命令要跑几小时,你不可能一直开着终端等。OpenClaw会创建一个执行Session来托管它。
你会看到这样的提示:
Command still running (session neat-crest, pid 9077).
Use process (list/poll/log/write/kill/clear/remove) for follow-up.
neat-crest就是这个执行Session的名字。你可以:
process poll neat-crestprocess kill neat-crest它解决什么问题?
| 场景 | 没执行Session | 有执行Session |
|---|---|---|
| 跑一个小时的脚本 | 终端不能关,干等着 | 后台运行,随时查看 |
| 交互式程序(如vim) | 没法用 | 可以发送按键指令 |
| 多个任务并行 | 混乱 | 每个任务独立管理 |
有个复杂任务,比如:"分析这个项目代码的所有bug"。
你可以:
spawn一个子代理,让它专门干这事sessions_spawn --task "分析src目录下的代码bug" --agent main
子代理Session的特点:
什么时候用?
很多人遇到过:Agent突然不记得刚才说的了,或者上下文接不上。
常见原因:
OpenClaw有个心跳机制,长时间不活跃,Session可能被归档或清理。
解决: 定期互动,或者重要内容让Agent记到文件里。
大模型有token限制,聊多了前面的内容会被"遗忘"。
症状: Agent反复问同一个问题,或者前后矛盾。
解决: 新建Session,或者让Agent总结要点写到文件。
在一个Session里聊太久,上下文混杂了不同话题,Agent容易混淆。
解决: 主动新建Session开始新话题。在支持的渠道(如Discord、部分IM平台)可以直接发送:
/new
这会立即创建一个新Session,清空上下文,重新开始对话。
聊久了Session会"臃肿",不同话题混在一起也容易让Agent混乱。
方法: 在支持的渠道直接发送 /new,立即新建Session、清空上下文。
建议节奏:
/new 开始新对话别让重要信息只存在Session记忆里:
你:把我刚才的需求写成文件保存
Agent:已保存到 requirements.md
下次新建Session也能看到。
跑完的任务Session还留着占地方:
# 查看所有执行Session
process list
# 清理已结束的
process remove neat-crest
大任务扔给子代理,主Session保持清爽:
# 主Session:继续正常聊天
# 子代理Session:后台分析100个日志文件
| 命令 | 作用 |
|---|---|
sessions list | 查看所有对话Session |
sessions history <key> | 查看某Session的历史 |
sessions send <key> "msg" | 向指定Session发消息 |
process list | 查看执行Session |
process poll <name> | 看实时输出 |
process log <name> | 看完整日志 |
process write <name> "text" | 发送输入 |
process kill <name> | 终止进程 |
sessions_spawn --task "xxx" | 创建子代理 |
本文基于OpenClaw 2026.3.2版本,如有更新以官方文档为准。