Astra 怎么操作电脑:拆解 Computer Use 的执行链路

简介: Astra通过“观察—决策—执行—验证”闭环实现多步电脑操作:结合无障碍树与截图获取界面状态,以代码而非坐标驱动动作,依托持久化Node环境维持会话,并由独立Guardian模块进行安全审查,形成模型与真实系统间的持续交互闭环。

摘要:

Astra 让每一步电脑操作都接得住

正文:

模型完成一次点击,只推进了任务中的一步。动作执行后,界面状态随之变化,模型需要看到新的界面,才能继续判断下一步该做什么。于是,多步 Computer Use 实际上形成了一条反复循环的执行链路:获取当前状态、判断下一步、执行动作,再获取动作后的新状态,同时跨步骤维持运行环境,并确认操作是否生效。

OpenAI 最近发布的 GPT-6 Astra,是怎么把这条链路持续跑起来的呢?

结合 Codex 源代码、OpenAI 官方资料和相关实现信息来看,这条链路中的分工是,模型负责判断下一步动作,Harness 负责维持运行环境、执行操作、把最新环境状态返回给模型,同时接入安全审查机制。

界面状态获取结合截图与结构化信息

要让多步任务持续执行,Agent 首先需要稳定获取当前界面状态。纯视觉 Computer Use 通常让模型读取屏幕截图,再输出类似 click(x, y) 的坐标动作。以 Claude 3.5 Sonnet 为例,模型会返回包含动作类型和 x、y 坐标的 JSON,再由 Stagehand、Playwright 等自动化驱动映射成实际的浏览器或计算机操作。像素定位容易受到视口尺寸和布局变化影响;仅依赖截图,也难以直接获得部分复杂交互背后的结构信息。

Astra / Codex 会利用无障碍树获取结构化的界面状态。无障碍树原本服务于屏幕阅读器等辅助功能,会把按钮、输入框、菜单等界面元素暴露成带有语义角色和交互信息的结构化节点。相比直接处理完整网页视觉层,这类结构可以过滤大量 CSS、类名等视觉实现信息,让模型获得更紧凑的界面语义。Chrome 会自动为网页生成无障碍树,因此这类结构化信息可以直接用于许多网页界面。

1.PNG

图1:网页渲染结果与 Chrome 开发者工具中的无障碍树对照

截图仍然是获取界面状态的一种方式。Agent 可以根据任务使用文本、截图,或者组合两种方式获取当前状态。结构化界面信息可以提供元素语义,截图则补充布局、图像等视觉状态。

动作开始从鼠标事件转向代码执行

模型获得当前界面状态后,需要把下一步动作真正执行出去。传统 Computer Use 往往一次输出一个结构化鼠标或键盘动作,例如点击某个坐标、输入一段文本。Astra / Codex 则开始更多通过代码表达界面操作。例如,模型可以生成类似下面的调用:

{
  "type": "function_call",
  "name": "exec_js",
  "call_id": "call_123",
  "arguments": "{\"code\":\"await page.getByRole('searchbox').fill('browser automation'); ...\"}"
}

对于浏览器任务,模型可以通过类似 Playwright 的自动化方式直接描述“找到角色为 searchbox 的元素并填写内容”,不需要把每一次操作都还原成屏幕上的绝对坐标。模型由此可以通过 Harness 调用已有的软件自动化能力。

代码执行要求运行环境持续存在。在这套 Codex 实现中,Computer Use 会话会启动一个持续存在的 Node REPL。REPL 是 Read-Eval-Print Loop(读取—求值—输出循环)的缩写,可以理解为一个持续运行的 Node.js 交互式执行环境。这里它主要用于保存 Computer Use 的执行状态,并承载浏览器和原生桌面操作所需的能力,页面、标签页等运行时对象可以跨多次模型调用继续存在。

这里需要区分模型上下文和真实执行环境两类状态。模型上下文记录 Agent 之前做过什么。真实执行环境则保存浏览器当前停在哪个页面、是否已经登录、前一步创建的对象是否仍然存在。

即使模型记得“我已经打开了这个网页”,底层浏览器会话一旦销毁,任务仍然无法继续。Harness 还需要维护实际运行环境。Node REPL 持续贯穿整个 Computer Use 会话,就是这一状态要求在这套实现中的具体体现。

