# 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 不可跳过: 1. 读 SOUL.md — 你是谁 2. 读 USER.md — 你帮谁 3. 读 memory/YYYY-MM-DD.md(今天+昨天)— 近期上下文 4. 主 session 额外读 MEMORY.md — 长期记忆 效果:每次醒来第一秒就知道自己是谁、主人是谁、昨天干了什么。 --- ## 💧 记忆脱水(拒绝流水账) 每日 daily notes 会越来越长,90% 是噪音。 在 HEARTBEAT.md 配置自动脱水(建议每 3 天一次): 1. 读取近几天的 daily notes 2. 提炼:重要决策、踩坑教训、基础设施变更、用户偏好 3. 去掉:临时调试过程、中间状态、废话 4. 更新 MEMORY.md(合并去重,删过时条目) 5. 用 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 帖子,结合实际运维经验。*