Codex自动化需设失败退出条件:在Prompt末尾添加带exit 1的校验命令;启用heartbeat模式复用线程并做工具级容错;配置180秒超时及SIGTERM中断捕获。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

为Codex自动化流程设置失败退出条件
当Codex自动化任务执行中遇到关键步骤失败(比如文件不存在、权限拒绝、命令返回非零码),你需要它立刻中止后续操作,而不是强行继续导致错误扩散或覆盖有效数据。这一步直接决定自动化是否可信、可维护。
在Prompt中嵌入显式退出逻辑
在自动化任务的Prompt末尾添加一行强制校验指令,例如:
“执行完上述所有步骤后,运行命令 【if [ $? -ne 0 ]; then echo 'FATAL: 上游步骤失败' >&2; exit 1; fi】 ——该命令必须放在最后,且不能被任何注释或空行隔开。”
这行 shell 逻辑会检查前一条命令的退出状态码;只要上一步失败(状态码非0),就立即打印 FATAL 错误并终止整个进程。Codex 在本地执行环境里能真实响应 exit 1,不会跳过。
注意:不要写成 “exit” 单独一行,必须带明确的退出码 1,否则 Codex 可能忽略该指令。
用 heartbeat 模式绑定线程并启用工具级容错
第一步:在 Codex 客户端中新建一个对话线程,确保该线程已成功执行过一次目标任务(如生成日志归档脚本)。
第二步:进入 Automations 配置页 → 编辑对应自动化 → 将 kind 字段从默认的 【"cron"】 改为 【"heartbeat"】。
通过本地 Codex 或 OpenClaw OAuth 凭证直接调用 ChatGPT/Codex Responses 的 image_generation 工具来生成或编辑光栅图像,然后保存
第三步:复制当前对话线程的真实 ID(可在开发者工具 Network 标签中查找 latest_thread_id 值,或通过 /api/threads 接口获取),填入 target_thread_id 字段。
第四步:在 Prompt 中加入工具调用校验语句,例如:“调用 file_exists 工具检查 ./output/report.json 是否存在;若 not_found,则调用 exit_tool 并传入 code=1 message='报告文件未生成'。”
heartbeat 模式下,Codex 会复用已有线程上下文,所有工具调用结果可被连续判断;而 cron 模式新建的空壳 session 无法传递工具返回值,校验逻辑形同虚设。
配置系统级超时与中断信号捕获
在自动化配置的高级选项中启用「最大执行时间」,设为 180 秒(3分钟)。
勾选「收到 SIGTERM 时立即终止」——该选项会向底层执行进程注入信号监听机制,一旦超时或用户手动点击「停止」,进程将立刻退出,不等待当前命令完成。
这一步不可跳过。若未启用,某些阻塞型命令(如 curl -v 超时未设、git clone 大仓库)会让自动化卡死在后台,既不报错也不释放资源。

















