SuperAPI AI 工具集

ac-hooks-manager

编程与开发

查看项目

更新于 10-15 09:59

技能介绍

用途

ac-hooks-manager 用于为自主编码安装和管理 Claude Code 的钩子(Hook),使 Claude Code 能够持续自主运行,而不仅完成单次响应后停止。它覆盖自主运行所需的全部钩子类型。

主要能力

工具管理四类钩子:

  • Stop Hook(自主继续):核心创新。拦截 Claude Code 的停止事件,实现自主继续。
  • PreToolUse Hook(安全校验):在工具调用前进行安全验证。
  • PostToolUse Hook(结果处理):处理工具调用结果,例如格式化。
  • SessionStart/End Hook(状态管理):会话开始与结束时管理状态(如加载/保存记忆)。

Stop 钩子工作原理

  1. Claude Code 完成一次响应。
  2. Stop 事件触发(钩子接收 JSON 输入)。
  3. 钩子脚本执行:检查 stop_hook_active(防止无限循环)、检查迭代/成本限制、调用 Opus 分析器做出决定。
  4. 返回决定:
    • 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 分析器)返回决定。

内置安全机制包括:

  1. 死循环防护:stop_hook_active 为 true 时直接允许停止。
  2. 迭代上限:MAX_ITERATIONS=50,达到即允许停止。
  3. 成本上限:MAX_COST=20.00,超出即允许停止。
  4. 失败检测:连续失败 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 版本、费用或价格等信息,暂未提供。