Agent 创收指南免费公开资源
中文 EN العربية

返回目录 / Agent 安全

用 PreToolUse hook 阻止危险命令

在工具执行前匹配命令输入,按 hookSpecificOutput 返回 deny。

目标

为 Agent 工具循环添加确定性的执行前策略拦截。

步骤

  1. 定义接收 input_data, tool_use_id, context 的异步 hook,并只检查目标工具字段。 [hooks]
  2. 在 ClaudeAgentOptions(hooks={"PreToolUse":[HookMatcher(matcher="Bash", hooks=[...])]}) 注册,并确保 matcher 对准工具名。 [hooks]
  3. 返回 hookSpecificOutput 中的 hookEventName="PreToolUse"、permissionDecision="deny" 与原因;用禁止和允许样例验证。 [hooks]

验证方式

禁止命令未执行且返回拒绝原因;安全命令仍经权限系统处理。

故障处理

若规则未拦截,确认 hook event 与 matcher 名称正确、回调返回结构合法;别只依赖脆弱的子串匹配。

权限边界

前置条件

权限边界

限制

hook 是策略层之一,不能替代 CLI 权限、隔离环境或人工批准。

固定上游来源

https://github.com/anthropics/claude-agent-sdk-python/blob/b6e9d12fe1cc98dde988ab7b7713c1feeee50c6c/examples/hooks.py

仓库
anthropics/claude-agent-sdk-python
文件路径
examples/hooks.py
固定提交
b6e9d12fe1cc98dde988ab7b7713c1feeee50c6c
来源检查
2026-10-14 · 已按固定上游来源核对

仓库指标

以下数字属于上游仓库整体,不代表单个 Skill 或指南的点赞/热度。

Stars
未取得
Forks
未取得
观测时间
未取得

尚未取得指标快照。

许可证: MIT

主主题

让 Agent 更安全且易于核验

相关资源