
一个月前,我在一台 4G2H 的 AMD VPS 上部署了 OpenClaw。从最初的默认配置,到经历各种坑后的深度优化,现在整理成这篇实战指南。如果你也想搭建一个稳定、安全的 AI Agent 系统,这篇文章能帮你少走很多弯路。
一、架构设计:三层记忆系统
1.1 为什么需要分层?
刚开始我把所有信息都往一个文件里塞,结果 30 天后:
- MEMORY.md 从 20 条膨胀到 100+ 条
- 过期条目堆积如山
- 找关键信息像大海捞针
后来参考了 X 上 @karry_viber 的经验,设计了 P0/P1/P2 三层架构:
L0 (Daily) → memory/2026-03-06.md # 每日工作日志 L1 (Active) → MEMORY.md [P1][日期] # 90天活跃项目 L2 (Core) → SOUL.md/AGENTS.md [P0] # 永久核心规则
1.2 关键教训:日期不是可选的
最开始我觉得 [P1] 标签就够了,结果 janitor(清理脚本)跑了一个月,一条都没删掉——因为它不知道日期,算不出 90 天是多久。
正确格式:
[P1][2026-03-06] AI日报系统重复发布修复 [P2][2026-03-06] 临时调试记录
三层防御机制:
- Prompt 强制要求日期格式
- AGENTS.md 硬规则:"P1/P2 无日期拒绝写入"
- 后处理脚本自动补日期(兜底)
二、权限安全:那些容易被忽视的坑
2.1 credentials 目录:755 → 700
OpenClaw 安装后,credentials 目录默认是 755。安全审计时一堆 WARN:
WARN: Credentials dir is readable by others /root/.openclaw/credentials mode=755
修复:
chmod 700 /root/.openclaw/credentials
就这么简单,但默认安装不会帮你做。
2.2 Python 脚本权限:不是越多越好
一开始我无脑给所有 .py 文件加了执行权限,结果发现:
错误做法:
chmod +x skills/**/scripts/*.py # 包括 __init__.py!
正确做法:
# 有 shebang (#!/usr/bin/env python3) 的才需要 +x chmod +x publish.py chmod +x xxx_writer.py # __init__.py 是模块标记文件,不能有执行权限 chmod -x __init__.py
为什么? __init__.py 是被 Python 解释器导入时读取的,不是被操作系统执行的。给它 +x 没有任何好处,反而是安全隐患。
三、核心配置:2026.3.2 升级后的坑
3.1 tools.profile: minimal → full
升级 2026.3.2 后,OpenClaw 默认把工具权限设成了 minimal。结果是:
exec命令被拒绝web_fetch无法使用- 所有脚本都跑不起来
修复(~/.openclaw/openclaw.json):
{
"tools": {
"profile": "full",
"sessions": { "visibility": "all" }
}
}
教训:升级后第一件事就是检查 tools.profile,默认的 minimal 几乎 unusable。
3.2 plugins.allow: 显式授权
kimi-claw 插件加载时会有 WARN:
loaded without install/load-path provenance
修复:
{
"plugins": {
"allow": ["kimi-claw"]
}
}
四、健康检查:别等出事了才看
4.1 我踩过的坑
- Chrome 僵尸进程:跑了 20+ 个 renderer,内存吃满
- inode 耗尽:小文件过多,df -h 显示正常但写不了文件
- 脚本死链:SKILL.md 引用的脚本早就改名了
4.2 深度健康检查脚本
写了 10 项自动检查,每周日运行:
#!/bin/bash # deep_health_check.sh # 1. credential 权限 (必须 700) # 2. skill 脚本权限 (__init__.py 不能有 +x) # 3. 日志目录存在性 # 4. Python 语法检查 # 5. 磁盘空间 (<80%) # 6. inode 使用 (<80%) # 7. 内存使用 (<80%) # 8. OpenClaw Gateway 进程 # 9. Chrome 进程数量 (<20) # 10. kimi-claw 插件存在
自动修复:权限错误、目录缺失等常见问题自动处理,其他的记录日志告警。
五、数据一致性:单一数据源原则
5.1 问题:同一项目记在 13 个文件里
"AI Daily Digest" 这个项目,同时出现在:
- USER.md(项目定义)
- MEMORY.md(活跃项目)
- TOKEN_OPTIMIZATION_PLAN.md(Token 分析)
- memory/日期.md(9 个日期的历史记录)
后果:更新时总要改 5+ 个文件,总有一个忘改,数据互相矛盾。
5.2 解决:砍到单一数据源
主数据:MEMORY.md [P1] 标签
其他文件:只放指针
<!-- USER.md --> **Project**: AI Daily Digest (详见 MEMORY.md [P1]) <!-- TOKEN_OPTIMIZATION_PLAN.md --> Token 分析对象: AI日报 (详见 MEMORY.md [P1][2026-03-06]) <!-- memory/日期.md --> 今日工作: 优化 AI日报抓取逻辑 (项目定义见 MEMORY.md,这里只记当天具体工作)
六、故障排查:常见错误速查
| 错误信息 | 原因 | 解决 |
|---|---|---|
22 validation errors: 'function' missing |
Gateway 状态不一致 | openclaw gateway restart |
missing tool result in session history |
会话历史损坏 | 忽略,自动修复 |
plugins.allow WARN |
插件未显式授权 | 添加到 openclaw.json |
| Chrome 内存过高 | 僵尸进程 | killall chrome 或重启 |
| 工具权限被拒绝 | profile 为 minimal | 改为 full |
七、Cron 任务管理:定时任务清单
7.1 当前运行的任务
# 系统看门狗 (每5分钟) */5 * * * * /root/watchdog.sh # 记忆清理 (每天4点) 0 4 * * * python3 /root/.openclaw/workspace/scripts/memory-janitor.py # xxxx信息汇总 (每天北京时间9点) 0 1 * * * cd /root/.openclaw/workspace/xxx-news && python3 daily_pipeline.py
7.2 暂停的任务
暂停不必要的任务
# xxx已暂停 (创建 PAUSED.md 标记) # 原因: 筛选率过低,需优化后再启用
八、关键文件备份清单
| 文件 | 重要性 | 说明 |
|---|---|---|
~/.openclaw/openclaw.json |
⭐⭐⭐⭐⭐ | 核心配置 |
~/.openclaw/workspace/MEMORY.md |
⭐⭐⭐⭐⭐ | 活跃项目记忆 |
~/.openclaw/workspace/AGENTS.md |
⭐⭐⭐⭐ | 操作规则 |
~/.openclaw/workspace/SOUL.md |
⭐⭐⭐⭐ | 核心身份 |
~/.openclaw/credentials/ |
⭐⭐⭐⭐⭐ | 加密备份 |
九、快速检查命令
# 系统状态 openclaw status # 深度健康检查 /root/.openclaw/workspace/scripts/deep_health_check.sh # 内存和进程 free -h && ps aux --sort=-%mem | head -10 # 权限检查 ls -la ~/.openclaw/credentials find ~/.openclaw/workspace/skills -name "__init__.py" -executable # Gateway 重启 openclaw gateway restart
总结:五个核心经验
- 权限最小化:credentials 必须 700,
__init__.py不能 +x - 配置显性化:tools.profile 必须 full,plugins 必须显式 allow
- 单一数据源:同一数据只在一处维护,其他文件放指针
- 三层防御:Prompt → 硬规则 → 脚本兜底,防微杜渐
- 定期体检:每周日深度检查,不要等到出事了才修
OpenClaw 不是"搭好了就完事",而是"搭好了才开始"。真正的工作是维护——发现腐化、修复链路、建立检查机制。
如果你也在养一只 🦞,记住:设计完美 ≠ 运行完美,定期体检才能活得久。
未经允许不得转载:主机格调 » 从零搭建 OpenClaw:一位老运维的配置心得与避坑指南
主机格调



