课程大纲
系统体检:跑一次 doctor.sh 就知道你到底配没配好
适用版本: OpenClaw v2026.4.11(stable) 验证日期: 2026-04-13 目标读者: 完成前 11 篇后,想确认到底配好了没有 难度: ⭐⭐ 入门偏中(跑脚本不难,修复可能涉及前面多篇内容) 适合首次阅读: 是——本篇是整个系列的收尾检验
目标
对你的 OpenClaw 做一次系统体检:哪些配好了、哪些漏了、哪些需要优先修。
两套检验方案可并行使用:
- 手动脚本 —
bash openclaw-doctor.sh跑完所有机器可验证的检查项 - OpenClaw 自检 prompt — 让 Agent 对照 12 篇逐项诊断,输出人可读的报告
前置条件
- 已完成第 1-11 篇(不必全部做完,缺的会在体检中标出来)
- workspace 运行至少 1 周
- 有基本的 shell 命令能力
Windows 用户说明
根据官方安装文档,原生 Windows 和 WSL2 都兼容 OpenClaw,但 WSL2 更稳定且支持完整的生产特性。
openclaw-doctor.sh 是 bash 脚本,依赖 jq / lsattr / stat 等 Linux 工具:
| 环境 | 能否跑 doctor.sh | 说明 |
|---|---|---|
| WSL2 | ✅ 完全支持 | 和 Linux 一致,零修改可用 |
| 原生 Windows(PowerShell) | ❌ 不支持 | 缺少 lsattr/chattr 等命令。可以用 openclaw doctor 内置命令做基础检查,或用本篇的自检 prompt |
| Git Bash / MSYS / Cygwin | ❌ 不支持 | 脚本会检测到并退出,提示切换到 WSL2 |
如果你在原生 Windows 上跑 OpenClaw,安全相关的检查(文件不可变标记、权限位)需要手动验证。WSL2 用户一切和 Linux 一致。
检验矩阵:12 个维度
按教程顺序对应 A-L 共 12 个维度,分为机器可验证和需要人工判断两类:
机器可验证(doctor.sh 能自动检查)
| # | 维度 | 对应篇 | 核心检查项 |
|---|---|---|---|
| A | 安装与环境 | 第 1 篇《5 分钟跑通》 | daemon 状态 · 版本号 · Node 版本 · config 路径 |
| B | 架构与配置 | 第 2 篇《架构核心概念》 | workspace 目录 · agents.defaults.model · JSON5 语法 |
| C | 消息渠道 | 第 3 篇《消息渠道》 | ≥1 渠道配置 · dmPolicy 非 open · 凭证非明文 |
| F | 记忆系统 | 第 6 篇《记忆系统》 | SOUL/USER/MEMORY 文件存在 · 无占位符残留 · MEMORY 行数合理 |
| G | 生产记忆 | 第 7 篇《生产级记忆》 | memory cron 注册 · processed-sessions.json 可读 |
| I | 安全加固 | 第 9 篇《安全最佳实践》 | Gateway loopback · 凭证权限 600 · 核心文件不可变 · 无明文 Key |
| J | 部署运维 | 第 10 篇《部署运维》 | 备份脚本存在 · workspace git 化 |
需要人工判断(doctor.sh 无法自动验证)
| # | 维度 | 对应篇 | 需要你判断的 |
|---|---|---|---|
| D | ClawHub 技能 | 第 4 篇《ClawHub 实战》 | 装的技能是否真的有用、触发是否准确 |
| E | 自定义技能 | 第 5 篇《自定义技能》 | description 质量、触发准确率 |
| H | 自动化 | 第 8 篇《自动化》 | cron 输出质量、Agent 路由是否合理 |
| K | 实战案例 | 第 11 篇《实战案例》 | 案例是否真正在用、ROI 是否值得 |
| L | 学习循环 | 第 5/7/8 篇 | Agent 是否在自我进化(进阶加分项) |
A-I 是必备项(应该全部达标),J-K 是进阶项,L 是加分项。第一次跑不及格很正常——先修 P0,再修 P1,最后看 P2。
修复优先级
体检出问题后,按这个顺序修:
| 优先级 | 含义 | 处理 | 典型问题 |
|---|---|---|---|
| P0 | 安全漏洞或核心功能不可用 | 立即修,修完重跑 doctor.sh | Gateway 暴露公网、明文 API Key、daemon 挂了 |
| P1 | 功能降级但不致命 | 本周内修 | dmPolicy 为 open、MEMORY 超 200 行、cron 未注册 |
| P2 | 优化建议 | 有空再做 | 缺少备份脚本、技能触发不精准、缺少 watchdog |
修完 P0 后重跑一次 doctor.sh 再处理 P1。 不要一次性改一堆——每修一轮验证一次。
方案一:手动检验脚本
保存到 ~/.openclaw/scripts/openclaw-doctor.sh,chmod +x 后运行:
bashbash ~/.openclaw/scripts/openclaw-doctor.sh
脚本会检查:daemon 状态、版本、workspace 文件完整性、配置语法、凭证权限、Gateway 绑定、核心文件不可变标记、cron 注册、备份脚本。输出带颜色的 ✓/✗/⚠ 报告和总分。
完整脚本较长(~600 行),建议从 openclaw-memory-final 仓库 的
scripts/目录获取最新版本,或在聊天中让 Agent 帮你生成。
脚本核心逻辑概览
bash# A. 安装与环境 command -v openclaw && openclaw --version openclaw daemon status node --version # 需要 ≥ 22.16,推荐 24 # B. 配置语法 python3 -m json.tool ~/.openclaw/openclaw.json > /dev/null # C. 渠道安全 # 检查 dmPolicy 是否为 open(不安全) grep -r '"open"' ~/.openclaw/openclaw.json # F. 记忆文件完整性 for f in SOUL.md USER.md MEMORY.md; do test -f ~/.openclaw/workspace/$f done # 检查占位符残留 grep -rn '<.*>' ~/.openclaw/workspace/*.md # I. 安全加固 # Gateway 绑定(应为 127.0.0.1) ss -tlnp | grep 18789 # 凭证文件权限(应为 600) stat ~/.openclaw/credentials/* # 核心文件不可变(Linux: lsattr, macOS: stat -f '%Sf')
方案二:让 OpenClaw 自检
直接把下面的 prompt 发给你的 Bot:
💡 系统体检 prompt(点击展开,复制发给 Bot)
text你是我的 OpenClaw 系统体检助手。对当前安装做一次完整体检。 只输出报告,不修改任何文件。 按以下 12 个维度逐项检查,每项标 ✅ (通过) / ⚠️ (警告) / 🔴 (严重) / ➖ (跳过)。 [A. 安装与环境] - openclaw CLI 在 PATH · daemon 运行中 · Node ≥ 22.16 · openclaw.json 存在且合法 [B. 架构与配置] - agents.defaults.model.primary 已配置 · workspace 目录存在 [C. 消息渠道] - 至少 1 个渠道已配置 · dmPolicy 不是 "open" · 凭证非明文 [D. ClawHub 技能] - openclaw skills list 非空 [E. 自定义技能] - ~/.openclaw/skills/ 下至少 1 个自写的 SKILL.md [F. 记忆系统] - SOUL.md / USER.md / MEMORY.md 存在 · 无 <占位符> 残留 · MEMORY 行数 < 200 [G. 生产记忆] - memory cron 已注册 · processed-sessions.json 存在 [H. 自动化] - cron.jobs > 0 · heartbeat 已启用 [I. 安全加固] - Gateway 绑定 127.0.0.1 · 凭证文件权限 600 · 配置中无明文 API Key [J. 部署运维] - 备份脚本存在 · workspace 已 git 化 [K. 实战案例] - 至少 1 个案例的 cron 在跑 [L. 学习循环(加分项)] - 近 30 天有无新建/更新的技能 · MEMORY 无过时内容 · daily sync 成功率 【输出格式】 ⚠️ 注意:下面的 {当前日期} 是占位符,输出时请替换为实际日期。 ## OpenClaw 体检报告 - {当前日期} | 维度 | 状态 | 得分 | |------|------|------| | A 安装环境 | ✅ | 5/5 | | B 架构配置 | ⚠️ | 3/5 | | ... | ... | ... | ### 🔴 P0 严重问题(立即修复) 1. [问题] → [修复命令] → [对应篇] ### ⚠️ P1 警告(本周修复) 1. ... ### 💡 P2 建议(有空再做) 1. ... ### 📊 总分: X/100 ### 🛠 下一步(按优先级排前 3 条)
常见缺陷速查
| 缺陷 | 严重度 | 修复 |
|---|---|---|
| Gateway 绑定 0.0.0.0 | P0 | openclaw.json 中确认 gateway.port 只在 127.0.0.1 上监听 |
| 明文 API Key 在配置文件中 | P0 | 迁移到环境变量或 credentials 文件(权限 600) |
| daemon 没运行 | P0 | openclaw daemon start |
| dmPolicy 为 "open" | P1 | 改为 "pairing" 或 "allowlist" |
| MEMORY.md 超 200 行 | P1 | 跑 weekly tidy 归档过期条目 |
占位符 <...> 残留 | P1 | 逐个替换为真实值 |
| SOUL.md 未锁定 | P2 | Linux: sudo chattr +i;macOS: sudo chflags uchg |
| 缺少备份脚本 | P2 | 参考第 10 篇《部署运维》的备份章节 |
| memory cron 未注册 | P1 | 参考第 7 篇《生产级记忆》重新安装 |
| 没有任何 cron 任务 | P2 | 参考第 8 篇《自动化》配置第一个 cron |
验证清单
bash# 1. 跑一次 doctor.sh(如果有) bash ~/.openclaw/scripts/openclaw-doctor.sh # 2. 或用内置命令做基础检查 openclaw doctor openclaw daemon status openclaw cron list # 3. 自检 prompt 输出的 P0 问题数为 0 # 在聊天中发送体检 prompt,确认没有红色 P0 项 # 4. P0 修完后重跑验证 # 修复 → 重跑 doctor.sh → 确认 P0 清零 → 再处理 P1
常见问题
Q: 第一次跑分很低怎么办?
正常。先修 P0(安全和核心功能),再修 P1(功能降级),P2 有空再做。不要追求一次满分。
Q: 每次升级 OpenClaw 后都要跑吗?
建议是。升级可能改字段名或默认值,跑一次 doctor 能快速发现不兼容。
Q: doctor.sh 说某个文件"不可变标记缺失",但我在 macOS 上?
macOS 用 chflags uchg(不是 chattr +i)。脚本已做跨平台适配,会给出正确的锁定命令提示。
Q: 维度 L(学习循环)怎么提高?
L 是加分项,不影响基础得分。提高方法:定期让 Agent 从任务中沉淀新技能(第 5 篇)、保持 daily sync 正常运转(第 7 篇)、定期清理 MEMORY 过时内容。
Q: 原生 Windows 用户怎么做体检?
两个选择:(1) 用本篇的自检 prompt 让 Agent 诊断,不依赖 bash 脚本;(2) 安装 WSL2 后在 WSL 内跑完整 doctor.sh。原生 Windows 上 openclaw doctor 内置命令可以做基础检查。
系列完结
12 篇全部完成。从安装到架构、渠道、技能、记忆、自动化、安全、部署、实战到体检——你的 OpenClaw 已经是一套可长期运行的生产级 AI 助手系统。
回顾全系列:
| 阶段 | 篇目 |
|---|---|
| 起步篇 | 1. 安装 · 2. 架构 · 3. 渠道 |
| 技能篇 | 4. ClawHub · 5. 自定义技能 |
| 记忆篇 | 6. 记忆系统 · 7. 生产级记忆 |
| 自动化篇 | 8. 自动化与多 Agent |
| 安全篇 | 9. 安全最佳实践 |
| 运维篇 | 10. 部署运维 |
| 实战篇 | 11. 实战案例 |
| 检验篇 | 12. 系统体检(本篇) |