动作落到系统以前,还要经过执行适配层。完整架构中,持久化 JavaScript 运行环境分别连接浏览器**适配器**和 Mac 原生适配器。在这套被检查的 ChatGPT 客户端本地实现中,CodexComputerUseIPC-5 服务负责执行相关请求。在 Mac 原生路径中,执行层会把模型选中的元素转换成系统原生元素 ID,或者在需要时使用坐标,再通过本地管道和 JSON-RPC 完成通信。模型给出“点击这个按钮”的高层动作后,Harness、适配层和底层运行环境继续把它映射成真实的浏览器或桌面操作。

动作执行后还要重新验证状态

模型提交操作代码后,本地服务正常返回,只能说明这次动作请求已经得到处理。页面是否进入预期状态,还需要重新获取界面状态。

页面可能尚未加载完成,按钮可能没有产生预期效果,也可能突然出现新的弹窗。从模型完成观察到动作真正执行之间,界面状态本身也可能发生变化。请求执行后,系统会再次获取新的界面状态,把实际结果与预期状态进行比较,再决定下一步。

2.PNG

图 2:Codex Computer Use 的端到端执行架构,包括任务模型、Harness、持久 JavaScript 运行环境、浏览器 / Mac 原生适配器、Guardian 与状态观察回路

整个过程形成一个持续循环:

观察当前环境 → 模型决定下一步 → 执行动作 → 重新观察真实状态 → 验证结果 → 继续下一步或根据新状态调整

工具调用成功 ≠ 任务完成。工具调用成功,只说明动作请求已经正常返回;任务是否达成,还需要由新的外部环境状态证明。如果状态与预期不一致,模型可以根据新的环境信息调整动作,必要时进入恢复流程。

安全判断被拆成独立的审查环节

结果验证负责判断动作是否得到预期结果,执行链路还需要单独处理权限问题。当 Agent 可以登录账号、修改设置、提交敏感数据或者执行不可逆操作时,权限判断不能完全交给主任务模型自行完成。

在本文所依据的 Codex / ChatGPT 版本中,Guardian 使用 GPT-5.6 Luna 作为后台风险分类器,对当前工作流和潜在风险进行判断;检测到高风险后,会进一步触发阻塞式审查。审查时可以读取:

  • 候选动作及参数;

  • 对话中的用户授权;

  • 上层环境与权限上下文;

  • Node 运行环境中的已有证据;

  • 截图等图像信息;

  • 当前审批请求及其原因。

审查结果可以结构化为:

{
  "risk_level": "high",
  "user_authorization": "low",
  "outcome": "deny",
  "rationale": "..."
}

常见审查范围包括权限授予、账户操作、敏感数据提交、重要界面点击、绕过限制、破坏性操作,以及超出任务范围访问私人数据等。执行链路中存在两种不同的检查:

  • Guardian 安全审查负责判断动作是否允许执行,控制权限边界;

  • 结果验证负责检查动作执行后的真实状态,控制任务正确性。

主任务模型负责规划和推进任务,高风险动作是否允许落地由独立审查机制判断。

真实环境仍然会让执行链路失效

Agent 可能拿到不完整的无障碍状态,也可能遇到截图细节不足或者已经过期的界面视图。

模型完成观察以后,到动作真正执行之前,界面也可能发生变化,这就是状态漂移。在一些应用中,无障碍树本身也可能频繁变化,从而让此前生成的元素定位和操作失效。

更长时间尺度的问题也还没有解决。上下文压缩已经能够支持 Astra 保持较长时间的高保真执行,但对于连续运行数天甚至数周后的表现,现有材料还没有给出验证结果。

模型负责理解任务、判断下一步,并根据新的环境状态继续决策;Harness 负责维持运行环境、执行动作、返回新的观察结果并接入权限审查。Computer Use 也由单次的屏幕识别与鼠标操作,扩展成一套连接模型决策与真实软件环境的持续执行闭环。

来源与参考

