OpenAI工程负责人:什么叫“任务完成”
Ari Weinstein:软件原本是为人设计的。 Ari Weinstein:现在的Agent已经很会自己排错。 Ari Weinstein:Agent写完代码以后,开发者反而成了它的测试人员。
最近Latent Space采访了OpenAI电脑操作Agent产品与工程负责人Ari Weinstein。 他在访谈中谈到,一个原本需要自己操作2小时的任务,Computer Use用了约15分钟;Agent还能测试自己刚刚写出的软件,把编码与验收连接起来。 备注:Ari Weinstein是OpenAI电脑操作Agent产品与工程负责人,负责Computer Use等让AI直接操作浏览器和桌面软件的产品与技术工作。 过去,一项开发任务常在PR合并时结束。代码能运行、测试变绿,程序员就可以把修改交付。 OpenAI现在想把它从编辑器里放出来。 Agent写完功能,还要自己打开软件,像用户一样点击页面、填写表单、检查结果。按钮没有反应,它会查找原因;页面出现报错,它会返回代码继续修改。 代码生成、软件操作、排错和功能验收,正在被接进同一条工作流。 这就是“程序员只写代码的时代结束了”的具体含义。 当Agent开始亲手使用软件,开发团队需要处理的,也从“它能不能把代码写出来”,延伸到了“它能不能安全地把整件事做完”。 以下为访谈内容,我们进行了翻译与整理。 代码写完以后,Agent还得自己打开软件 OpenAI在DevDay展示了Dots。它会给Agent分配一台云端Linux虚拟电脑,里面有浏览器,也可以运行完整的桌面应用。 Ari先讲清楚了这套能力为什么值得做。 Ari Weinstein:“Same software.” Ari Weinstein:Agent可以直接使用人类正在使用的软件。
Ari Weinstein解释,现有软件原本为人设计,如今Agent也能直接操作 以前,模型遇到没有API的软件,只能告诉用户下一步该点哪里。现在开发者通过Agents API调用Computer Use,得到的是一个能够在真实界面中动手的执行环境。 Ari举了自己的订餐经历。他使用的配餐服务允许精确选择鸡肉和米饭的重量。手动安排一周的餐食,需要在很多页面和选项之间反复操作,他自己花了约2小时。Computer Use完成同一串操作,只用了约15分钟。
Ari Weinstein分享个人订餐案例,人工操作约2小时,Agent用时约15分钟 它说明了Computer Use和普通聊天机器人的差别:模型给完建议没有停下,而是在界面里把建议变成了结果。 对开发者来说,调用模型也不再只意味着“拿到一段文本”。任务可能持续几分钟甚至更久,中间还会经过登录、弹窗、加载、重试和人工确认。应用需要保存进度、展示当前状态,并允许用户在关键步骤接管。 Agent写完功能,开发者不该继续替它点一遍 Ari认为,Computer Use目前很实用的场景,就是让Agent测试它刚刚写出来的软件。 Coding Agent交出修改后,开发者过去要启动项目,打开页面,按着流程点一遍,再把按钮失效、表单报错和界面错位反馈给它。代码虽然是Agent写的,人却接过了最琐碎的验收工作。 Ari把这种状态形容为:开发者成了Agent的QA。 Ari Weinstein:“Like QA.” Ari Weinstein:开发者就像在给Agent做测试。
Ari Weinstein演示Computer Use如何让Agent测试自己构建的软件 Computer Use把这段流程代替了。 Agent可以在页面里输入数据,查看界面变化,读取报错,再返回代码修改。过去分开的“写功能”和“点开检查”,开始变成同一个行动循环。 这并不代表开发者可以把验收全部丢给模型。页面能点通,只能证明最表层的流程没有卡住。订单系统还要检查重复提交会不会产生两张订单,支付失败后是否能安全重试,旧版本数据能不能继续读取,灰度发布后能不能随时回退。 Agent可以承担大量机械检查,团队仍然需要定义什么叫完成。验收条件写得越模糊,Agent就越容易把“页面有反应”当成“任务已经成功”。 电脑操作不再是盯着截图找按钮 早期的Computer Use很慢。模型截一张图,寻找按钮,向下滚动,再截一张图。一个长页面会被拆成很多次观察和猜测。 OpenAI现在让模型按任务选择不同的信息来源。 Ari Weinstein:“Screenshots, accessibility, Playwright.” Ari Weinstein:它可以结合截图、无障碍信息和Playwright完成操作。
Ari Weinstein介绍Computer Use如何组合屏幕图像、无障碍结构和Playwright 其中的App Shot看起来像一张截图,传给模型的内容却不只有像素。原始文字、页面结构、链接去向和界面元素的含义,也会一起成为上下文。 日历里显示不全的标题、藏在按钮背后的跳转地址、输入框对应的标签,人眼从一张截图里未必能看全,Agent却可以从无障碍树和页面结构里读取。
Ari Weinstein解释,为屏幕阅读器设计的无障碍信息同样能帮助Agent理解软件 这件事会反过来影响前端怎么做。 一个只靠红色和绿色表示失败或成功的状态,人看着已经费劲,Agent也很难稳定判断。按钮名称、表单标签、错误信息、加载状态和完成信号越清楚,Agent越少需要靠截图猜测。 过去无障碍语义主要服务人类用户。Computer Use进入软件以后,它也开始成为一种机器可读的界面协议。前端做得是否规范,会直接影响Agent能不能操作。 没有API的旧系统,也能进入Agent工作流 企业里有大量软件从未给Agent准备接口。采购后台、客服系统、财务平台和只有网页界面的第三方工具,不会因为一个自动化需求就重新开放API。 Computer Use给了这些系统另一条入口。Agent可以像员工一样登录,在已有界面中搜索、填写和提交,不必等待每一家软件供应商重新开发接口。 这对遗留系统尤其重要。开发团队不必先重写整套后台,便可以验证一段工作流是否值得自动化。运营人员每天从邮件里读取订单,再录入内部系统;财务人员登录多个网站下载对账单;测试人员按固定步骤回归网页,这些任务都可能先用界面操作接起来。 API仍然不会消失。频繁、高风险、要求强一致的任务,API更容易限定参数、验证返回值和处理重试。Computer Use更适合补上没有接口的空缺,或者从用户视角做端到端测试。 一套稳妥的Agent系统,往往会同时保留两条路:能走稳定API的地方继续走API,只有界面可用的地方再让Computer Use接手。 会做还不够,失败后要能自己恢复 Ari回忆,一年前的模型已经可以开始执行任务,问题通常出在中途。页面结构发生变化、登录状态失效,或者一次点击没有得到预期结果,Agent很容易停在那里。 现在的变化是,它会检查哪一步失败,重新观察环境,再换一种方法尝试。
Ari Weinstein解释,Computer Use正在从“能开始任务”进化到“能排错并重试” 自我排错比一次成功更接近真实工程。网络会超时,页面会改版,弹窗会挡住按钮,第三方服务也会临时不可用。Agent若没有恢复循环,只能在演示里跑一条准备好的路线。 团队也不能只告诉它“失败了再试”。重复点击会不会创建两张订单,超时后是否应该沿用原会话,每次工具调用有没有日志,连续失败几次必须交回给人,这些规则都要由开发者提前写进流程。 Ari还给出了一个更激进的判断。 Ari Weinstein:“The average human.” Ari Weinstein:在不少任务上,Computer Use的速度已经接近或超过普通用户。 Ari Weinstein:“Expert computer users.” Ari Weinstein:下一步要追赶的是熟练使用软件的专业用户。
Ari认为,Computer Use在不少任务上已经追上普通用户,下一步是接近专业电脑用户 这是Ari在访谈中的判断,并不是覆盖所有软件、所有任务的公开基准。专业用户会使用快捷键、批量操作和领域工具,Agent要追上的也不只是点击速度,而是这套经验。 能下单、能付款,权限就不能最后再补 当Agent只生成文字时,错误通常停在聊天框里。Computer Use能够点击购买、修改配置和提交表单以后,一次判断错误可能直接改变真实系统。 Ari在谈付款场景时,明确提到了人工确认。 Ari Weinstein:“User's consent.” Ari Weinstein:执行付款等重要操作前,需要取得用户同意。
Ari Weinstein说明,高风险操作需要用户确认,并限制Agent能够访问的网站 这类安全能力不能只做成界面上的一个开关。它要进入每次任务的执行链。 权限之外,还要有停止条件。价格超过预算、页面出现陌生收款方、连续多次操作失败,Agent不应该继续尝试,而应该中止任务并把当前状态交给人。 能操作软件让Agent更有用,也让开发者第一次需要把“它什么时候不该继续”写进产品逻辑。 程序员的交付物,开始从Diff变成任务结果 Computer Use不会让开发者明天就停止写代码。它改变的是一张工单怎样才算结束。 过去,任务常在PR合并时完成。Agent开始操作软件以后,工单还要写明测试账号、允许访问的页面、成功信号、异常处理、人工确认点和可以检查的业务结果。 比如“修复退款失败”不能只以代码通过测试为终点。Agent还要在测试环境创建订单、发起退款、核对状态是否同步到支付平台,并确认重复执行不会再次扣款。任何一步出了问题,都要留下日志和回滚路径。 开发者因此会多出一类工作:把原来存在脑子里的经验,变成Agent能读懂、系统能检查的规则。 代码依然重要。只是当实现速度越来越快,界面语义、权限、可观测性、验收条件和事故恢复,也一起进入了软件工程。 程序员不再只负责把功能写出来,还要让Agent知道怎样把任务安全地做完。 评论区:一边看中自我排错,一边担心平台锁定 YouTube评论区里,一位开发者把自我排错看作这次访谈最重要的进展。他认为,可靠Agent依赖的是失败后的恢复循环,并不要求第一次就全部做对。
YouTube网友@CriticalShot-r8e认为,可靠Agent的关键是失败后的恢复循环 另一条评论盯上了“AI云”。当Agent的记忆、计算和状态都由一家厂商托管,开发者需要提前考虑数据能不能导出,工作流能不能迁移,退出这套平台时还能带走什么。
YouTube网友质疑,把Agent记忆和状态交给一家云服务后,开发者是否还保有退路 两条评论关注的其实是同一件事:Agent能独立走多远,取决于失败后能否恢复,也取决于开发者是否仍然掌握控制权。 写在最后 Coding Agent过去更像一名坐在编辑器里的开发者。它读仓库、改文件、跑测试,然后把Diff交给人。 Computer Use开始把它从编辑器里放出来。它会进入软件、观察结果、遇到错误再返回修复。界面成了Agent接口,测试成了行动循环,权限和日志则决定它能走多远。 这也是“程序员只写代码的时代结束了”的具体含义。 下一阶段的软件工程,难点不只在于让模型生成更多代码。开发团队还要把成功、失败、权限和回滚写清楚,让Agent在可控的范围里把整件事做完。


