
中级篇解决了三个问题:记不住、找不到、断不了
但你可能发现——agent 变聪明了,你还是得一步步告诉它做什么
就像你培训了一个实习生,记忆力好、搜索快、不掉线。但每件事还是要你下指令,你说一步他走一步
高级篇要解决的就是这个问题:让实习生变成正式员工
正式员工需要什么?
岗前培训(Skill)——让它懂你的业务工作
SOP(Hook)——让它自动按规矩办事
系统权限(MCP)——让它能用公司的工具
独立负责项目(自主任务)——让它自己干活
由于确实比较复杂,所以我们每个方向讲透核心概念 + 一个杀手案例
一、Skill——给员工做岗前培训
你每天告诉 agent 日报格式:先写完成的工作、再写重要决策、最后写明天计划
说了五十遍,换个 session 又忘了
不是 agent 不聪明,是你教的东西全存在对话里——session 断了就没了
本质问题:对话里教的东西是临时的
Skill 是什么?
一句话:Skill = 给 agent 的培训手册,装进去就永久生效
它的本质是一个SKILL.md文件,放在 skills/ 目录下。agent 启动时扫描这个目录,识别触发词,匹配到就把SKILL.md的内容注入到 context 里
和 AGENTS.md有什么区别?
AGENTS.md是通用工作规范——怎么写文件、怎么搜索、犯了错怎么记录。每次 session 都加载,不管你干什么
Skill 是特定业务流程和知识——你的日报格式长什么样、你的代码规范是什么、你的搜索工具怎么用。只在需要的时候加载,按触发词匹配
AGENTS.md 管的是工作态度,Skill 管的是业务知识
或者说——Skill 管「知道什么」
杀手案例:一个日报 Skill
没有 Skill 的时候,每次写日报你要说一大段:
帮我写今天的日报,格式是这样的:先列今天完成的主要任务,然后是重要决策,再是遇到的问题和解决方案,最后是明天的计划
去读今天的 memory 文件提取内容
五十个字的指令,每天说一遍
有了 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:
– 完成的工作
– 重要决策
– 遇到的问题
– 明天计划
—
名称:每日报道
描述:>
通过阅读记忆文件和总结活动来生成每日工作报告。
触发词:“每日报告”、“日报”、“今天做了什么”、“工作总结”。
—# 每日报告技能
触发时:
1. 读取当天的内存文件(memory/YYYY-MM-DD.md)
2. 提取关键活动、决策和问题
3. 格式为:
– 完成的工作
– 重要决策
– 遇到的问题
– 明天计划
从此你只需要说三个字:写日报
agent 匹配到触发词,自动加载SKILL.md,知道该读什么文件、用什么格式、怎么输出
五十个字变三个字。而且不管换多少次 session,格式永远一致
Skill 不是单独存在的,它和 Hook、MCP 组成了一套完整的 agent 增强体系
先做个预览,后面每个方向会详细展开:

