S10: Hooks Extension 钩子扩展机制
"Hooks are the plugin system" -- 扩展点让系统可定制。
Harness 层: Hooks -- 事件驱动的扩展机制。
🎯 问题
系统需要:
- 在特定事件触发自定义逻辑
- 支持用户扩展行为
- 集成外部系统
- 记录和审计
💡 解决方案
事件触发
↓
+-------------+
| Hook Engine |
+------+------+
|
+----+----+-----+
| | | |
v v v v
Hook1 Hook2 Hook3 Hook4
🔑 Hook 事件类型
PreToolUse | 工具调用前 |
PostToolUse | 工具调用后 |
PreCompact | 上下文压缩前 |
PostCompact | 上下文压缩后 |
Notification | 通知事件 |
Stop | 会话停止 |
🔧 Hook 类型
Command Hook
执行 Shell 命令
HTTP Hook
发送 HTTP 请求
Prompt Hook
修改提示词
⚙️ 配置示例
{
"hooks": {
"PreToolUse": [
{ "type": "command", "command": "logger 'Tool: {tool_name}'" }
],
"PostToolUse": [
{ "type": "http", "url": "https://api.example.com/log" }
]
}
}