用途
ac-hooks-manager 用于为自主编码安装和管理 Claude Code 的钩子(Hook),使 Claude Code 能够持续自主运行,而不仅完成单次响应后停止。它覆盖自主运行所需的全部钩子类型。
主要能力
工具管理四类钩子:
- Stop Hook(自主继续):核心创新。拦截 Claude Code 的停止事件,实现自主继续。
- PreToolUse Hook(安全校验):在工具调用前进行安全验证。
- PostToolUse Hook(结果处理):处理工具调用结果,例如格式化。
- SessionStart/End Hook(状态管理):会话开始与结束时管理状态(如加载/保存记忆)。
Stop 钩子工作原理
- Claude Code 完成一次响应。
- Stop 事件触发(钩子接收 JSON 输入)。
- 钩子脚本执行:检查 stop_hook_active(防止无限循环)、检查迭代/成本限制、调用 Opus 分析器做出决定。
- 返回决定:
- CONTINUE:退出码 2 + reason → Claude 继续(输出 decision 为 block)。
- COMPLETE:退出码 0 → Claude 停止(输出 decision 为 approve)。
Stop 钩子输入包含 session_id、transcript_path、cwd、permission_mode、hook_event_name、stop_hook_active 等字段。其中 stop_hook_active 为关键字段:false 表示钩子首次触发(继续分析);true 表示钩子已阻止过一次(允许停止,防止死循环)。
使用方式
快速开始:
from scripts.hooks_manager import HooksManager
hooks = HooksManager(project_dir)
await hooks.install_autonomous_hooks()
检查钩子状态:
status = await hooks.get_status()
print(f"Stop hook: {'installed' if status.stop_hook else 'missing'}")
安装特定钩子:
- Stop 钩子:
await hooks.install_stop_hook(
script_path=".claude/skills/ac-hooks-manager/scripts/autonomous-loop.sh",
timeout=120
)
- PreToolUse 钩子(安全):
await hooks.install_pre_tool_hook(
tools=["Bash"],
script_path=".claude/skills/ac-security-sandbox/scripts/validate.sh"
)
- PostToolUse 钩子(格式化):
await hooks.install_post_tool_hook(
tools=["Write", "Edit"],
command="npx prettier --write \"$FILE\""
)
- 会话钩子:
await hooks.install_session_hooks(
on_start=".claude/hooks/load-memory.sh",
on_end=".claude/hooks/save-memory.sh"
)
其它操作:安装全部自主钩子(install_autonomous_hooks)、安装特定钩子(install_hook)、移除钩子(remove_hook)、检查状态(get_status)、校验钩子(validate)。
钩子配置示例(.claude/settings.json):
{
"hooks": {
"Stop": [{
"matcher": {},
"hooks": [{
"type": "command",
"command": ".claude/skills/ac-hooks-manager/scripts/autonomous-loop.sh"
}],
"timeout": 120
}],
"PreToolUse": [{
"tools": ["Bash"],
"hooks": [{
"type": "command",
"command": ".claude/skills/ac-security-sandbox/scripts/validate.sh"
}]
}],
"PostToolUse": [{
"tools": ["Write", "Edit"],
"hooks": [{
"type": "command",
"command": "npx prettier --write \"$FILE\""
}]
}]
}
}
自主循环脚本与安全机制
scripts/autonomous-loop.sh 从 stdin 读取输入,提取 stop_hook_active、transcript_path、cwd 等字段,加载 autonomous-state.json 状态,检查限制后调用 analyze.py(Opus 分析器)返回决定。
内置安全机制包括:
- 死循环防护:stop_hook_active 为 true 时直接允许停止。
- 迭代上限:MAX_ITERATIONS=50,达到即允许停止。
- 成本上限:MAX_COST=20.00,超出即允许停止。
- 失败检测:连续失败 consecutive_failures 达到 3 次即允许停止并升级处理。
集成点
- ac-session-manager:触发钩子
- ac-security-sandbox:PreToolUse 校验
- ac-opus-analyzer:决策
- ac-state-tracker:状态持久化
- ac-config-manager:钩子配置
参考资料与脚本
- references/HOOK-MECHANICS.md、references/STOP-HOOK.md、references/SAFETY.md
- scripts/hooks_manager.py、scripts/autonomous-loop.sh、scripts/analyze.py、scripts/hook_installer.py
限制
资料未提供该工具的具体平台要求、安装前提、支持的 Claude Code 版本、费用或价格等信息,暂未提供。