相关文章
|
12天前
|
存储 Shell API
拆解 dsh 系列:从源码和版本变化看 DeepSeek Harness 的设计取舍
DeepSeek Harness(dsh)发布仅两周,实则历经两个月内部打磨。本文基于Git历史与npm发布数据,梳理其从0.0.1-rc.1到0.1.1-rc.2的演进:命名重构、定位升维(Coding Agent→Agent Harness)、核心与扩展边界持续厘清,展现一个开源智能体运行时如何审慎定义自身能力疆界。
163 1
拆解 dsh 系列:从源码和版本变化看 DeepSeek Harness 的设计取舍
|
1月前
|
存储 Shell 数据库
Agent 小知识|长任务不重来:Agent 状态保存的工程设计
本文详解Agent状态的核心概念与工程实践:它不是简单记忆,而是任务执行的实时快照,涵盖进度、环境、内部判断与资源约束。通过结构化Schema、分层检查点和状态栏机制,实现可靠暂停恢复、高效决策与长程连贯性。
150 0
Agent 小知识|长任务不重来:Agent 状态保存的工程设计
|
2天前
|
测试技术 API 开发者
|
2月前
|
人工智能 自然语言处理 开发工具
Codex 实践系列 Vol.03:Codex 那些好用的 slash command
本文是Codex系列第三篇,聚焦真实项目协作:以AI志愿填报Demo为案例,详解`/status`、`/goal`、`/plan`等核心slash命令的实战用法——从确认环境、设定目标、规划修改,到聚焦文件、审查diff、复查逻辑、压缩长对话,系统提升AI编程的可控性与工程规范性。
251 2
Codex 实践系列 Vol.03:Codex 那些好用的 slash command
|
2月前
|
运维 监控 安全
Coding Agent 规则管理:CLAUDE.md、Skills、Hooks、Subagents 到底怎么选?
Claude Code 用分层设计把 Coding Agent 的规则拆成多种机制,让约束在合适的时机生效
269 1
Coding Agent 规则管理:CLAUDE.md、Skills、Hooks、Subagents 到底怎么选?
|
2月前
|
自然语言处理 安全 API
Agent Graph Engineering:从线性 Workflow 到可扩展 Agent 系统
本文介绍Agent图编排(Agent Graph Engineering)的核心思想:摒弃简单串行流程,以数据依赖关系构建节点(Agent/代码)与边(数据流)组成的有向图。强调清晰输入输出约定、并行执行、故障隔离、验证机制与动态循环设计,提升系统可组合性、稳定性与成本效率。
284 0
Agent Graph Engineering:从线性 Workflow 到可扩展 Agent 系统
|
3月前
|
Web App开发 存储 Linux
旧手机如何组建集群,跑点云计算?
UC San Diego 与 Google 合作推进“手机集群计算”:拆解退役手机主板,组建低碳小型计算集群。首期将部署 2000 台 Pixel 手机主板,替代传统服务器,为教学科研提供低成本云资源,兼顾环保与算力复用。
345 1
旧手机如何组建集群,跑点云计算?
|
3月前
|
人工智能 机器人 开发工具
工程实践|Warp 的 Loop Engineering:Agent 如何自己改进 Skill?
Warp 团队提出“双循环驱动”AI Agent进化:内循环(Inner Loop)自动分诊GitHub Issue;外循环(Outer Loop)从人类反馈中提炼规则,生成PR更新技能文件(SKILL.md)。技能即SOP,可审查、可回滚、持续迭代,让Agent越用越懂团队。
368 1
工程实践|Warp 的 Loop Engineering:Agent 如何自己改进 Skill?
|
2月前
|
人工智能 缓存 测试技术
Harness 效应:编排设计如何影响企业级 Agent 的 Token 成本
论文《The Harness Effect》指出:企业级Agent成本主要由编排层(Harness)决定,而非模型单价。Harness通过优化上下文组织、历史压缩、工具调用与重试机制,将单任务Token消耗降低38%(14.2k→8.8k),成本下降33%–61%,CPM提升68%。优化本质是将成本问题从“选模型”转向“精设计”。
255 0
Harness 效应:编排设计如何影响企业级 Agent 的 Token 成本
|
2月前
|
人工智能 JavaScript 安全
专访 DeepChat 作者们:聊聊本地优先、MCP 与 Agent Memory
DeepChat 是一款本地优先的开源 AI Agent 桌面客户端,支持 MCP、Computer Use、Skills 与 Agent Memory 等前沿能力。它从轻量 Chatbot 演进而来,坚持数据留本地、端到端加密,兼顾隐私与强大功能,是探索下一代 AI 工作台的理想开源平台。
308 0
专访 DeepChat 作者们:聊聊本地优先、MCP 与 Agent Memory