| name | hook-governance-layer |
| description | 面向 OpenClaw 的 Hook 治理层技能。用于设计或审计工具前后置 hook、策略注入、附加上下文、阻断与非致命错误处理。 |
Hook 治理层
这是什么
Hook 的职责不是替代 runtime,而是给 runtime 增加治理能力。
也就是说,hook 应该负责:
- 注入策略
- 附加上下文
- 修改可控范围内的输入或输出
- 阻止继续执行
- 记录治理信息
而不应该:
- 偷偷绕过核心权限
- 把工具协议改得面目全非
- 变成一个谁都能塞逻辑进去的混乱层
在 OpenClaw 里何时使用
- 你在设计工具调用前后治理规则
- 你想做统一审计、策略注入、补充上下文
- 你想控制“执行完工具后是否继续推进”
- 你想把外部策略层和工具本体解耦
核心原则
- hook 是治理层,不是执行层。
- pre-hook 可以建议,但不能越过基础权限判断。
- post-hook 应该通过明确字段表达副作用,而不是混在文本里。
- hook 出错默认应可见,但不应轻易拖垮整条流水线。
- continuation control 要显式,不要靠文案猜。
在 OpenClaw 里的典型作用
- 工具执行前增加风险提示或附加上下文
- 统一插入审计信息
- 对某些结果追加后处理
- 在特定条件下阻止继续执行后续推理
- 为 MCP 工具增加治理层补丁,而不改工具本体
设计建议
- pre-hook 只做:
- post-hook 只做:
- 补充信息
- 结果分类
- 阻止继续推进
- 有边界的 MCP 输出修饰
- hook 与 permission 的职责分离:
- hook 负责治理建议
- permission 负责最终放行逻辑
常见失败模式
- hook 一句 allow 直接绕过核心权限。
- 每个 hook 都能修改一切,最后没人知道协议长什么样。
- hook 报错就让整个工具调用失败。
- continuation 行为没有显式字段,只能靠文本猜。
- 非 MCP 工具也被开放了 MCP 专属的输出改写能力。
你可以产出的东西
- 一份 hook 生命周期表
- 一份 pre / post hook 的允许字段清单
- 一份“hook 与 permission 如何合并”的规则说明