OpenClaw 安装与使用指南
OpenClaw 是一个开源的 AI 助手平台,支持多种模型和渠道,可以在本地部署自己的 AI 伙伴。本文记录从安装到配置的完整过程。
环境说明
- 操作系统: Ubuntu 22.04 / Debian 12 (x64)
- Node.js 版本: >= 18.0
- 内存要求: 建议 2GB 以上
- 前置条件: 已安装 Git、curl
安装步骤
1. 安装 Node.js
如果系统没有 Node.js 或版本过低:
# 使用 NodeSource 安装 Node.js 22 |
2. 安装 OpenClaw
# 克隆仓库 |
3. 配置环境变量
# 复制环境变量模板 |
最小配置示例:
# 必需:选择一个默认模型 |
4. 启动服务
# 开发模式 |
服务默认运行在 http://localhost:3000
基础配置
配置文件位置
主配置文件:config/openclaw.yaml
# 复制示例配置 |
关键配置项
# 模型配置 |
使用方法
Web 界面
浏览器访问 http://localhost:3000,即可开始对话。
常用命令
| 命令 | 功能 |
|---|---|
/status |
查看当前会话状态 |
/model |
切换模型 |
/reasoning |
开启/关闭推理模式 |
/clear |
清空当前对话 |
会话内命令详解
OpenClaw 支持多种会话内命令,在聊天窗口直接输入即可执行。以下是常用命令的详细说明:
基础会话命令
| 命令 | 功能 | 使用示例 | 说明 |
|---|---|---|---|
/new |
开启新会话 | /new |
创建全新会话,之前的对话历史会被清空,适合开始新话题 |
/clear |
清空当前对话 | /clear |
清除当前会话的显示内容,但保持会话不断开 |
/status |
查看会话状态 | /status |
显示当前使用的模型、运行时间、token 消耗等信息 |
/model |
切换模型 | /model 或 /model gpt-4o |
不带参数列出可用模型,带参数直接切换指定模型 |
/reasoning |
开关推理模式 | /reasoning |
开启后 AI 会显示思考过程,适合复杂问题;再次输入关闭 |
记忆管理命令
| 命令 | 功能 | 使用示例 | 说明 |
|---|---|---|---|
/memory |
查看长期记忆 | /memory |
显示 MEMORY.md 中记录的重要信息,快速恢复上下文 |
/remember |
记住某事 | /remember 我的服务器IP是192.168.1.100 |
将信息写入长期记忆,下次会话自动记住 |
子会话管理命令
| 命令 | 功能 | 使用示例 | 说明 |
|---|---|---|---|
/spawn |
创建子会话 | /spawn 帮我写一段Python代码 |
启动独立子会话处理任务,不干扰当前对话 |
/subagents |
管理子会话 | /subagents |
列出所有子会话,可查看状态或终止任务 |
/sessions |
查看所有会话 | /sessions |
显示当前活跃的所有会话列表 |
工具与帮助命令
| 命令 | 功能 | 使用示例 | 说明 |
|---|---|---|---|
/tools |
列出可用工具 | /tools |
显示当前启用的技能和工具,如天气查询、代码助手等 |
/skills |
列出可用技能 | /skills |
同 /tools,查看可以调用的功能模块 |
/help |
显示帮助 | /help |
列出所有可用命令及其简要说明 |
/config |
查看配置 | /config |
显示当前 OpenClaw 的配置摘要 |
命令使用小贴士
- 大小写不敏感:
/STATUS和/status效果相同 - 随时可用:大部分命令在对话的任何阶段都可以使用
- 查看结果:执行命令后,AI 会显示操作结果或相关信息
- 错误处理:如果命令不存在,AI 会提示并建议相似命令
工作目录说明
OpenClaw 会在用户目录创建 workspace:
~/openclaw-workspace/ |
首次使用建议:
- 编辑
IDENTITY.md— 给 AI 起名字、设定性格 - 编辑
USER.md— 填写你的信息、时区 - 阅读
AGENTS.md— 了解工作流程
Workspace 详解
OpenClaw 的 Workspace 是 AI 助手的工作空间,也是人机协作的核心枢纽。理解 Workspace 的结构和使用方法,可以大幅提升使用效率。
Workspace 目录结构
~/openclaw-workspace/ # 主工作目录 |
核心文件详解
1. AGENTS.md — 智能体工作手册
这是 AI 的”入职手册”,定义了工作流程和最佳实践。
内容通常包括:
- 会话启动时必须读取的文件清单
- Memory 管理规范(每日日志 vs 长期记忆)
- 安全红线(不执行的操作)
- 群聊行为准则
- 工具使用规范
示例内容:
## Session Startup |
2. IDENTITY.md — AI 身份配置
定义 AI 的名字、性格、形象。
示例:
# IDENTITY.md - Who Am I? |
3. USER.md — 用户信息
记录用户的基本信息、偏好、时区等。
示例:
# USER.md - About Your Human |
4. SOUL.md — 行为准则
这是 AI 的”灵魂文件”,定义了核心行为原则。
关键内容:
- 核心真理(如何与用户互动)
- 安全边界(什么不能做)
- 身份验证规则(群聊中的权限控制)
- 隐私保护原则
- 群聊行为准则
安全相关:
### Restricted Paths (Never Access Unless Admin) |
5. TOOLS.md — 工具配置
记录本地环境特有的工具配置,如:
- SSH 主机别名
- 摄像头位置
- TTS 语音偏好
- 设备昵称
示例:
### SSH |
6. MEMORY.md — 长期记忆
⚠️ 安全注意:只在主会话(直接对话)中加载
这是 AI 的”长期记忆”,包含:
- 用户的重要信息
- 历史决策和约定
- 项目约定和流程
- 个人偏好
与每日日志的区别:
| memory/YYYY-MM-DD.md | MEMORY.md | |
|---|---|---|
| 内容 | 原始对话记录 | 提炼后的重要信息 |
| 用途 | 追溯具体对话 | 快速恢复上下文 |
| 更新频率 | 每天自动创建 | 手动维护 |
| 加载场景 | 所有会话 | 仅主会话 |
7. HEARTBEAT.md — 定时任务
配置 AI 的”心跳”检查任务。
用途:
- 定期检查邮件、日历
- 监控项目状态
- 执行周期性维护任务
示例:
# 检查邮件和日历 |
Workspace 使用最佳实践
1. 养成记录习惯
每次会话后,AI 会自动记录到 memory/YYYY-MM-DD.md。定期:
- 回顾日志,发现重复问题
- 整理有价值的信息到
MEMORY.md - 删除过时的记忆
2. 主动更新 MEMORY.md
当发生以下情况时,告诉 AI “记住这个”:
- 做了重要决策
- 发现了有用的信息
- 建立了新的工作流程
3. 保持文件整洁
- 定期归档旧的
memory/文件 - 更新过时的
TOOLS.md配置 - 删除不再需要的
BOOTSTRAP.md
4. 安全使用 MEMORY.md
- 主会话(直接对话):可以读取和更新 MEMORY.md
- 群聊/共享会话:不加载 MEMORY.md,保护隐私
- 子会话/ACP:不加载 MEMORY.md,保持隔离
会话与 Workspace 的关系
| 会话类型 | 加载 AGENTS.md | 加载 MEMORY.md | 写入权限 |
|---|---|---|---|
| Main(主会话) | ✅ | ✅ | ✅ |
| 群聊 | ✅ | ❌ | 受限 |
| 子会话 | ❌ | ❌ | 隔离 |
| ACP | ❌ | ❌ | 绑定目录 |
快速开始建议
如果你是新用户,按这个顺序配置:
- 编辑
IDENTITY.md— 给 AI 起个名字 - 编辑
USER.md— 填写你的基本信息 - 阅读
AGENTS.md— 了解工作流程 - 开始对话 — AI 会自动创建每日日志
- 定期整理 — 把重要信息写入
MEMORY.md
进阶配置
接入 Telegram
- 找 @BotFather 创建 Bot,获取 token
- 在
openclaw.yaml中配置:
channels: |
- 重启服务
自定义模型
支持任何 OpenAI 兼容格式的 API:
models: |
设置系统提示词
编辑 SOUL.md 中的内容,可以:
- 定义 AI 的性格和说话方式
- 设置安全边界
- 添加群聊规则
常见问题
启动时报错 Cannot find module
原因: 依赖未正确安装
解决:
rm -rf node_modules package-lock.json |
模型响应超时
原因: 网络问题或模型服务不稳定
解决:
- 检查 API Key 是否正确
- 在配置中增加超时时间:
models:
timeout: 60000 # 60秒
如何更新 OpenClaw
cd openclaw |
个人使用技巧
1. 养成记录习惯
每次会话后,AI 会记录到 memory/YYYY-MM-DD.md。定期回顾这些日志,可以:
- 追踪问题解决过程
- 发现重复询问的问题
- 整理成正式文档
2. 利用 MEMORY.md
把重要信息写入 MEMORY.md,比如:
- 常用服务器地址
- 项目关键决策
- 个人偏好设置
这样每次新会话 AI 都能记住。
3. 技能扩展
OpenClaw 支持技能系统,位于 node_modules/openclaw/skills/:
coding-agent— 代码助手weather— 天气查询video-frames— 视频处理
也可以自己编写技能,参考现有技能结构。
会话机制详解
OpenClaw 支持多种会话类型,理解它们的区别有助于更好地使用:
Main 会话(主会话)
特点:
- 通过 Web 界面、Telegram、Discord 等渠道直接对话
- 持续的历史记录,上下文连贯
- 可以访问
MEMORY.md等长期记忆文件 - 适合日常对话、任务执行
使用场景:
- 日常问答、闲聊
- 文件操作、代码编写
- 需要上下文记忆的任务
子会话(Subagent)
特点:
- 独立的隔离会话,不影响主会话
- 可以指定不同的模型或参数
- 适合并行处理多个任务
- 完成后结果返回主会话
使用场景:
- 并行处理多个独立任务
- 需要不同模型处理同一问题(对比结果)
- 长时间运行的任务(避免阻塞主会话)
- 敏感操作(隔离风险)
如何创建:
# 在主会话中调用 |
ACP 会话(Agent Coding Protocol)
特点:
- 专门用于代码编写和开发任务
- 支持 Codex、Claude Code、Pi 等编码助手
- 可以绑定到特定目录或项目
- 支持线程模式(Discord 等群聊场景)
使用场景:
- 大型项目开发
- 代码审查和重构
- 多文件协同修改
- 需要深度代码分析的任务
如何创建:
# 在 Discord 等支持线程的渠道 |
会话对比表
| 特性 | Main 会话 | 子会话 | ACP 会话 |
|---|---|---|---|
| 上下文连续性 | ✅ 完整历史 | ❌ 独立 | ⚠️ 线程内连续 |
| 访问 MEMORY.md | ✅ 可以 | ❌ 不可以 | ❌ 不可以 |
| 并行执行 | ❌ 顺序 | ✅ 并行 | ✅ 并行 |
| 适合任务 | 日常对话 | 独立子任务 | 代码开发 |
| 生命周期 | 长期 | 任务完成即结束 | 可长期/临时 |
最佳实践
- 简单任务 → 直接在 Main 会话完成
- 多个独立任务 → 使用子会话并行处理
- 复杂开发 → 使用 ACP 会话,绑定到项目目录
- 需要记忆 → 确保在 Main 会话,或主动更新 MEMORY.md
上下文管理详解
OpenClaw 的上下文(Context)是指 AI 在对话中”记住”的信息范围,理解上下文管理能帮助你更高效地使用 AI。
什么是上下文?
上下文(Context Window) 是 AI 模型处理对话时的”工作记忆”。它包含:
| 组成部分 | 说明 |
|---|---|
| 系统提示词 | AI 的行为准则、角色定义(SOUL.md、AGENTS.md 等) |
| 对话历史 | 用户和 AI 的交流记录 |
| 工具调用记录 | AI 使用过的工具及返回结果 |
| 工作区文件 | Workspace 中的文件内容(按需加载) |
上下文大小 = 模型能处理的最大 Token 数(如 200k、128k 等),超出部分会被”遗忘”。
OpenClaw 的上下文机制
OpenClaw 会话显示的上下文使用率计算公式:
上下文使用率 = (已消耗 Token 数 / 上下文上限) × 100% |
关键行为:
- 使用率越高,AI “遗忘”早期对话内容的概率越大
- 工具调用、文件读取会显著增加上下文消耗
- 每次回复都会累积新的 Token
上下文相关命令
OpenClaw 提供多个命令管理上下文:
| 命令 | 功能 | 对上下文的影响 |
|---|---|---|
/clear |
清除当前对话历史 | 清空对话记录,保留系统提示和 Workspace 配置 |
/new |
开启新会话 | 完全重置,上下文归零,重新加载系统文件 |
/reset |
深度重置 | 清空上下文 + 重新加载 AGENTS.md、SOUL.md 等配置文件 |
/status |
查看会话状态 | 显示当前上下文使用率、模型、运行时间等 |
/clear — 清空当前对话
输入:/clear |
/new — 开启新会话
输入:/new |
/reset — 深度重置
输入:/reset |
/status — 查看上下文状态
输入:/status |
上下文使用率监控
OpenClaw 在每条回复末尾显示上下文使用率:
| 显示 | 含义 |
|---|---|
📚 Context: 11% |
上下文状态良好 |
📚 Context: 50% |
使用率过半,建议关注 |
📚 Context: 70% |
使用率高,建议 /new 开启新会话 |
📚 Context: 90% |
即将耗尽,必须 /new |
上下文管理最佳实践
1. 长任务使用子会话
复杂任务放到子会话处理,避免撑爆主会话上下文:
# 主会话中调用 |
2. 定期开启新会话
日常使用中,当上下文使用率超过 50% 时,主动 /new 可以:
- 获得更清晰的对话质量
- 减少 Token 消耗(节省成本)
- 避免上下文被”截断”导致的前后不一致
3. 重要信息写入 MEMORY.md
不要依赖上下文记忆重要信息:
记住:我的服务器IP是 192.168.1.100 |
4. 使用 HEARTBEAT.md 做定期检查
配置心跳任务定期监控上下文:
# HEARTBEAT.md |
5. 大文件处理
读取大型文件会消耗大量上下文:
| 文件大小 | 上下文消耗估算 |
|---|---|
| < 100 行 | ~1-5% |
| 100-500 行 | ~5-15% |
| > 500 行 | > 15% |
处理大文件建议:
- 使用子会话单独处理
- 分批次读取和讨论
- 读取后主动
/new恢复
会话类型与上下文
| 会话类型 | 上下文行为 | MEMORY.md 访问 |
|---|---|---|
| Main(主会话) | 持续累积 | ✅ 可读写 |
| 子会话 | 独立上下文 | ❌ 不可访问 |
| ACP 会话 | 隔离上下文 | ❌ 不可访问 |
| 群聊 | 共享上下文 | ❌ 不加载(安全) |
异常处理
上下文耗尽的表现:
- AI 开始”遗忘”之前的约定
- 回复变得不一致
- 工具调用结果被忽略
解决方法:
- 立即
/new开启新会话 - 重要的跨会话信息写入 MEMORY.md
- 复杂任务拆分成多个子会话
Skills 技能系统详解
OpenClaw 的技能系统(Skills)是其核心扩展机制,让 AI 能够执行各种专业任务。技能位于 node_modules/openclaw/skills/ 目录,每个技能都有独立的 SKILL.md 说明文件。
内置技能一览
| 技能名称 | 功能描述 | 使用场景 |
|---|---|---|
coding-agent |
代码助手(Codex/Claude Code/Pi) | 大型项目开发、代码审查、重构 |
weather |
天气查询 | 获取当前天气和预报 |
video-frames |
视频帧提取 | 从视频中提取帧或短片段 |
healthcheck |
安全加固检查 | 系统安全审计、防火墙配置 |
node-connect |
节点连接诊断 | 修复移动端配对问题 |
skill-creator |
技能创建工具 | 开发新技能、审核现有技能 |
技能使用方法
1. 自动调用
大部分技能会在 AI 判断需要时自动调用。例如:
- 你说”查一下北京天气” → 自动调用
weather技能 - 你说”帮我写个 Python 脚本” → 自动调用
coding-agent技能
2. 查看可用技能
在对话中输入:
/skills |
3. 手动指定技能
某些技能需要明确触发:
coding-agent 技能示例:
# 创建子会话处理代码任务 |
skill-creator 技能示例:
# 创建新技能 |
技能工作原理
用户请求 → AI 分析 → 匹配技能 → 读取 SKILL.md → 执行操作 → 返回结果 |
每个技能的 SKILL.md 包含:
- 描述:技能功能和适用场景
- 使用方法:如何调用该技能
- 参数说明:需要的输入参数
- 示例:典型使用案例
自定义技能开发
如果你想开发自己的技能,可以使用 skill-creator 技能:
# 1. 告诉 AI 你要创建技能 |
技能目录结构:
skills/ |
技能最佳实践
- 阅读 SKILL.md:使用技能前,AI 会自动阅读对应技能的说明文件
- 提供上下文:复杂任务时,提供足够的背景信息
- 分步骤执行:大型任务拆分成多个小步骤
- 检查输出:技能执行后检查结果是否符合预期
Cron 定时任务详解
OpenClaw 内置 Cron 系统,可以设置定时任务让 AI 自动执行周期性工作。
核心概念
| 概念 | 说明 |
|---|---|
| Job | 一个定时任务,包含执行时间和操作 |
| Schedule | 调度规则(一次性、间隔、Cron表达式) |
| Payload | 任务内容(系统事件或 Agent 执行) |
| Delivery | 结果投递方式(静默、公告、Webhook) |
定时任务类型
1. 一次性任务(at)
在指定时间执行一次:
{ |
2. 周期性任务(every)
按固定间隔重复执行:
{ |
3. Cron 表达式任务
使用标准 Cron 语法:
{ |
常用 Cron 表达式示例
| 表达式 | 含义 | 说明 |
|---|---|---|
0 * * * * |
每小时 | 每小时的第 0 分钟 |
0 */6 * * * |
每 6 小时 | 一天 4 次 |
0 9 * * * |
每天 9:00 | 早上提醒 |
0 9 * * 1 |
每周一 9:00 | 周报提醒 |
0 9 1 * * |
每月 1 日 9:00 | 月报提醒 |
*/30 * * * * |
每 30 分钟 | 高频检查 |
任务内容类型(Payload)
1. 系统事件(systemEvent)
在主会话中注入消息,适合提醒类任务:
{ |
2. Agent 执行(agentTurn)
在独立会话中执行 AI 任务,适合复杂操作:
{ |
结果投递方式(Delivery)
| 模式 | 说明 | 适用场景 |
|---|---|---|
none |
静默执行,不通知 | 后台维护任务 |
announce |
发送消息到聊天频道 | 提醒、报告 |
webhook |
POST 到指定 URL | 集成外部系统 |
完整配置示例
示例 1:每日早报
每天早上 9 点发送天气和日程提醒:
{ |
示例 2:每小时健康检查
每小时检查系统状态:
{ |
示例 3:20 分钟后提醒
一次性提醒任务:
{ |
管理定时任务
查看所有任务
openclaw cron list |
添加任务
openclaw cron add --json '{ |
立即执行任务
openclaw cron run <job-id> |
删除任务
openclaw cron remove <job-id> |
查看执行历史
openclaw cron runs <job-id> |
Heartbeat vs Cron:如何选择?
| 特性 | Heartbeat | Cron |
|---|---|---|
| 触发方式 | 定期轮询(~30分钟) | 精确时间触发 |
| 精度 | 较低(可漂移) | 高(精确到分钟) |
| 适用场景 | 批量检查多个项目 | 精确时间任务 |
| 会话依赖 | 需要主会话上下文 | 独立执行 |
| 配置方式 | HEARTBEAT.md | openclaw cron 命令 |
选择建议:
- Heartbeat:适合检查邮件、日历、通知等多个项目,可以批量处理
- Cron:适合精确时间的提醒、定期报告、自动化脚本
定时任务最佳实践
- 合理设置超时:长时间任务设置
timeoutSeconds,避免卡死 - 使用隔离会话:复杂任务用
sessionTarget: isolated,避免影响主会话 - 选择合适的投递方式:
- 重要提醒 →
announce - 后台任务 →
none - 系统集成 →
webhook
- 重要提醒 →
- 添加上下文:Agent 任务中提供足够的背景信息
- 定期检查:用
cron list和cron runs监控任务状态
总结
OpenClaw 的核心优势:
- 本地部署 — 数据隐私可控
- 多模型支持 — 随时切换不同 AI
- 多渠道接入 — Web、Telegram、Discord 等
- 可扩展 — 技能系统、自定义配置
建议从 Web 界面开始使用,熟悉后再配置其他渠道。