3.5 KiB
3.5 KiB
OpenClaw 调教最佳实践(学习笔记)
来源:NodeSeek 帖子 post-622721,作者 rocs(5 台 OpenClaw 实战经验)
🧠 核心理念:文件即记忆
AI 每次醒来都是失忆的。对话窗口是临时的,文件才是永久的。 所有规则、记忆、行为都必须变成物理文件,AI 才有连续性。
📁 推荐文件架构
~/.openclaw/workspace/
├── SOUL.md # 性格、规则、底线
├── AGENTS.md # 启动流程、记忆管理、安全边界
├── USER.md # 主人档案:偏好、环境、习惯
├── IDENTITY.md # 名字、物种、emoji
├── MEMORY.md # 长期记忆(脱水提炼的精华)
├── HEARTBEAT.md # 心跳任务(后台自动维护)
├── TOOLS.md # SSH、设备、本地配置笔记
├── memory/
│ ├── YYYY-MM-DD.md # 每日流水账
│ └── heartbeat-state.json # 心跳状态追踪
└── skills/ # 自定义技能/SOP
🔄 启动加载(治愈失忆症)
在 AGENTS.md 里写死启动序列,每次新 session 不可跳过:
- 读 SOUL.md — 你是谁
- 读 USER.md — 你帮谁
- 读 memory/YYYY-MM-DD.md(今天+昨天)— 近期上下文
- 主 session 额外读 MEMORY.md — 长期记忆
效果:每次醒来第一秒就知道自己是谁、主人是谁、昨天干了什么。
💧 记忆脱水(拒绝流水账)
每日 daily notes 会越来越长,90% 是噪音。
在 HEARTBEAT.md 配置自动脱水(建议每 3 天一次):
- 读取近几天的 daily notes
- 提炼:重要决策、踩坑教训、基础设施变更、用户偏好
- 去掉:临时调试过程、中间状态、废话
- 更新 MEMORY.md(合并去重,删过时条目)
- 用 heartbeat-state.json 追踪上次执行时间
📋 SOP 驱动(杜绝"自以为是")
复杂操作写成 Skill(Markdown 脚本),AI 按步骤执行,不靠灵感靠流程。 每一步有明确的命令、预期输出、踩坑提示。
🔒 SOUL.md 绝对规则示例
- 永远用用户偏好的语言回复
- 不要输出思考过程
- 每次新对话先读记忆文件
- 查配置用 gateway config.get,不要凭感觉
- 任务完成后必须反馈具体结果,不能只说"搞定了"
🧩 智力分层(省钱)
| 场景 | 模型选择 | 原因 |
|---|---|---|
| 主力对话 | claude-opus 等强模型 | 需要理解力和执行力 |
| 心跳巡检 | 便宜小模型 | 够用就行 |
| Fallback | 中等模型 | 主力挂了自动切 |
- Cache 命中率直接决定成本:100% cache ≈ $0
- Session 越少越好,cron job 是 cache 杀手
- 心跳用便宜模型,主力用贵模型,分层省钱
💓 心跳不只是 HEARTBEAT_OK
每次心跳可以做:
- 记忆脱水(自动整理 daily notes)
- 健康检查(探测 API/服务可用性)
- 定期巡检(磁盘、种子、元数据等)
- Telegram 菜单恢复(OpenClaw 重启会覆盖)
🔧 踩坑大全
openclaw doctor --fix会静默覆盖配置 → 每次 doctor 后检查关键配置- 不要创建 BOOTSTRAP.md → 会让 agent 卡在 bootstrapping 循环
- Telegram 尖括号
<>会被当 HTML 解析导致消息截断 → 用反引号包裹 - SSH 长命令容易超时断连 → 用 nohup 后台执行,主动回查结果
- 后台任务启动后必须设定时间主动检查,不能丢了不管
整理自 2026-02-20 NodeSeek 帖子,结合实际运维经验。