OpenClaw 对话过程与命令功能总结
基于 OpenClaw 官方文档(版本 2026-03-08 同步)
一、对话过程概述
1. 会话管理 (Session Management)
- 会话键 (Session Key): 每个对话有唯一标识
- 直接聊天:
agent:<agentId>:<mainKey>(默认 main)
- 群组/频道聊天:各自独立的会话键
- DM 安全模式: 多用户环境下建议启用
dmScope: "per-channel-peer" 隔离不同用户的对话上下文
- 会话存储:
- 网关 (Gateway) 是会话状态的唯一来源
- 存储文件:
~/.openclaw/agents/<agentId>/sessions/sessions.json
- 对话记录:
~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl
2. 上下文压缩 (Compaction)
- 自动压缩: 当会话接近模型上下文窗口限制时自动触发
- 手动压缩: 使用
/compact 命令强制压缩
- 压缩过程: 将较早的对话总结为紧凑摘要,保留近期消息
- 内存刷新: 压缩前自动触发静默回合,将持久记忆写入磁盘
3. 内存系统 (Memory)
- 日常笔记:
memory/YYYY-MM-DD.md(每日日志,追加模式)
- 长期记忆:
MEMORY.md(仅在主会话中加载)
- 内存刷新阈值:
contextWindow - reserveTokensFloor - softThresholdTokens
二、主要命令列表
会话管理命令
| 命令 |
别名 |
功能描述 |
/new |
/reset |
开始新的会话(可选模型提示) |
/compact [instructions] |
- |
手动压缩上下文(可附加指令) |
/status |
- |
显示当前状态(包括提供者用量/配额) |
/context [list|detail|json] |
- |
查看上下文详情 |
/export-session [path] |
/export |
导出当前会话为HTML |
会话控制命令
| 命令 |
功能描述 |
/stop |
立即中止当前运行的任务 |
/restart |
重启(默认启用,可配置关闭) |
/dock-telegram |
切换回复到Telegram |
/dock-discord |
切换回复到Discord |
/dock-slack |
切换回复到Slack |
模型与推理控制
| 命令 |
别名 |
参数 |
功能描述 |
/think |
/thinking, /t |
off|minimal|low|medium|high|xhigh |
控制思考级别 |
/verbose |
/v |
on|full|off |
控制详细输出 |
/reasoning |
/reason |
on|off|stream |
控制推理显示 |
/elevated |
/elev |
on|off|ask|full |
控制提升权限 |
/model |
/models |
<name> 或 <#> |
切换模型 |
/queue |
- |
<mode> 加选项 |
控制队列行为 |
系统与配置命令
| 命令 |
功能描述 |
启用要求 |
/help |
显示帮助信息 |
默认启用 |
/commands |
列出可用命令 |
默认启用 |
/whoami |
显示发送者ID(别名 /id) |
默认启用 |
/bash <command> |
运行主机Shell命令 |
commands.bash: true |
/config show|get|set|unset |
持久化配置到磁盘 |
commands.config: true |
/debug show|set|unset|reset |
运行时配置覆盖 |
commands.debug: true |
/allowlist |
管理允许列表 |
commands.config: true |
子代理管理
| 命令 |
功能描述 |
/subagents list|kill|log|info|send|steer|spawn |
管理子代理运行 |
/acp spawn|cancel|steer|close|status|... |
管理ACP运行时会话 |
/agents |
列出此会话的线程绑定代理 |
/focus <target> |
绑定线程到会话/子代理目标 |
/unfocus |
移除当前线程绑定 |
/kill <id|#|all> |
立即中止一个或所有运行中的子代理 |
/steer <id|#> <message> |
立即引导运行中的子代理 |
技能命令
| 命令 |
功能描述 |
/skill <name> [input] |
按名称运行技能 |
| 原生技能命令 |
每个用户可调用技能都有对应的 / 命令 |
三、命令系统功能
1. 命令类型
文本命令 (Text Commands)
- 在聊天消息中以
/ 开头
- 适用于所有平台(包括不支持原生命令的平台)
- 配置项:
commands.text(默认 true)
原生命令 (Native Commands)
- 在支持的平台注册为原生斜杠命令
- Discord、Telegram、Slack 支持
- 配置项:
commands.native(默认 "auto")
指令 (Directives)
- 控制会话设置:
/think、/verbose、/reasoning、/elevated、/exec、/model、/queue
- 仅在消息只包含指令时持久化到会话
- 授权发送者才能应用
内联快捷方式 (Inline Shortcuts)
- 允许在正常消息中嵌入:
/help、/commands、/status、/whoami
- 触发后立即运行并从消息中剥离,剩余文本继续正常流程
2. 权限控制
授权来源
commands.allowFrom:按提供者设置允许列表(优先)
commands.useAccessGroups:使用访问组(默认 true)
- 通道允许列表/配对
未授权处理
- 命令专用消息:静默忽略
- 内联
/... 标记:视为纯文本
3. 配置示例
{
commands: {
native: "auto", // 自动注册原生命令
nativeSkills: "auto", // 自动注册技能命令
text: true, // 启用文本命令
bash: false, // 禁用bash命令
config: false, // 禁用config命令
debug: false, // 禁用debug命令
restart: false, // 禁用restart命令
useAccessGroups: true, // 使用访问组进行授权
},
}
4. 平台特定说明
Discord
- 原生命令:自动注册
- 语音控制:
/vc join|leave|status
- 线程绑定:需要启用
session.threadBindings.enabled
Telegram
- 原生命令:自动注册
- 会话目标:
telegram:slash:<userId>
Slack
- 原生命令:需要手动为每个命令创建Slack斜杠命令
- 会话前缀:可配置
channels.slack.slashCommand.sessionPrefix
四、重要注意事项
安全建议
- 多用户环境:启用安全DM模式(
dmScope: "per-channel-peer")
- 敏感命令:
/bash、/config、/debug 需谨慎启用
- 群组设置:
/reasoning 和 /verbose 可能暴露内部推理,建议关闭
性能优化
- 自动压缩:保持对话在上下文窗口内
- 内存刷新:在压缩前保存重要记忆
- 会话维护:定期清理旧会话(
openclaw sessions cleanup)
使用技巧
- 快速路径:允许列表发送者的命令专用消息立即处理(绕过队列+模型)
- 群组提及门控:命令专用消息绕过提及要求
- 模型选择:使用
/model 交互式选择器
- 技能调用:使用
/skill <name> 或原生技能命令
所有评论(0)