OpenClaw Hooks 支持情况整理

OpenClaw 是开源的 AI 编码助手,提供事件驱动的 Hook 系统,用于在 Agent 命令与生命周期事件触发时自动执行自定义逻辑。本文档整理其目前支持的 Hook 类型、事件、内置实现与 CLI 管理命令。

一、Hook 分类

OpenClaw 将 Hook 分为两大类:

类型说明
Internal Hooks(内部 Hook)运行于 Gateway 内部,监听 Agent 命令与生命周期事件
Webhooks(外部 Webhook)外部 HTTP 入口,允许其他系统主动触发 OpenClaw 工作

二、支持的事件列表

内部 Hook 可订阅以下事件,事件名需严格匹配:

命令类事件

事件名触发时机
command:new用户执行 /new 命令
command:reset用户执行 /reset 命令
command:stop用户执行 /stop 命令
command任意命令的通用监听

会话类事件

事件名触发时机
session:compact:before历史压缩开始前
session:compact:after历史压缩完成后
session:patch会话属性被修改时

Agent / Gateway 生命周期事件

事件名触发时机
agent:bootstrapAgent 启动阶段注入 bootstrap 文件之前
gateway:startupGateway 启动且所有 channel 就绪后

消息处理事件

事件名触发时机
message:received入站 channel 收到消息
message:transcribed消息完成语音转写后
message:preprocessed完成媒体 / 链接富化后
message:sent出站消息发送时

三、内置 Hook

OpenClaw 预置了以下开箱即用的 Hook:

名称作用
session-memory在 /new 或 /reset 时将会话上下文持久化到 <workspace>/memory/
bootstrap-extra-files根据 glob 规则向工作区注入额外的 bootstrap 文件
command-logger将所有命令事件写入 ~/.openclaw/logs/commands.log 审计日志
boot-md在 Gateway 启动时执行 BOOT.md

四、Hook 的目录结构

每个自定义 Hook 为一个目录,包含两个文件:

my-hook/
├── HOOK.md        # 元信息与文档说明
└── handler.ts     # 事件处理逻辑(TypeScript)

OpenClaw 会从约定目录自动发现 Hook,用户只需启用即可。

五、CLI 管理命令

命令作用
openclaw hooks list列出全部已发现的 Hook 及其启用状态
openclaw hooks info <name>查看单个 Hook 的详细信息
openclaw hooks check输出所有 Hook 的可用性 / 资格检查结果
openclaw hooks enable <name>启用指定 Hook
openclaw hooks disable <name>停用指定 Hook
openclaw hooks install <path>从本地路径或 npm 安装自定义 Hook 包
openclaw hooks update --all批量更新已通过 npm 安装的 Hook

六、与 Plugin Hook 的关系

由 Plugin 提供的 Hook 会以 plugin:<id> 形式展示,不能通过 openclaw hooks enable/disable 直接切换,需改为启用 / 停用对应的父 Plugin。

七、参考资料

Comments (0)

No comments yet

imfht
April 15, 2026