Codex:让长任务状态、审批与 Diff 成为界面契约
Unlocking the Codex harness: how we built the App Server
01 · 先读这里
为什么推荐
它从真实多端 Agent 产品出发,解释为什么进度、授权、结果差异都需要稳定的事件语义。原文有协议图和真实客户端截图,虽然直链未能核验,但能帮助设计师把“等待中”“已完成”拆成更有用的状态。
02
这篇讲什么
这篇 OpenAI 工程案例解释 Codex 为什么不能只用一次请求和一次响应来承载 Agent 交互。系统将持续会话拆成 Thread、Turn、Item,Item 又具有开始、增量更新和完成的生命周期事件,让不同客户端一致呈现任务进度。原文还展示了 VS Code 的命令授权弹窗,以及 Codex Web 的任务摘要、测试信息和代码差异界面。最值得迁移的是将状态、授权和结果审查分成独立的交互契约。官方有图,但本次未能可靠取得图片直链,因此不编造。
扩展评分
一句话带走
只记住这一句:可信 Agent 的体验始于稳定的状态与授权契约。
交互范式
交互到底改变了什么
- 原来的交互
- 单次请求响应难以还原执行中间态
- Agent 带来的变化
- 事件流支持增量反馈、暂停审批和差异审查
- 用户的新成本
- 用户需理解多层状态与权限边界
- 关键交互机制
- Item 生命周期;工具审批暂停;Diff 审查
- HCI 依据
- 原文未提供
- 团队设计信号
- 跨端共用 harness 并以 UI 需求驱动协议
设计策略
从具体设计中学习
01
用 Item 生命周期驱动增量状态,而不是只有思考中
- 看图重点
- started、delta、completed 与 turn/completed 的层级
- 图像作用
- 官方原文协议图与产品截图,直链未核验
- 问题
- 单一等待态无法呈现工具执行和增量产物
- 方案
- 定义 Item/Turn/Thread,Item 有 started、delta、completed 状态事件
- 为什么这样做
- 使多端 UI 能一致地显示进度与终态
- 取舍
- 原文明确有集成成本;根据方案推断,事件过细会增加状态管理复杂度
原文依据与解读
item/started; item/*/delta; item/completed
- 译文
- 开始、增量更新、完成
- 解读
- 这是 UI 的事件契约,不是公开模型全部推理
可迁移规则步骤、轮次和会话分层定义开始、更新、完成状态
02
关键动作先暂停审批,结果回到 Diff 供人核查
- 看图重点
- 观察允许/拒绝选项、测试摘要与代码差异
- 图像作用
- 官方原文协议图与产品截图,直链未核验
- 问题
- Agent 可执行动作,但用户需要控制权限与验证结果
- 方案
- 服务端发起审批并暂停 Turn,完成后展示变更摘要和 Diff
- 为什么这样做
- 把执行权与交付质量分成两次人机交接
- 取舍
- 根据方案推断:审批过密会打断流程,Diff 应聚合重点
原文依据与解读
pause the turn until the client responds
- 译文
- 客户端回应前暂停执行
- 解读
- 前置授权与后置审核是两类不同设计问题
可迁移规则风险动作显示范围和允许/拒绝;产物提供差异与验证证据
推理链
从问题到设计判断
- 问题
- 长任务跨端难呈现
- 证据
- 生命周期图、审批与 Diff 截图
- 判断
- 需要稳定的事件与审批语义
- 设计策略
- 分层状态、暂停授权、差异审查
- 结果
- 实现机制可见;独立 UX 验证原文未提供
迁移原则
带回自己的项目
- 步骤、轮次和会话分别定义状态
- 高风险动作先授权,结果提供 Diff 与测试证据
03
它真正解决的问题
跨端长任务的进度、权限和结果审查难以一致
04
作者用了什么依据
官方协议图、VS Code 审批截图与 Codex Web Diff 截图
05
核心设计洞察
可信 Agent UI 要有稳定状态与控制权契约
06
具体做了什么
用 Item 生命周期驱动增量状态,而不是只有思考中:定义 Item/Turn/Thread,Item 有 started、delta、completed 状态事件;关键动作先暂停审批,结果回到 Diff 供人核查:服务端发起审批并暂停 Turn,完成后展示变更摘要和 Diff
07
为什么这样做
长任务跨端难呈现 → 生命周期图、审批与 Diff 截图 → 需要稳定的事件与审批语义 → 分层状态、暂停授权、差异审查 → 实现机制可见;独立 UX 验证原文未提供
08
有什么关键取舍
原文承认客户端集成成本;根据方案推断,事件细分增加复杂度
09
最终有没有验证
原文未提供
从这篇学习
值得学什么
长任务应可恢复并支持审批暂停
进度、审批和 Diff 是不同交互对象
原文未提供
从多端体验倒推事件语义
状态边界比单条完成文案更重要
用客户端截图连接协议与用户体验
10 · 迁移
可以带走什么
分别定义状态、审批和结果审核契约
你的反馈
这篇对你有用吗?
反馈只会记录下来,不会自动改变推荐算法。