Stop 在主 Agent 对话结束时触发,可用于阻止主 Agent 结束并让其继续工作。
入参
参数名
说明
session_id
当前会话 ID
transcript_path
当前会话的消息记录文件路径
permission_mode
当前 Agent 运行模式
hook_event_name
Hook 事件名称
stop_hook_active
是否已触发过停止 Hook,true 表示已触发,false 表示未触发,用于避免无限循环
{ "session_id" : "abc123" , "transcript_path" : "~/.Hawa Code/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl" , "permission_mode" : "default" , "hook_event_name" : "Stop" , "stop_hook_active" : true }
出参 JSON 格式 返回以下数据结构时,Hawa Code 将正常结束:
返回以下数据结构时,Hawa Code 将继续工作,并将 reason 作为继续工作的原因发送给模型:
{ "ok" : false , "reason" : "your explanation" }
返回码格式
退出代码 0:成功,Hawa Code 将停止任务
退出代码 2:失败,Hawa Code 将继续工作,并将 stderr 作为继续工作的原因发送给模型
配置方式 Prompt 方式 通过 $ARGUMENTS 占位符配置 Prompt:
{ "hooks" : { "Stop" : [ { "hooks" : [ { "type" : "prompt" , "prompt" : "Evaluate if Hawa Code should stop: $ARGUMENTS. Check if all tasks are complete." } ] } ] } }
Command 方式 执行 Shell 脚本:
{ "hooks" : { "Stop" : [ { "hooks" : [ { "type" : "command" , "command" : "node ./hooks/stop.js" } ] } ] } }
示例脚本:
import * as fs from 'fs' ;const input = fs.readFileSync (0 , 'utf-8' );console .log ({ "ok" : false , "reason" : input + " Root cause analysis" });