Skill 管知道什么,Hook 管自动做什么,MCP 管能做什么
记住这句话,后面反复会用
完整的 Skill 开发教程——从目录结构到触发机制到踩坑记录——在高级的完整篇中
二、Hook——给员工定 SOP
每次开新 session 你都要说一遍:先看一下今天的计划和日记
说了一百遍,终于想明白一件事——
这件事不应该由我来记
我是老板,不是提词器。我不应该每次开会前提醒秘书翻开笔记本——这件事应该是自动的
Hook 是什么?Hook = agent 的反射弧
什么是反射弧?膝跳反射。锤子敲膝盖,腿自动弹,信号走脊髓,不经过大脑
Hook 就是这个东西——特定事件发生时,代码直接跑,不经过 agent 思考,不需要 LLM 决策
这和 Skill 是两个层面:
Skill 是给 agent 一本操作手册——它可能看可能不看,看了也可能理解偏了Hook 是装了一个传感器加执行器——事件一来,代码直接跑,100% 确定执行
关键区别:Hook 跑的是 TypeScript 代码,不是 LLM 决策
一个是建议,一个是铁律。你给员工说「每天早上先看邮件」,他可能忘。你给他定个 SOP 配上闹钟提醒,他想忘都忘不了
Hook 的结构也很简单:
my-hook/
├── HOOK.md # 声明监听什么事件
├── handler.ts # 事件触发时跑什么代码
HOOK.md告诉系统「我叫什么名字、监听哪些事件」
handler.ts 告诉系统「事件来了具体干什么」
依旧案例:一个 Hook 让 agent 自动读今天的计划
每次开新 session,你想让 agent 自动读取今天的日记文件——不用你说
创建 hooks/session-loader/HOOK.md:
—
name: session-loader
description: “新 session 自动加载今天的工作日志”
metadata:
openclaw:
events: [“command:new”]
requires:
bins: [“node”]
—
—
名称:会话加载器
描述:“新 session 自动加载今天的工作日志”
元数据:
事件:[“命令:新”]
要求:bins: [“节点”]
—
创建 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(`今天的工作日志已加载:
${content}`);
} else {
event.messages.push(“今天还没有工作日志,开始新的一天”);
}
};
export default handler;
从 “fs” 导入 { readFileSync, existsSync };
从 “path” 导入 { join };
const handler = 异步(事件) => {
if (event.type !== “命令” || event.action !== “new”) {
返回;
}
const memoryDir = join(process.cwd(), “memory”);
const today = new Date().toISOString().split(“T”)[0];
const diaryPath = join(memoryDir, ‘${today}.md’);
如果 (existsSync(diaryPath)) {
cont content = readFileSync(diaryPath, “utf-8”);
event.messages.push(’今天的工作日志已加载:
${content}’);
} 否则 {
event.messages.push(“今天还没有工作日志,开始新的一天”);
}
};
导出默认处理程序;
效果:你打开一个新 session,agent 已经知道今天要做什么了
不用你说「先看一下今天的计划」——这句话从此从你的工作流里消失了
你不需要会 TypeScript。把需求描述清楚——「在什么时机做什么事」——让你的 agent 帮你写 handler.ts 就行
核心能力不是写代码,是定义清楚 trigger + action。这是 PM 天天在做的事
进阶场景
Hook 能做的远不止加载日记:
- 监听 compact 事件:context 被压缩前自动保存任务状态,压缩后自动恢复——中级篇的计划文件模式,用 Hook 变成全自动
- 监听 write 操作:拦截危险的文件覆盖——345KB 事故不会再发生
- 配合 Heartbeat:每次心跳自动检查有没有未完成的任务
从「你提醒 agent」变成「agent 自己知道」——这就是 反射弧 的力量
几种实用 Hook 配置模板 + 完整踩坑记录在在高级完整篇中
三、MCP——给员工开系统权限
你想让 agent 帮你查数据库里的数据,它说:我没有这个能力
你想让它帮你操作文件系统里的特定目录。它说:我做不到
agent 默认只会两件事:思考和对话。其他什么都不能做
你得给它接外设
MCP 是什么?MCP = Model Context Protocol
一句话:AI 世界的 USB 接口
不管什么外部服务——数据库、搜索引擎、文件系统、浏览器——只要支持 MCP 协议,就能接到你的 agent 上
你不需要为每个服务写专用的对接代码。就像 USB 统一了外设接口——不管你是打印机还是摄像头,同一种插头
学会了 USB,以后不管插什么设备都不用重新学。MCP 也一样
架构很简单:
Agent → mcporter(桥梁)→ MCP Server → 外部服务
mcporter 是中间件,负责 agent 和 MCP Server 之间的通信。OpenClaw 内置了 mcporter 的 skill,agent 知道怎么调用它
配置文件在 config/mcporter.json——每个项目可以接不同的外部服务
杀手案例:一条配置让 agent 读写文件系统
最简单的 MCP Server 是文件系统——不需要任何 API key,纯本地跑
在 config/mcporter.json 里写一段配置:
{
“mcpServers”: {
“filesystem”: {
“command”: “npx”,
“args”: [“-y”, “@modelcontextprotocol/server-filesystem”, “/tmp/mcp-test”]
}
}
}
{
“mcpServers”: {
“filesystem”: {
“命令”:“NPX”,
“args”: [“-y”, “@modelcontextprotocol/server-filesystem”, “/tmp/mcp-test”] }
}
}
三行就够了。意思是:启动一个文件系统 MCP Server,只允许它访问 /tmp/mcp-test 目录
最后那个路径是安全边界——限制 Server 只能读写这个目录下的文件。和给 app 设权限一个道理
配好之后验证一下:
mcporter list
# 看到 filesystem Server 和它暴露的工具就说明成功了
mcporter call filesystem read_file path=/tmp/mcp-test/test.txt
# 读取测试文件
在 agent 对话中你可以直接说「帮我用 MCP 读取 /tmp/mcp-test 下的文件」——agent 会自动走 mcporter 调用
没接 MCP 的 agent 只会聊天
接了 MCP 的 agent 能用工具干活
这就是「开系统权限」的意思
生态
MCP 不只是能接文件系统。官方和社区已经有大量现成的 Server:
- 文件系统(本地文件读写)
- PostgreSQL / SQLite(数据库查询)
- Brave Search(搜索引擎)
- Puppeteer(浏览器自动化)
- Memory(持久化记忆)
一个 USB 接口,无限外设。配一个新 Server 只需要在 mcporter.json 里加几行配置——流程和上面的文件系统一模一样
不要为了用 MCP 而用 MCP。简单的文件读写 agent 自带工具就行,MCP 适合的是需要接外部 API、需要标准化多个外部服务调用方式的场景
四、自主任务——给员工独立负责项目
你说:帮我做一个社区趋势调研,Agent 说:好的,第一步是什么?
它在等你指挥
你说第一步搜索 GitHub,它搜了。然后等你说第二步
你说第二步搜索 Reddit,它搜了。然后又等你
你想要的不是这样。你想给它一个目标,它自己拆解步骤、自己执行、自己判断完没完成
你说一步它走一步——这是实习生
你给目标它自己干——这才是正式员工
核心概念:从指令驱动到目标驱动
这是中级篇到高级篇最大的认知升级
指令驱动:你给步骤,agent 执行。中级篇教的计划文件模式就是这个——你手动创建计划、列出步骤、agent 按步骤走
目标驱动:你给目标,agent 自己拆解为子任务、自己规划执行顺序、自己判断有没有完成
实现这个需要三个基础设施,中级篇其实都教过了:
- 计划文件——agent 自己创建和更新,而不是你替它写
- Heartbeat——每 30 分钟推醒 agent,让它检查有没有事要做
- AGENTS.md规则——告诉 agent 遇到目标型任务怎么拆解、怎么执行、怎么评估
杀手案例:给一个目标,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 加入决策树)
中级篇的计划文件 → 高级篇的自主任务(agent 自己创建和更新计划)
中级篇的 Heartbeat → 高级篇的自动化(Hook 让所有手动操作变成自动的)
基础篇教你装上能用,中级篇教你养好好用,高级篇教你落地真正干活