会话工具
OpenClaw 提供一组内置的 Session Tools(会话工具)和用户命令,用于查看、管理和控制会话状态。
session_status 工具
session_status 是 Agent 可调用的内置工具,用于获取当前会话的运行时信息:
typescript
// session_status 返回值
interface SessionStatus {
sessionKey: string // 会话键
agentName: string // Agent 名称
model: string // 当前模型
channel: string // 消息渠道
messageCount: number // 消息数量
tokenUsage: {
used: number // 已使用 Token
limit: number // 上下文窗口大小
percentage: number // 使用百分比
}
uptime: string // 会话持续时间
currentTime: string // 当前时间(基于时区)
timezone: string // 会话时区
}Agent 在生成回复时可调用此工具获取实时状态:
Agent: 让我检查一下当前会话状态。
[调用 session_status]
Agent: 当前会话已使用 45,230 tokens(占上下文窗口的 35.3%),
模型为 openai/gpt-4o,已处理 24 条消息。时间感知
session_status 是 Agent 获取当前准确时间的主要途径。系统提示词中的时间在构建时固定,而此工具返回实时时间。
用户命令
/new — 创建新会话
创建一个全新的会话,清除所有对话历史:
bash
/new效果:
- 创建新的 Session Key
- 清空内存中的对话历史
- 保留 JSONL 转录文件(用于审计)
- 长期记忆(
MEMORY.md)不受影响
使用场景
当你想要完全重新开始一个话题,且不希望之前的对话影响 Agent 的回复时使用。
/reset — 重置当前会话
重置当前会话的上下文,但保留会话 Key:
bash
/reset与 /new 的区别:
| 特性 | /new | /reset |
|---|---|---|
| 新 Session Key | ✅ | ❌ |
| 清除对话历史 | ✅ | ✅ |
| 保留会话配置 | ❌ | ✅ |
| 保留 MEMORY.md | ✅ | ✅ |
/compact — 手动压缩
触发上下文压缩,将对话历史摘要化:
bash
/compact压缩流程:
- Agent 执行一次静默 Agent 轮次(Silent Agentic Turn),将重要信息持久化到记忆
- 对话历史被 LLM 摘要为简短摘要
- 摘要替换原始历史,大幅减少 Token 使用
压缩前:
Messages: 86
Tokens: 92,450 / 128,000 (72.2%)
压缩后:
Messages: 1 (摘要) + 最近 5 条
Tokens: 12,800 / 128,000 (10.0%)信息损失
压缩会丢失对话的详细内容。如果当前对话中有重要信息,建议先确认 Agent 已将关键事实存入记忆。
/status — 查看状态
显示当前会话的详细状态信息(调用 session_status):
bash
/status输出示例:
📊 会话状态
─────────────────────
Agent: general
Model: openai/gpt-4o
Channel: telegram
Session: general::user_12345
Messages: 42
Tokens: 45,230 / 128,000 (35.3%)
Uptime: 2h 15m
Time: 2025-01-15 10:30 (Asia/Shanghai)会话切换
在多 Agent 环境中,用户可以切换到不同的 Agent 会话:
bash
# 切换到 coder Agent
/agent coder
# 切换到 writer Agent
/agent writer
# 查看可用 Agent 列表
/agents会话独立
切换 Agent 不会影响其他 Agent 的会话状态。每个 Agent 的对话历史完全独立。
会话导出
导出当前会话的对话历史:
bash
# 导出为 Markdown
/export markdown
# 导出为 JSON
/export json导出文件保存在工作区的 exports/ 目录下:
~/.openclaw/workspace/exports/
├── general_user123_2025-01-15.md
└── general_user123_2025-01-15.json工具权限
会话工具的权限配置:
yaml
toolPolicies:
session_status:
permission: allow # 始终允许(推荐)
session_reset:
permission: ask # 重置前询问用户
session_export:
permission: allow # 允许导出命令汇总
| 命令 | 说明 | 影响范围 |
|---|---|---|
/new | 创建新会话 | 清除历史,新 Key |
/reset | 重置会话 | 清除历史,保留 Key |
/compact | 压缩上下文 | 摘要化历史 |
/status | 查看状态 | 只读 |
/agent <name> | 切换 Agent | 切换会话 |
/agents | 列出 Agent | 只读 |
/export <fmt> | 导出历史 | 只读 |
