
本系列第十七篇:从“会写说明书”到“能改执行引擎”——打通 Skill、Hook、Plugin 三条脉络,构建真正的扩展能力
欢迎回到 OpenClaw 系列教程。经过前面十六篇的沉淀,你已经掌握了 OpenClaw 的核心安装、模型配置和基础 Skill 开发。你的“龙虾”已经从“空壳”变成了“有虾钳、有大脑、有记忆”的智能体。
但如果你是一个深度用户或团队协作开发者,很快就会遇到一个瓶颈:单个 Skill 能做的事情终究有限。
你想让 AI 在调用所有工具之前先做一次安全检查,想在模型生成回复之前注入特定的系统提示词,想把多个 Skill 打包成一个可复用的插件在团队中分发——这些都不是纯 Markdown 能解决的问题。
这正是 OpenClaw 三层扩展体系的用武之地。Skill、Hook、Plugin 三者看似都能“扩展”系统,实则分属不同层级、承担不同职责。混用会导致系统臃肿、冲突频发、维护困难。
本文将彻底理清 OpenClaw 三层扩展的边界与分工,提供 Skill(策略层)、Hook(拦截层)、Plugin(系统层)三个层级的完整开发模板,帮助开发者根据需求选择合适的扩展方式,构建稳定、安全、可维护的自定义扩展。
一、三层架构:从“策略”到“流程”再到“系统”
OpenClaw 的扩展体系采用分层架构,从上层到下层依次为 Skill(策略层)→ Hook(拦截层)→ Plugin(系统层) ,每层各司其职、互不越界,共同构成完整的扩展生态。
用一句话概括三层的关系:Skill 教 AI 怎么做事(策略),Hook 在运行时拦截并调整流程(控制),Plugin 把新能力注入系统内核(注册)。
1.1 Skill(策略层):教 AI“怎么做事”
Skill 不是代码实现,而是告诉 Agent 如何使用能力的规则集合,相当于 AI 的操作手册与工作流定义。
- 核心作用:定义能力边界、使用条件、调用步骤、优先级规则
- 适合场景:组织现有工具、规范 Agent 行为、设定任务执行逻辑
- 本质:纯策略层,无系统级注册,不修改运行流程
- 技术形态:Markdown 文件 + YAML frontmatter
- 示例:让 Agent 优先用 pnpm、规定搜索后必须生成摘要、限定社交媒体工具仅读取不发布
1.2 Hook(拦截层):在运行时“卡位”调整流程
Hook 是嵌入 Agent 生命周期的逻辑切点,在特定时机插入自定义代码,不新增能力只调整流程。
- 核心作用:拦截/修改 prompt、监听事件、调整运行参数、补充上下文
- 适合场景:在模型调用前注入规则、在工具执行前后做校验、修改系统提示词
- 本质:流程控制层,基于事件触发,不注册新功能
- 技术形态:TypeScript 脚本 + HOOK.md 元数据
- 关键生命周期:
before_model_resolve、before_prompt_build、before_agent_start等
1.3 Plugin(系统层):把新能力“注册”进内核
Plugin 是真正把能力注入 OpenClaw 内核的系统模块,负责注册新功能、服务、接口,是所有扩展的载体。
- 核心作用:注册 tool、HTTP 路由、CLI 命令、后台服务、RPC 方法、模型 Provider
- 适合场景:新增原生不支持的能力、对接外部系统、修改内核行为、提供全局服务
- 本质:能力注册层,唯一能真正扩展系统边界的模块
- 技术形态:TypeScript 包 + openclaw.plugin.json 清单
- 承载对象:可包含 Skill、Hook、Tool、Service 等所有扩展类型
💡 极简判断口诀(来自社区公认最实用的选择指南):
- 只教 Agent 怎么做事 → 用 Skill
- 只改运行时流程 → 用 Hook
- 要加新功能/新服务 → 用 Plugin
二、Skill 开发速成:策略层
Skill 是三层中最上层、也最容易上手的扩展方式。第 16 篇我们已经详细讲解了 Skill 的开发流程,此处仅作快速回顾,方便对比三层差异。
2.1 Skill 的核心定位
Skill 解决的是“方法问题”——Agent 在某类任务里怎么做更稳,如何复用一套提示、步骤和工作习惯,如何把常见任务沉淀成可调用的能力块。
Skill 只改变 Agent 的思考方式,不改变其执行范围。它让 Agent“更会做”,而不是“能做更多”。
典型适用场景:
2.2 Skill 的技术实现(极简版)
Skill 只需一个带 YAML frontmatter 的 Markdown 文件:
markdown
— name: weather_query descriptio
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/267243.html