生命周期 Hooks

v0.7.2 起,Zagens 可在 Agent 生命周期节点运行用户定义的 shell 命令 — 用于审计、策略注入、环境变量或与企业脚本集成。

在哪里配置

入口 作用
设置 → Hooks 编辑全局 ~/.zagens/config.toml 中的 [hooks];保存后重启 sidecar
项目目录 {workspace}/.zagens/hooks.toml.zagens/hooks.json.cursor/hooks.json

合并顺序: 全局 config → 项目 TOML → 项目 JSON → Cursor hooks;项目条目追加在全局之后。

常见事件

事件 阻塞? 触发时机
session_start / session_end 会话开始 / 结束
message_submit 用户消息送入模型前
tool_call_before / tool_call_after 前阻塞 / 后否 工具执行前 / 后
shell_env 每次 exec_shell 前;stdout 合并为环境变量
pre_compact / post_compact 上下文压缩前 / 后
subagent_start / subagent_end 前阻塞 / 后否 子代理 spawn 前 / 结束

支持 Cursor 风格别名(如 beforeShelltool_call_before + exec_shell 过滤)。

阻塞 vs 后台

输入输出

同步 hook 从 stdin 接收 JSON 上下文(会话 id、工具名、工作区等),从 stdout 返回 JSON 动作(allow / deny / modify 等)。详见产品仓库 docs/desktop/HOOKS.md

示例用途

建议

相关:定时任务 · Shell 工具 · CRAFT