中级篇教程已经帮你攻克了三大棘手难题:信息记不住、资源找不到、连接频繁断。

但经过一段时间的使用,你可能会发现——虽然 agent 变得越来越“聪明”,但你依然需要一步步下达指令。就像你悉心培养的实习生,记忆力好、搜索速度快、永远不会掉线。问题是,每一件事都要你指挥,你说一步,他才动一步。
高级篇要解决的正是这个瓶颈:让实习生成长为能够独当一面的正式员工。
那么,一个合格的正式员工需要具备哪些能力?
首先需要一份岗前培训(Skill),让它真正理解你的业务逻辑。然后是一套完整的标准作业程序(Hook),确保它能按规则自动执行任务。还需要系统权限(MCP),让它能调用公司内部的各项工具资源。最关键的一步,是独立负责项目(自主任务),让它能够自动完成工作流程。 坦白说,这个话题确实比较复杂,所以我们将每个方向讲透核心概念,并搭配一个极具实操性的案例。一、Skill:给 AI Agent 做岗前培训
回想一下,你每天是不是都要反复告诉 agent 日报格式:先列出完成的工作,再写重要决策,最后是明天的计划。说了不下五十遍,可换个 session 它又忘得一干二净。 这并非 agent 不聪明,问题出在哪里?你教的内容全部存储在临时的对话记录里,session 一断就全部清空。 Skill 到底是什么?一句话就能讲清楚:Skill 就是一份永久生效的培训手册,装进去之后就永远不会遗忘。它的本质是一个SKILL.md文件,放在 skills/ 目录下。agent 启动时会自动扫描这个目录,一旦识别到触发词,就会把SKILL.md的内容注入到当前的上下文中。 这和 AGENTS.md 有什么区别?区别很大。AGENTS.md是通用工作规范——比如如何写文件、如何搜索资料、遇到错误如何记录。无论你在做什么,它都会每次都加载。而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:
- 完成的工作
- 重要决策
- 遇到的问题
- 明天计划
```
从此,你只需要说三个字:写日报。agent 匹配到触发词,自动加载 SKILL.md,知道该读什么文件、用什么格式、如何输出。五十个字变成三个字,效率提升就是这么直接。而且无论切换多少个 session,输出格式始终保持一致。
当然,Skill 不是孤立存在的,它与 Hook、MCP 共同组成完整的 agent 增强体系。先做一个预览,后面每个方向我们都会详细展开:Skill 管知道什么,Hook 管自动做什么,MCP 管能做什么。这句话非常重要,后面会反复出现。
二、Hook:为 AI Agent 设置 SOP
每次开启新 session 你都要说一遍:“先看一下今天的计划和日记。”说了一百遍之后,你可能终于想明白一个道理:这件事情不应该由你来记忆。 说到底,你是管理者,不是提词器。没道理每次开会前都要你去提醒秘书翻开笔记本——这件事本身就应该是自动化的。 那么,Hook 是什么?直白地说,Hook 就是 agent 的反射弧。就像膝跳反射一样——锤子敲膝盖,腿自动弹起来,信号经过脊髓,根本不经过大脑。Hook 就是这样的原理:特定事件发生时,代码直接运行,不经过 agent 思考,也不需要 LLM 来决策。 这和 Skill 完全是两个层面:Skill 是给 agent 一本操作手册,它可能会看也可能不看,看了之后也可能理解偏差。但 Hook 就像是安装了传感器加执行器,事件一来,代码直接运行,100% 确定执行。 这里有一个关键区别:Hook 运行的是 TypeScript 代码,而不是 LLM 的决策。一个是建议,一个是铁律。你可以想象一下,跟员工说“每天早上先看邮件”,他可能会忘记。但如果你给他制定了标准作业程序,再配上闹钟提醒,他想忘都忘不了。 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 启动,Hook 自动触发,handler.ts 运行起来,agent 就已经把今天的计划读取完毕。你直接坐下来开始工作,一句多余的话都不用说。