功能
插件托管 hooks 与扩展能力边界
基于最新官方 Plugins 与 Hooks 文档,整理插件托管 hooks 的工作方式、显示位置、启停边界,以及为什么它和独立 hook pack 不是同一种治理对象。
AI 摘要
这页重点
基于最新官方 Plugins 与 Hooks 文档,整理插件托管 hooks 的工作方式、显示位置、启停边界,以及为什么它和独立 hook pack 不是同一种治理对象。
功能
plugins / hooks / automation / extensions / governance
最后更新 2026-03-21,来源 OpenClaw Docs
插件托管 hooks 与扩展能力边界
官方最近的 Plugins 和 Hooks 文档里,一个很值得中文站继续单独讲清楚的点是:
- hooks 不再只存在于独立目录
- 插件现在也可以托管 hooks
这件事非常关键,因为它说明扩展层已经不是“插件归插件、hooks 归 hooks”那么简单,而是开始真正互相组合了。
插件托管 hooks 到底是什么
根据最新官方文档,插件现在可以:
- 在运行时注册 hooks
- 或者从插件目录里加载 hooks
也就是说,插件不只是“加一个命令或一个渠道”,还可以把事件驱动行为一起打包带进系统。
这和独立 hook pack 的区别是什么
更容易理解的边界是:
独立 hook pack
更像:
- 一组可单独治理的 lifecycle 扩展
插件托管 hooks
更像:
- 某个插件能力的附属行为层
这意味着它们虽然都叫 hook,但治理粒度不一样。
为什么它在 openclaw hooks list 里会以 plugin:<id> 出现
官方当前明确说明:
- plugin-managed hooks 会在
openclaw hooks list里显示为plugin:<id>
这件事的价值是:
- 你仍然能看见它
- 但你也能知道它不是独立安装来的 hook
这对排障特别重要,因为它能帮助你分清:
- 问题来自某个独立 hook
- 还是来自某个插件带来的 hook
为什么不能直接用 openclaw hooks 去启停它
这是官方文档里最值得记住的一条边界:
- 你不能通过
openclaw hooks enable/disable直接启停 plugin-managed hooks - 它们跟随插件启停
换句话说:
- 要关 hook,实际是要关插件
这意味着在治理上,plugin-managed hooks 更像插件的一部分,而不是独立资产。
这对团队治理意味着什么
如果你在团队环境里维护扩展,这条边界非常值:
- 独立 hooks 可以按 hook 治理
- 插件托管 hooks 要按插件治理
如果你把这两种东西都按“单个 hook 开关”去想,后面回滚和排错会非常混乱。
更适合什么时候把 hook 放进插件
更适合放进插件的通常是:
- 和插件能力强耦合
- 单独抽出来没有意义
- 必须跟随插件一起启停
例如:
- 某个渠道插件附带的 lifecycle 行为
- 某个 provider/auth 插件附带的注册或审计动作
更适合什么时候做成独立 hook pack
更适合独立 hook pack 的通常是:
- 通用治理逻辑
- 多个插件或多个 agent 都会复用
- 希望单独开关和单独排障
这条边界划清后,扩展层才不容易长成一团。
中文站建议怎么理解这页
如果你在做扩展能力设计,更适合先问自己两件事:
- 这个 hook 是否强依赖某个插件能力
- 出问题时我希望按插件回滚,还是按 hook 回滚
这两个问题的答案,通常就能决定它该放哪一层。
下一步推荐
把这几页连起来看,插件、hooks 和自动化的边界会清楚很多。