中间进展与最终回答要按 phase 区分
字段
原生 Codex JSONL 里 agent_message 带 phase:
| phase | 含义 | 该不该当可见回复 |
|---|---|---|
commentary | 中间进展 / 过程说明 | 否 |
final_answer | 最终回复 | 是 |
(其后)task_complete | 任务终态事件 | 用于判定结束,不是消息 |
现在的 parser 把 commentary 也当普通 assistant 消息同步,于是手机把「我先看一下…」这类短进展当成一条消息弹出来。
配套的两条
- 终态只认
turn/completed:thread/status/changed: idle不能当回复结束,否则最终答案还没来就转圈/丢结果。 - 错误也要回传:Codex 内部
Turn error若只进本机日志,手机端看起来就是「完全没回复」;要把错误写进那条 assistant 消息,不留空气泡。
相关
- 长任务不要用固定超时判定 —— 同一条链路的终态判定:等真实事件,不等时长
- 阻塞式工具与提案确认 —— 同一「事件流要有语义类型」的家族
- 过程展示按时间线分层而不是分组聚合