Skip to content
广告 · 本站推荐广告

会话工具

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

压缩流程:

  1. Agent 执行一次静默 Agent 轮次(Silent Agentic Turn),将重要信息持久化到记忆
  2. 对话历史被 LLM 摘要为简短摘要
  3. 摘要替换原始历史,大幅减少 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>导出历史只读

下一步

基于MIT协议开源 | 内容翻译自 官方文档,同步更新