OpenClaw保姆级教学(中级篇):从能用变为好用
很多人刚安装上OpenClaw第一个问题就是:为什么这么傻?背后原因是「能用」到「好用」之间差了三件事:记得住、找得到、断不了。
前言
很多人刚安装上OpenClaw第一个问题就是:为什么这么傻?
和传说中的怎么不一样?
其实背后的原因,既不是模型问题,也不是prompt问题。
是**「能用」到「好用」**之间差了三件事:
- 记得住
- 找得到
- 断不了
我把踩过的所有坑总结成了一套方法论,一件一件说。
一、记得住——记忆体系
你让Agent帮你学React,聊了一下午,它记住了你的进度、踩过的坑,下一步该学什么。
过几天你再问他,它全忘了——你是谁、学到哪了、昨天聊了什么,全部从零开始。
你得重新教它一遍,而且你也不知道为什么会这样。
每天花10分钟重复教Agent,一个月就是5个小时,全浪费了。
我的方案:三层记忆模型
| 层级 | 名称 | 存储位置 | 作用 |
|---|---|---|---|
| Tier 1 | 信息层 | memory/learning/ | 原始记录,只追加不删除 |
| Tier 2 | 知识层 | memory/YYYY-MM-DD.md | 每日提炼,工作日志 |
| Tier 3 | 智慧层 | MEMORY.md | 长期记忆,100行以内 |
灵感来自人类的记忆方式——你不会记住每天看过的所有文字,但你会记住提炼后的知识点,最终形成底层的思维模式。
7个核心文件
| 文件 | 职责 |
|---|---|
AGENTS.md | 怎么工作(工作流程、操作规范) |
SOUL.md | 我是谁(人格特质、核心原则) |
USER.md | 我服务谁(用户偏好、决策模式) |
TOOLS.md | 怎么操作(工具手册、配置说明) |
MEMORY.md | 我记得什么(长期记忆、方法论) |
ERRORS.md | 我在哪里失败过(错误记录、避坑指南) |
SHARED.md | 团队共识(多Agent共享信息) |
核心原则:一个信息只存一个地方。
血的教训
之前踩过的大坑——我的学习笔记 345KB / 8509行,被一次cron任务的write操作直接覆盖成了 9.9KB。
原因是我让Agent追加内容到文件,但模型选了write而不是edit。
- write = 覆盖整个文件内容
- edit = 在指定位置追加
一个月的学习记录几乎全丢。
从此定下铁律:写入已有文件永远用edit追加,绝不用write覆盖。
这条规则现在写在每个Agent的ERRORS.md和SHARED.md里,所有Agent启动就知道。
Heartbeat:动态吸纳机制
Heartbeat是OpenClaw的定时触发机制,默认每30分钟执行一次。
记忆的动态吸纳不能光靠OpenClaw本身带的机制,需要更主动的整理。
我的做法:设置每6小时进行一次记忆深化整理,一天4次刚好覆盖工作时段。
整理流程:
- 读取最近的日志文件
- 提炼到MEMORY.md/USER.md/ERRORS.md
- 清理过时信息
效果
搭好这套记忆体系之后,你的Agent能做到什么?
→ 学习场景:你昨天学到React Hooks第三章,今天Agent自动知道,接着第四章学习
→ 工作场景:你的代码风格偏好、项目架构约定,Agent永远记得,不用每次重复说
→ 团队场景:新建一个Agent,它自动读取ERROR.md,第一秒就知道团队所有规矩和踩过的坑
不是Agent变聪明了,是你给了它一个不会丢的大脑,这才是OpenClaw的灵魂。
二、找得到——搜索决策树
记忆搭好了,但Agent还是会在搜索上反复栽跟头。
先说我当时有多混乱——OpenClaw里搜索工具一大堆:web_fetch、curl、browser,还有各种第三方的。
每次让Agent抓个网页,它就开始乱试:
- 用web_fetch → 失败(SSRF拦截了)
- 试图改配置绕过 → 系统异常
- 换curl → 成功了
同一个坑,Agent A踩了,Agent B还会再踩一遍。 每次搜索任务光试错就要花5-10分钟,浪费30-50%的Token。
关键认知
不要试图改底层配置,要建备用方案。
当时我试图在openclaw.json里加dangerouslyAllowPrivateNetwork来绕SSRF,不但没用,还搞出了系统异常。后来才知道SSRF保护是硬编码的,配置根本改不了。
转折点是我发现了一个免费的全网搜索工具,装上之后自动变成OpenClaw Skill,所有Agent直接可用。
全网语义搜索、网页阅读、YouTube字幕提取,全部免费,不需要API Key。
搜索决策树
第一步判断:是否需要JS渲染或登录态?
| 情况 | 方案 |
|---|---|
| 需要JS渲染/登录 | 用browser |
| 不需要 | 用指定免费工具 |
| 工具失败 | 按错误类型切换:SSRF拦截用curl,其他错误用web_fetch,都失败才上browser |
特殊规则:
- GitHub搜索只能用browser
- B站IP被封只能用browser
- 自己的仓库用gh CLI
效果
- 搜索任务从5-10分钟试错 → 不到1分钟直接命中
- Token开销砍了一半
最有价值的不是决策树本身,而是背后的思路——我把它写进了SHARED.md。
所有Agent启动时自动读取,踩过的坑,新建Agent第一秒就知道。
一个人踩过的坑,其他人不用再踩。
三、断不了——计划文件模式
记得住、找得到,但还有一个几乎没人提过的隐蔽问题。
你有没有遇到过这种情况:Agent在做一个复杂任务,做到一半突然问你——你让我做什么来着?
你以为是bug,重启了session,让它重新开始。又做到一半,又忘了。
不是bug,是OpenClaw的正常机制——context窗口有限,对话太长就会自动压缩,删掉旧的对话和工具结果来释放Token。
如果你的任务状态只存在对话里,压缩一次就全丢了。
解法
收到复杂任务时,先创建一个计划文件:temp/任务名-plan.md
文件结构:
目标(一句话)
步骤列表(带checkbox)
当前进度
遇到的问题
下一步
每完成一步就更新文件,打勾。
Context被压缩时,文件不受影响——新session开始读取计划文件,接着上次的进度继续。
效果
你晚上睡觉,Agent在跑一个20步的任务。中间context压缩了3次,跨了2个session。
早上起来,它读完计划文件,接着昨天的第15步继续干,中间没丢任何进度。
你睡了一觉,Agent帮你干了一夜的活。
本质上这就是把短期记忆(context)里的关键状态,外化到长期存储(文件)里。
和三层记忆模型的逻辑一样:重要的东西不能只存在会消失的地方。
总结
三个模块讲的是三件事,但底层是同一个道理:
| 问题 | 解决方案 |
|---|---|
| 记得住 | 三层记忆模型 + 7个核心文件 |
| 找得到 | 搜索决策树 + SHARED.md |
| 断不了 | 计划文件模式 + Heartbeat |
中级篇完整内容:
- 记忆架构:7种信息实时写入规则 + 每个文件的配置模板 + Heartbeat完整代码
- 搜索与决策:决策树每个分支的参数配置 + 6层产品思维模型
- 协作机制:SHARED.md完整模板 + 广播代码 + 计划文件自动化
- 实战:4个完整场景演示 + 各工具详细用法 + 8个Q&A
一共13个主题,每个都有代码块和配置可以直接抄。
高级篇方向:自定义Skill开发、MCP集成、STATE.yaml项目管理、目标驱动自主任务、性能优化和hook应用