PostToolUseFailure Hook

PostToolUseFailure

PostToolUseFailure 在工具执行失败时触发。当工具调用抛出错误或返回失败结果时,此事件会被触发。可用于记录失败日志、发送警报或向 Hawa Code 提供纠正性反馈。

匹配方式:按工具名称匹配,支持使用与 PreToolUse 相同的匹配器值。

输入参数

PostToolUseFailure hooks 接收与 PostToolUse 相同的 tool_nametool_input 字段,以及作为顶层字段的错误信息:

字段 说明
tool_name 工具名称
tool_input 发送给工具的参数
tool_use_id 工具使用的唯一标识符
error 描述出错原因的字符串
is_interrupt 可选布尔值,指示失败是否由用户中断引起

输入示例

{
"session_id": "abc123",
"transcript_path": "/Users/.../.hcode/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl",
"cwd": "/Users/...",
"permission_mode": "default",
"hook_event_name": "PostToolUseFailure",
"tool_name": "Bash",
"tool_input": {
"command": "npm test",
"description": "Run test suite"
},
"tool_use_id": "toolu_01ABC123...",
"error": "Command exited with non-zero status code 1",
"is_interrupt": false
}

输出参数 / 决策控制

PostToolUseFailure hooks 可在工具失败后向 Hawa Code 提供上下文。除所有 hooks 共有的 JSON 输出字段外,还可返回以下事件特定字段:

字段 说明
additionalContext 供 Hawa Code 考虑的额外上下文,与错误信息一并提供

输出示例

{
"hookSpecificOutput": {
"hookEventName": "PostToolUseFailure",
"additionalContext": "关于失败的其他信息"
}
}

退出码行为

退出码 行为
0 成功,解析 stdout 中的 JSON 响应
非零 失败,忽略 hook 输出