2026-08-03 核实。Agent Island v1.7.1 在 macOS 与 Windows 上监控 Codex 会话状态。共同的已发布范围是实时状态与轮到你了提醒。监控不会把 rollout 内容上传到 Agent Island
光看文件时间戳,判断不了 Codex 是不是在工作。rollout 文件里混着任务开始、用户消息、已完成回合、工具结果和元数据。状态监控必须认出最近一次有意义的事件、保住它们的顺序,并让旧证据过期
读语义事件,而不只是修改时间
Codex 会在本地数据目录下记录结构化的 JSONL 事件。在当前的状态解析器里,一次新的任务开始或用户消息意味着会话是活跃的;一个 task_complete 或 turn/completed 事件意味着最近一个回合结束了。解析器从后往前走,这样末尾的工具或元数据记录就不会挡住那个决定回合的事件
任务开始或用户消息 -> 工作中
任务完成 -> 轮到你了
有新鲜活动但无终止事件 -> 工作中
证据已旧 -> 空闲
这也是监控不该从「安静」推断出「完成」的原因。没有新的写入,可能是回合结束了,可能是一个长任务在跑,可能是监听器断了,也可能是会话被放弃了。完成状态需要一个完成事件
让已完成的回合过期
一个终止事件不该让红色角标永远留在屏幕上。Agent Island 把可行动的轮到你了窗口限制在 20 分钟内。窗口之内的完成回合可以请求你的注意,更旧的证据回到空闲。这个具体的窗口是一条实现边界,不是「编码任务本身成功了」的证明
启动时同样需要克制。如果 App 发现一个在监控开始之前就结束的回合,那属于历史上下文。提醒层会跟踪事件身份,所以重连或者重扫同一份记录不会产生第二次提醒
别让子线程的噪音混进主信号
Codex 会派生子线程,它们可能在父任务还在跑的时候就结束。把每一次子线程完成都当成前台闹钟,监控就没法用了。Agent Island 默认关闭子线程通知,并把当前服务商状态的排序与提醒投递分开处理
面对多个活跃会话时,指示器会选出最紧急的新鲜状态。一个尚未确认的轮到你了事件的优先级高于普通工作,而需要认证与被限流则单列,因为它们要求的是另一种回应
回到正确的那个会话
通知只有在保留了足够的本地身份、能把人带回对应会话时才有用。Agent Island 用稳定的事件或会话标识派生出一个本地线程键,再把提醒与对应的 Codex 上下文关联起来。界面因此可以给出返回操作,而不必让会话内容经过 Agent Island 的服务器
监控无法保证另一个 App 会永远保留每一个历史导航目标。返回操作是一种基于本地观测身份的便利,不是一套远程会话控制协议
状态证明不了什么
工作中 表示近期会话证据在动。轮到你了 表示最近一个新鲜回合走到了终止事件。卡住 表示此前在工作的证据在注意力窗口内安静了下来。这三种状态都不能验证测试、代码质量、部署或产品意义上的完成
Codex 已经不再暴露早期版本用的那套五小时额度模型,所以本页不做任何 Codex 五小时额度或自动续跑的声称。用量与报告界面也各有各的平台验证边界。在假定 macOS 与 Windows 界面对齐之前,请先看 能力矩阵
一份可操作的 Codex 监控清单
- 解析完整的 JSONL 记录,忽略末尾残缺的片段
- 使用语义化的开始、用户与完成事件
- 保留稳定的事件或线程键用于去重
- 套用新鲜度窗口,让旧的完成变回空闲
- 把子线程提醒与服务商主状态分开
- 会话内容留在本地,提醒的投递方式要讲明白
Agent Island 是一个免费开源的 AI 编码 Agent 状态伴侣。可以对照 Claude Code 的状态模型,查看 可复现的会话状态测试样本,或者下载当前的稳定版本
← 全部文章