OpenClaw 高级篇要解决的就是这个问题:怎么把实习生变成正式员工。正式员工需要四样东西——岗前培训(Skill)、工作 SOP(Hook)、系统权限(MCP)、以及独立负责项目的能力(自主任务)。每个方向一个核心概念加一个杀手级案例,拆开来看。
Skill:给 Agent 装上业务知识
你每天告诉 Agent 日报格式:先写完成的工作、再写重要决策、最后写明天计划。说了五十遍,换个 session 又忘了。不是它笨,是你教的东西全存在对话里——session 一断就没了。
Skill 本质上就是一个 SKILL.md 文件,放在 skills/ 目录下。Agent 启动时扫描这个目录,识别触发词,匹配到就把内容注入 context。
它和 AGENTS.md 的区别很关键:AGENTS.md 是通用工作规范,每次 session 都加载;Skill 是特定业务流程,按触发词按需加载。一个管工作态度,一个管业务知识。
案例:日报 Skill
没有 Skill 时,你每天要输入五十个字的指令描述格式。有了 Skill,创建 ~/.openclaw/skills/daily-report/SKILL.md:
---
name: daily-report
description: >
Generate daily work reports by reading memory files and summarizing activities.
Triggers: "daily report", "日报", "今天做了什么", "工作总结".
---
# Daily Report Skill
When triggered:
1. Read today's memory file (memory/YYYY-MM-DD.md)
2. Extract key activities, decisions, and issues
3. Format as:
- 完成的工作
- 重要决策
- 遇到的问题
- 明天计划
从此你只需要说三个字:写日报。五十个字变三个字,而且不管换多少次 session,格式永远一致。
记住一句话:Skill 管知道什么,Hook 管自动做什么,MCP 管能做什么。
Hook:给 Agent 装上反射弧
每次开新 session 你都要说「先看一下今天的计划」。说了一百遍终于想明白——你是老板,不是提词器。
Hook 就是 Agent 的膝跳反射。特定事件发生时,代码直接跑,不经过 LLM 思考,不需要它"决策"要不要执行。
这和 Skill 是两个层面。Skill 是给 Agent 一本操作手册——它可能看可能不看,看了也可能理解偏。Hook 是装了一个传感器加执行器——事件一来代码直接跑,100% 确定执行。一个是建议,一个是铁律。
Hook 的目录结构很简单:
my-hook/
├── HOOK.md # 声明监听什么事件
└── handler.ts # 事件触发时跑什么代码
案例:新 session 自动加载今日计划
创建 hooks/session-loader/HOOK.md:
---
name: session-loader
description: "新 session 自动加载今天的工作日志"
metadata:
openclaw:
events: ["command:new"]
requires:
bins: ["node"]
---
创建 hooks/session-loader/handler.ts:
import { readFileSync, existsSync } from "fs";
import { join } from "path";
const handler = async (event) => {
if (event.type !== "command" || event.action !== "new") {
return;
}
const memoryDir = join(process.cwd(), "memory");
const today = new Date().toISOString().split("T")[0];
const diaryPath = join(memoryDir, `${today}.md`);
if (existsSync(diaryPath)) {
const content = readFileSync(diaryPath, "utf-8");
event.messages.push(`今天的工作日志已加载:\n${content}`);
} else {
event.messages.push("今天还没有工作日志,开始新的一天");
}
};
export default handler;
效果:打开新 session,Agent 已经知道今天要做什么。「先看一下今天的计划」这句话从此从你的工作流里消失了。
别被 TypeScript 吓到。你不需要会写代码,只需要定义清楚「在什么时机做什么事」——这是 trigger + action 的问题,本质上是产品经理天天在做的事。让 Agent 帮你写 handler.ts 就行。
Hook 的进阶场景也很有想象力:
- 监听 compact 事件:context 被压缩前自动保存任务状态,压缩后自动恢复
- 监听 write 操作:拦截危险的文件覆盖
- 配合 Heartbeat:每次心跳自动检查未完成任务
从「你提醒 Agent」变成「Agent 自己知道」——这就是反射弧的力量。
MCP:AI 世界的 USB 接口
Agent 默认只会两件事:思考和对话。你想让它查数据库,做不到;想让它操作特定目录,也做不到。得给它接外设。
MCP(Model Context Protocol)就是 AI 世界的 USB 接口。不管什么外部服务——数据库、搜索引擎、文件系统、浏览器——只要支持 MCP 协议就能接上去。不需要为每个服务写专用对接代码,就像 USB 统一了所有外设接口一样。
架构一句话说清:Agent → mcporter(桥梁)→ MCP Server → 外部服务
案例:一条配置接上文件系统
在 config/mcporter.json 里写:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "/server-filesystem", "/tmp/mcp-test"]
}
}
}
三行配置。最后那个路径是安全边界,限制 Server 只能读写这个目录——和给 App 设权限一个道理。
配好后验证:
mcporter list
# 看到 filesystem Server 和它暴露的工具就说明成功了
mcporter call filesystem read_file path=/tmp/mcp-test/test.txt
# 读取测试文件
之后在对话中直接说「帮我用 MCP 读取 /tmp/mcp-test 下的文件」,Agent 会自动走 mcporter 调用。
没接 MCP 的 Agent 只会聊天,接了 MCP 的 Agent 能用工具干活。
MCP 生态已经很丰富了:文件系统、PostgreSQL/SQLite、Brave Search、Puppeteer 浏览器自动化、持久化记忆……一个接口,无限外设,每个新 Server 只需要在 mcporter.json 加几行配置。
不过有一点要说清楚:不要为了用 MCP 而用 MCP。简单的文件读写 Agent 自带工具就够了,MCP 适合的是需要接外部 API、需要标准化多个外部服务调用方式的场景。
自主任务:从指令驱动到目标驱动
这是中级篇到高级篇最大的认知升级。
指令驱动:你给步骤,Agent 执行——你说第一步搜 GitHub,它搜了,然后等你说第二步。目标驱动:你给目标,Agent 自己拆解子任务、规划执行顺序、判断完没完成。
实现目标驱动需要三个基础设施:
- 计划文件——Agent 自己创建和更新,不是你替它写
- Heartbeat——每 30 分钟推醒 Agent,让它检查有没有事要做
- AGENTS.md 规则——告诉 Agent 遇到目标型任务怎么拆解、执行、评估
实战案例:一句话驱动 6 步调研
给 Agent 一个目标:完成高级篇 6 个方向的素材采集。只说了一句话:「按照素材采集 prompt 里的 6 个方向,逐个完成调研和实战。」
Agent 自己做了这些事:
- 读取目标文档,理解 6 个方向的具体要求
- 自己创建计划文件
temp/advanced-material-plan.md - 把 6 个方向拆成 6 个阶段,每个阶段有明确产出物
- 从第一个方向开始执行——搜索文档、实战测试、记录踩坑
- 每完成一个阶段自动更新计划文件进度
- Heartbeat 定期检查,确保 Agent 没忘记自己在做什么
中间 context 被压缩了两次,跨了三个 session。但每次新 session 开始,Agent 读取计划文件接着上次进度继续,没丢任何进度。最终产出 5 份素材文件,加起来超过 160KB。
说白了,中级篇教的计划文件 + Heartbeat 是基础设施,高级篇的自主任务是在基础设施上搭建自主性。中级篇你手动创建计划文件让 Agent 执行,高级篇 Agent 自己创建计划文件自己执行。
当然不是所有任务都适合目标驱动——简单的事直接给指令更快。但当任务复杂到你自己都不确定该分几步的时候,让 Agent 试试。
四件装备串起来看
- Skill 让它懂业务
- Hook 让它按规矩
- MCP 让它用工具
- 自主任务 让它独立干活
从中级到高级,不是学了四个新概念,而是把之前养出来的能力用起来了:中级篇的搜索策略变成了高级篇的 MCP 工具选择,计划文件变成了自主任务,Heartbeat 加上 Hook 让所有手动操作变成全自动。
如果你还在每天给 Agent 重复同样的指令,先从一个最简单的 Skill 开始——把你说得最多的那句话变成一个触发词。这一步做完,你会突然理解为什么说 Agent 不是工具,而是员工。