Skip to content

Kiro 的 Agent Hooks 提供 9 种触发类型,覆盖从用户提交 prompt、agent 完成响应、工具调用前后,到文件创建/保存/删除,再到 spec 任务执行的完整生命周期。每种类型针对不同自动化场景设计,理解它们的触发时机是构建可靠工作流的前提。

Agent Hooks 支持多种触发类型,每种类型针对 IDE 工作流中的特定时间点。了解各类型的触发时机和适用场景,有助于选择最合适的自动化策略。

Prompt Submit

触发时机:用户提交 prompt 时。

在使用 shell command action 时,用户输入的 prompt 内容可通过环境变量 USER_PROMPT 获取。

典型用途:

  • 向 agent 补充与当前 prompt 相关的额外上下文
  • 根据 prompt 内容拦截特定类型的请求
  • 将所有用户 prompt 记录到集中日志

Agent Stop

触发时机:agent 完成本轮响应、结束回复时。

典型用途:

  • 编译代码并将失败信息反馈给 agent
  • 格式化或审查 agent 生成的代码
  • 审核 agent 所做的变更并提供补充指令

Pre Tool Use

触发时机:agent 即将调用某个工具之前。

在 Tool name 字段中填写需要监听的工具名,支持多个。以下是内置分类关键词:

关键词匹配范围
read所有内置文件读取工具
write所有内置文件写入工具
shell所有内置 shell 命令工具
web所有内置网页工具
spec所有内置 spec 工具
*全部工具(内置 + MCP)

还支持前缀过滤器,按来源定位工具:

  • @mcp — 所有 MCP 工具
  • @powers — 所有 powers 工具
  • @builtin — 所有内置工具

@ 开头的前缀采用正则匹配,例如 @mcp.*sql.* 可精确匹配名称含 sql 的 MCP 工具。

如需查询可用工具名,直接询问 Kiro 即可。

典型用途:

  • 拦截特定工具调用
  • 在 agent 调用工具前注入额外指令

Post Tool Use

触发时机:agent 完成工具调用之后。

Tool name 字段的用法与 Pre Tool Use 相同。

典型用途:

  • 记录工具调用日志用于审计
  • write 工具完成后格式化或审查更新的文件
  • 在工具响应基础上向 agent 提供额外指令

File Create

触发时机:工作区中符合指定模式的新文件被创建时。

典型用途:

  • 为新组件生成样板代码
  • 为新文件自动添加 license 头
  • 创建实现文件时自动生成对应的测试文件

File Save

触发时机:符合指定模式的文件保存时。

典型用途:

  • 运行 lint 和代码格式化
  • 更新关联文件
  • 生成文档
  • 对改动文件运行测试

File Delete

触发时机:符合指定模式的文件被删除时。

典型用途:

  • 清理关联文件
  • 更新其他文件中的 import 引用
  • 维护项目完整性

Pre Task Execution

触发时机:spec 任务开始执行时(任务状态变为 in_progress)。

典型用途:

  • 在任务执行前运行环境准备脚本
  • 验证任务所需的前置条件是否满足
  • 记录任务开始事件

Post Task Execution

触发时机:spec 任务执行完成时(任务状态变为 completed)。

典型用途:

  • 任务完成后运行测试验证正确性
  • 对改动文件执行 lint 或格式化
  • 为完成的工作生成文档
  • 通知外部系统任务已完成

Manual Trigger

触发时机:用户手动执行。

典型用途:

  • 按需代码审查
  • 按需生成文档
  • 安全扫描
  • 性能优化分析

常见问题

Q:Pre Tool Use 和 Post Tool Use 可以同时监听同一个工具吗?

可以。两者可以独立配置,分别在工具调用前和调用后执行不同的操作,例如"调用前注入上下文 + 调用后审查结果"。

Q:File Save 和 Agent Stop 该怎么选择?

如果想在每次保存文件时立即触发(包括手动保存),用 File Save;如果只关心 agent 完成一轮操作后的最终状态,用 Agent Stop,可以避免 agent 修改多个文件时重复触发。

Q:Pre Task Execution 中的"spec 任务"是指什么?

指的是 Kiro spec 工作流中定义的任务条目(task),当任务状态从 pending 变为 in_progress 时触发。适合在 spec 驱动开发流程中插入环境检查或准备步骤。