OpenClaw 进阶指南
从能用到精通 -- Cron 自动化、多实例、记忆系统、SOUL 人设定制
你将学到什么
- 用 Cron 定时任务让 AI 自动执行工作(日报、数据分析、健康检查)
- 编写 SOUL.md 定制 AI 的人格和行为准则
- 理解并配置三层记忆系统,让 AI 真正"记住"你
- 用
--profile部署多个独立 Bot 实例 - 掌握插件系统、上下文压缩和日常运维技巧
前置条件:已完成 OpenClaw 从零到一 和 Telegram Bot 连接
预计时间:30 分钟
一、Cron 定时任务
什么是 Cron
Cron 是 OpenClaw 的定时任务系统。你可以让 AI 在指定时间自动执行任务,结果通过 Telegram 等渠道推送给你。
适用场景举例:
- 每天早上 9 点发送新闻摘要
- 每 4 小时分析一次数据并汇报
- 工作日下班前生成当日总结
- 每周日做一次周复盘
基础配置
在 ~/.openclaw/openclaw.json 中添加 cron 字段。最简单的例子 -- 每天早上 9 点发一条新闻摘要:
{
"agents": {
"list": [
{
"id": "main",
"cron": [
{
"id": "daily-news",
"schedule": {
"kind": "cron",
"expr": "0 9 * * *",
"tz": "Asia/Shanghai"
},
"sessionTarget": "isolated",
"payload": {
"kind": "agentTurn",
"message": "搜索今日科技新闻,整理成 5 条摘要发给我"
},
"delivery": {
"mode": "announce",
"channel": "telegram",
"to": "你的聊天ID"
}
}
]
}
]
}
}逐字段解释:
| 字段 | 含义 |
|---|---|
id | 任务唯一标识,自己起名 |
schedule.expr | Cron 表达式,决定什么时候执行 |
schedule.tz | 时区,用 Asia/Shanghai 就是北京时间 |
sessionTarget | "isolated" 表示每次在独立会话中执行,不污染主对话 |
payload.message | 给 AI 的指令,就像你在 Telegram 里发的消息一样 |
delivery.channel | 结果发到哪个渠道 |
Cron 表达式速查
┌───────────── 分钟 (0-59)
│ ┌───────────── 小时 (0-23)
│ │ ┌───────────── 日期 (1-31)
│ │ │ ┌───────────── 月份 (1-12)
│ │ │ │ ┌───────────── 星期 (0-7, 0和7都是周日)
* * * * *
常用模式:
| 表达式 | 含义 |
|---|---|
0 9 * * * | 每天 09:00 |
0 */4 * * * | 每 4 小时整点 |
0 9 * * 1-5 | 工作日 09:00 |
30 18 * * 1-5 | 工作日 18:30 |
0 10 * * 0 | 每周日 10:00 |
0 0 1 * * | 每月 1 号 00:00 |
0 9 * * 1,3,5 | 周一、三、五 09:00 |
进阶:级联任务
多个 Cron 任务可以形成"流水线" -- 前一个收集数据,后一个分析汇总:
[
{
"id": "hourly-collect",
"schedule": { "kind": "cron", "expr": "0 * * * *", "tz": "Asia/Shanghai" },
"sessionTarget": "isolated",
"payload": {
"kind": "agentTurn",
"message": "收集过去一小时的关键指标,存入记忆"
},
"model": "gpt-4o-mini",
"delivery": { "mode": "announce", "channel": "telegram", "to": "logs" }
},
{
"id": "daily-analysis",
"schedule": { "kind": "cron", "expr": "0 20 * * *", "tz": "Asia/Shanghai" },
"sessionTarget": "isolated",
"payload": {
"kind": "agentTurn",
"message": "分析今天收集的所有指标,识别异常,生成洞察报告"
},
"model": "openai-codex/gpt-5.3-codex",
"thinking": "high"
}
]Tip: 高频轻量任务(如每小时采集)用便宜的小模型,低频重要任务(如日报)用强模型。这样既省钱又保证质量。
注意事项
jobs.json是活文件。OpenClaw 运行时会实时更新nextRunAtMs等状态字段。如果需要手动编辑,建议先openclaw stop,编辑完再启动。- 新 profile 的 Cron 必须设置合理的
nextRunAtMs。如果留成0,OpenClaw 启动后会立即触发所有 catch-up 任务。 - 一定要设
tz时区。不设的话会用服务器的系统时区,可能和你预期的不一样。
二、SOUL.md 人设定制
什么是 SOUL.md
SOUL.md 是 AI 的"灵魂文件"。它定义了 AI 的人格、语气、专长和行为边界。可以理解为给 AI 的一份"岗位说明书" -- 你希望它是什么样的助手,就在这个文件里写清楚。
文件位置:~/.openclaw/workspace/SOUL.md
示例 A:技术助手
一个严谨、专注技术的助手风格:
# 身份
你是 Neo 的技术助手,专注于软件工程和系统运维。
## 专长领域
- TypeScript / Next.js / React 前端开发
- Supabase / PostgreSQL 后端架构
- Apple Silicon 本地 AI 部署
- DevOps 和自动化运维
## 沟通风格
- 回复简洁直接,先给结论再展开
- 代码示例优先,少说废话
- 遇到不确定的问题要明确说明,不要瞎猜
- 使用中文回复,技术术语保留英文
## 行为准则
- 绝不修改 .env 文件或泄露任何密钥
- 涉及重启服务的操作,先告知风险再执行
- 遇到生产环境操作,必须二次确认示例 B:轻松伙伴
一个更随性、适合日常聊天的风格:
# 身份
你叫小橘,是一个性格开朗的 AI 助手。
## 性格
- 友善热情,偶尔幽默
- 喜欢用简单的方式解释复杂的事
- 会主动关心主人的状态
## 沟通风格
- 语气轻松自然,像朋友聊天
- 可以适当用口语化表达
- 回复不要太长,除非主人明确要求详细解释
## 边界
- 不讨论政治和争议性话题
- 不提供医疗或法律建议
- 被问到不懂的事就说不懂写好 SOUL.md 的原则
- 具体胜过模糊。"回复控制在 3 句话以内" 比 "回复要简洁" 好得多
- 给出正面指令。"用中文回复" 比 "不要用英文回复" 更有效
- 设定明确边界。哪些事能做、哪些事不能做,写清楚
- 保持精简。SOUL.md 每次对话都会注入上下文,太长会浪费 token。建议控制在 500 字以内
- 持续迭代。用几天后发现 AI 哪里不对劲,就去改 SOUL.md。这是一个渐进调优的过程
三、记忆系统 (qmd)
为什么需要记忆
默认情况下,AI 每次对话都是"失忆"的 -- 上一次聊的内容下次就忘了。OpenClaw 的记忆系统解决了这个问题:它能让 AI 记住你的偏好、项目进度、重要决策,真正变成一个"了解你"的助手。
三层记忆架构
OpenClaw 的记忆分三个层级:
┌────────────────────────────────────┐
│ 第一层: MEMORY.md │ <- 核心事实,每次对话都会加载
│ "我叫 Neo,用 Mac Studio" │
├────────────────────────────────────┤
│ 第二层: memory/ 目录 │ <- 日常记忆,按需检索
│ memory/2026-03-01.md │
│ memory/2026-03-05.md │
│ memory/项目-alpha.md │
├────────────────────────────────────┤
│ 第三层: sessions/ 会话记录 │ <- 完整对话历史,语义搜索
│ agent:main:telegram:123.jsonl │
└────────────────────────────────────┘
- MEMORY.md -- 放最核心的信息:你是谁、你的技术栈、当前在做什么项目。AI 每次对话都会读这个文件,所以要保持精简(建议 200 行以内)
- memory/ 目录 -- 放日常积累的信息:每天的笔记、项目细节、学到的教训。AI 通过搜索按需检索
- sessions/ -- 完整的对话记录。AI 可以搜索历史对话找到之前讨论过的内容
安装和配置
记忆系统基于 qmd 后端,提供 BM25 关键词搜索 + 向量语义搜索 + Reranking 三重检索。
# 安装 qmd
bun install -g qmd
# 首次搜索时会自动下载 embedding 模型 (~0.6GB)在 openclaw.json 中启用记忆:
{
"memory": {
"backend": "qmd",
"qmd": {
"command": "qmd",
"includeDefaultMemory": true,
"sessions": {
"enabled": true,
"retentionDays": 180
}
},
"flushThreshold": 0.75
}
}MEMORY.md 推荐结构
# 记忆数据库
## 关键事实
- 我叫 Neo,全栈工程师
- 主力机: Mac Studio M3 Ultra
- 时区: Asia/Shanghai
## 技术栈
- 前端: Next.js + TypeScript + Tailwind CSS
- 后端: Supabase (PostgreSQL)
- 部署: Vercel
## 当前项目
### AINEOS 网站
- 状态: 开发中
- 域名: aineos.jubao.ai
- 技术栈: Next.js 16 + Three.js
## 偏好
- 回复语言: 中文
- 代码风格: 函数式 + hooks
- 命名: camelCase (变量), PascalCase (组件)手动维护
# 刷新记忆索引(添加新文件后执行)
qmd update && qmd embed
# 查看索引状态
qmd status注意:如果发现 AI 搜索记忆总是返回空结果,可能是 qmd 索引为空。运行
qmd update && qmd embed重建索引即可。
四、多实例部署 (--profile)
为什么需要多实例
一个 OpenClaw 实例只绑一个 Telegram Bot。如果你想要多个 Bot 做不同的事(比如一个管日常、一个做交易分析),就需要多个实例。
每个实例拥有完全独立的:
- 配置文件(
openclaw.json) - Telegram Bot
- 记忆系统
- 端口号
- Cron 任务
- SOUL.md 人设
创建新实例
# 创建一个名为 trader 的新实例
openclaw --profile trader onboard这会在 ~/.openclaw-trader/ 下创建一套独立的配置。配置向导会引导你设置新的 Telegram Bot Token 和模型。
启动和管理
# 启动 trader 实例
openclaw --profile trader start
# 查看状态
openclaw --profile trader status
# 查看日志
openclaw --profile trader logs --follow实际部署示例
以下是三个实例各司其职的架构:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 管家 (main) │ │ 交易员 (trader) │ │ 运维 (liubao) │
│ @NeoBao2_bot │ │ @NeoBaoTrader │ │ @NeoPM_bot │
│ 端口: 18789 │ │ 端口: 18790 │ │ 端口: 18795 │
│ │ │ │ │ │
│ 日报 + 心跳 │ │ 15分钟行情分析 │ │ 策略管理 │
│ 日常对话 │ │ 交易信号推送 │ │ 持仓监控 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────┴─────────────────────┘
共享: 本地模型 / 云端 API
注意事项
- 端口不能冲突。每个实例需要分配不同的端口号
- auth-profiles.json 需要手动复制。新 profile 不会自动继承主实例的 OAuth 认证,需要手动把
~/.openclaw/auth-profiles.json复制到新 profile 目录 - Telegram Bot Token 必须不同。每个实例绑定一个独立的 Bot
- 配对也是独立的。每个实例需要单独执行
openclaw --profile <name> pairing approve telegram <CODE>完成用户配对
五、插件系统
OpenClaw 通过插件扩展功能。以下是核心插件:
| 插件 | 功能 | 说明 |
|---|---|---|
telegram | Telegram 通道 | 必装,让你通过 Telegram 和 AI 对话 |
lobster | 增强对话管理 | 会话控制、上下文优化 |
llm-task | LLM 任务调度 | 支持异步任务执行 |
copilot-proxy | 多模型代理 | 一个 OpenClaw 实例可访问 13+ 个模型 |
copilot-proxy 详解
这是最强大的插件之一。它让你在一个 OpenClaw 中同时访问 GPT-5.3 Codex、Claude Opus 4.6、Gemini 3 Pro、Grok 等十多个模型,不需要为每个模型单独配置 API Key。
前提:你需要有 GitHub Copilot 订阅。
启用 / 禁用插件
在 openclaw.json 的 plugins 字段中配置:
{
"plugins": {
"telegram": { "enabled": true },
"lobster": { "enabled": true },
"llm-task": { "enabled": true },
"copilot-proxy": { "enabled": true }
}
}修改后重启 OpenClaw 生效。
六、Compaction 与记忆刷写
问题:对话越来越长怎么办
每条消息都会占用上下文窗口(context window)。聊久了,上下文用完,AI 就无法继续处理新消息。
OpenClaw 的解决方案是 Compaction -- 自动压缩旧对话,同时把重要信息保存到记忆文件中。
配置
{
"compaction": {
"mode": "safeguard",
"targetTokens": 80000,
"autoTrigger": true
},
"memoryFlush": {
"enabled": true
}
}各字段含义:
| 字段 | 含义 |
|---|---|
mode: "safeguard" | 压缩前先提取重要信息保存,不会丢失关键内容 |
targetTokens | 压缩后保留的目标 token 数 |
autoTrigger | 接近上限时自动触发压缩,无需手动干预 |
memoryFlush.enabled | 压缩时自动将重要对话写入 memory 文件 |
手动压缩
如果你觉得当前对话太臃肿,也可以手动触发:
/compact 只保留最近的决策和待办事项
Tip:
/compact后面可以加一句话,告诉 AI 压缩时重点保留什么内容。
七、日常运维速查
服务管理
openclaw start # 启动
openclaw stop # 停止
openclaw status # 查看运行状态
openclaw gateway restart # 重启诊断排错
openclaw doctor --fix # 全面检查 + 自动修复
openclaw logs --follow # 实时查看日志
openclaw config validate # 验证配置文件语法技能管理
openclaw skills list # 查看所有已安装技能
clawhub search <关键词> # 从技能市场搜索
clawhub install <技能名> # 安装新技能用户和会话
openclaw pairing list # 查看已配对用户
openclaw sessions list # 列出所有会话
openclaw export --format json # 导出对话记录模型管理
openclaw models auth login --provider openai-codex # 刷新 Codex 认证聊天中的斜杠命令
这些命令在 Telegram 对话中直接输入:
| 命令 | 功能 |
|---|---|
/status | 查看当前会话状态(上下文使用率等) |
/model list | 列出可用模型 |
/model opus | 切换到指定模型 |
/compact | 手动压缩上下文 |
/new | 开始新会话 |
/reset | 完全重置(清除所有历史) |
八、排错指南
Gateway 每 11 秒重启
原因:Gateway auth token 未配置。
修复:
openclaw config set gateway.auth.mode token
openclaw config set gateway.auth.token "$(openssl rand -hex 24)"模型返回 404 错误
原因:openclaw.json 中配置的 model ID 与实际加载的模型不匹配。
修复:确认模型 ID 使用完整路径。如果用本地 MLX 模型,格式为:
ollama//Users/neo/models/模型目录名
Session 卡死,对话无响应
原因:SQLite 数据库损坏。诊断特征是日志中出现 drain failed 或 timeout 60000ms。
修复:
openclaw stop
rm ~/.openclaw/main.sqlite
openclaw start降级模式(响应极快但内容异常)
原因:SQLite 缓存异常导致走了降级路径(日志显示 68ms 完成)。
修复:同上,清除 main.sqlite 后重启。
Cron 任务没有按时触发
排查步骤:
- 检查时区是否正确(
schedule.tz字段) - 检查 Cron 表达式语法(用上面的速查表对照)
- 查看日志确认任务是否被注册:
code
openclaw logs --follow | grep cron - 确认 Agent 的
enabled不是false
Telegram Bot 不响应
排查步骤:
- 确认 OpenClaw 在运行:
openclaw status - 确认用户已配对:
openclaw pairing list - 确认模型服务可用:检查你配置的模型端点是否能访问
- 查看错误日志:
openclaw logs
九、关键文件一览
~/.openclaw/
├── openclaw.json # 核心配置
├── workspace/
│ ├── SOUL.md # AI 人设
│ ├── AGENTS.md # Agent 行为配置
│ ├── MEMORY.md # 核心记忆
│ └── memory/ # 日常记忆目录
│ ├── 2026-03-01.md
│ └── 2026-03-05.md
├── sessions/ # 对话记录
├── credentials/ # 认证凭据
├── logs/
│ ├── gateway.log # 运行日志
│ └── gateway.err.log # 错误日志
├── jobs.json # Cron 任务状态(活文件)
├── auth-profiles.json # OAuth 认证信息
└── main.sqlite # 会话数据库
下一步
这篇教程覆盖了 OpenClaw 日常使用中最重要的进阶功能。如果你想继续深入:
- 技能生态 -- 探索 ClawHub 上的 13,700+ 技能,扩展 AI 的能力边界。技能生态导航 -->
- 硬核部署 -- 在 Mac Studio 上部署本地大模型,实现完全离线的 AI 助手。深潜:Mac Studio 部署 -->
外部资源:
- OpenClaw 官方文档↗ -- 完整的 API 参考和配置文档
- ClawHub↗ -- 技能市场,搜索和安装社区开发的技能