面试日记 第 32 天

预约列表里突然多了两条完全相同的记录。

刚才页面一直转圈,我以为第一次没点上,又补点了一次。结果两个请求都成功了。面试官指着那两条预约:“它点过一次,你怎么不让它点第二次?”

这是我带去面试的浏览器自动操作 Demo。我原本演示得挺顺:模型能看懂页面,找到日期和户型,再把信息填进预约表单。流程跑通后,我顺口说了一句:“Computer Use 会截图、会点击,接上就能上线。”

她让我回放执行记录。第一次点击其实已经被服务端接收,只是页面回显慢了几秒。我的流程把“没及时看到成功”当成“操作失败”,于是直接重试,等页面恢复时,两次预约结果一起出现了。

她拿这个任务追问并不突兀。今天 Gemini Spark 已集成 Chrome 的 auto browse,在用户许可下可以直接处理浏览器里的网页任务,公开演示就包括预约看房和自动填写航班信息。

image-20260731130305280

“现在你还觉得会点就能上线吗?”她问。

“不够。”我把手从鼠标上拿开,“它还得知道点之前页面是什么状态,点之后有没有成功,失败能不能重试,涉及提交时要不要停下来让人确认。”

她把题目写到纸上:

Computer Use是什么?说说它的原理

我先从最小闭环回答:模型读取当前屏幕或页面状态,判断下一步动作;外部执行环境把动作变成鼠标点击、键盘输入等真实操作;执行后再把新的状态交回模型。它不是生成一串动作就结束,而是在“观察、决策、执行、再观察”的循环里,直到任务完成、失败退出,或者遇到必须交给人的节点。

“OCR 呢?”

“是定位方式之一。”我说,“它可以识别截图里的文字,也可以结合视觉特征、元素位置,或者浏览器提供的结构化页面信息。关键不是认出一个按钮,而是把用户意图、页面上下文和操作结果对上。”

“一定要多 Agent 吗?”

“不一定。规划、执行和验证可以拆给多个代理,也可以由同一个模型在循环里完成。多 Agent 是一种工程组织方式,不是 Computer Use 的定义。”

她指了指那条已经成功的预约。

“那你这个 Demo 还差什么?”

“差验证和幂等。”我说,“提交前生成任务标识,提交后检查成功状态和结果记录;超时不能直接重放,先确认上一次到底有没有完成。遇到预约、下单、发邮件这类有外部后果的动作,还要设置人工确认和停止条件。”

这次她松开了我的手腕。我也把“能完成一次”从上线清单里划掉,换成了“重复执行也不会制造第二个结果”。

回答重点

Computer Use 是 Anthropic 在 Claude 3.5 Sonnet 中推出的一项能力,让 AI 能够直接操作计算机,通过模拟鼠标点击、键盘输入等方式与操作系统和软件交互,实现从“文字对话”到“实际操作”的跨越。

核心原理可以沿着三个层面理解:

1)执行层把模型输出的动作转化为计算机可执行操作。用户说“打开 Chrome 搜索面试鸭”后,模型会根据当前环境给出启动浏览器、点击、输入等动作,再由外部执行环境调用相应的浏览器能力或系统接口完成操作。操作系统级 API 是一种实现手段,但不是所有 Computer Use 都必须采用的唯一方式。

2)规划与验证层负责拆解任务、选择动作并检查结果。它可以由任务规划代理、工具调用代理和验证代理协作,也可以由同一个模型在循环中依次完成。比如“生成报告”可以被拆成数据获取、图表绘制、格式校验等子任务,每一步执行后都要把结果送回下一轮判断。

3)感知层读取屏幕截图或结构化页面状态,利用 OCR、视觉理解和语义匹配定位目标。比如“点击页面右上角的‘登录’按钮”,模型需要结合文字、位置和页面上下文判断目标,再输出点击动作。

Computer Use 屏幕识别与操作

下面这张图展示了一次完整操作过程:左侧是 AI 的思考和指令,中间是浏览器搜索操作,右侧是把获取到的信息填入表单。

Computer Use 浏览器操作演示

扩展知识

以“分析特斯拉股价趋势”为例,Computer Use 的执行逻辑可以这样拆:

1)用户输入指令后,模型先解析需求,把大任务拆成“获取历史股价数据”“生成相关性图表”等子任务。

2)执行环境根据可用工具完成具体操作,比如通过浏览器获取数据,或调用 Python 环境,用 Pandas 处理数据、用 Matplotlib 绘图。

3)执行完成后检查数据完整性和图表可读性。如果结果不合格,再决定重试、换一种操作,或者转到人工干预节点。

简单来说,Computer Use 利用 AI 理解用户意图,结合屏幕或页面状态定位目标,输出鼠标、键盘等动作,再由外部环境执行并回传新状态。

它可以用于一些跨软件流程:

  • 财务报告生成:打开 Excel 处理财报数据,调用 Python 分析趋势,生成 PPT;发送邮件前应保留人工确认。
  • 招聘流程优化:解压简历文件,逐页提取候选人信息,生成排名表并同步至招聘系统。
  • 旅行规划:整合机票、酒店数据,生成包含行程、预算和安全提示的 PDF 手册;涉及下单和支付时单独设置确认节点。

它和传统 RPA 的常见差别,可以这样看:

维度 Computer Use 传统 RPA
流程定义 可以用自然语言描述目标,由模型动态规划动作 通常预先录制或编排固定流程
界面适应性 结合 OCR、视觉和语义,在一定范围内适应界面变化 常依赖坐标或控件 ID,界面变化后可能需要维护
任务复杂度 能处理包含理解和推理判断的任务 更擅长结构化、重复性任务
部署与维护 需要模型、执行环境、权限和验证闭环 需要开发、维护脚本与流程编排

这道题真正容易漏掉的,是“看得懂、点得到”和“能稳定上线”之间还有一层工程闭环。

以今天的重复预约为例,自动化至少要保留四个状态:准备执行、已经发出、已经确认、结果未知。页面超时只代表“结果未知”,不能直接退回“准备执行”。否则每一次网络抖动,都可能把重试变成重复提交。

项目里可以这样防:

  • 操作前记录任务 ID、目标对象和当前页面状态。
  • 操作后同时检查页面成功提示、目标记录是否出现,以及关键字段是否一致。
  • 重试前先查询上一次结果,能复用结果就不再次点击。
  • 对预约、购买、删除、发送等有外部后果的动作设置人工确认、最大步数和随时停止入口。

反常识的地方在这里:Computer Use 越会自己操作,系统越不能只记录“它点了什么”。真正决定它能不能上线的,是每次操作之后,系统有没有能力证明“事情已经完成,而且只完成了一次”。

面试官追问

追问:Computer Use 跟传统的 RPA 有什么区别?

回答:最大的区别在于灵活性。传统 RPA 需要预先录制固定流程,界面稍微变一下就容易出错。Computer Use 靠 AI 理解语义和识别屏幕内容,不需要提前定义每一步操作,能自适应界面变化。另外 RPA 通常只能处理结构化的、重复性的任务,Computer Use 能处理更复杂的、需要推理判断的任务。

追问:安全性方面有什么考虑?让 AI 操作电脑不怕出问题吗?

回答:确实有风险,所以一般会有几层防护。首先是权限隔离,Computer Use 只能访问特定的应用和资源,不会拿到系统管理员权限。其次是操作审计,所有操作都会被记录,方便事后追溯。还有就是验证代理会在关键节点校验结果,发现异常可以暂停并请求人工干预。Anthropic 官方也建议在沙箱环境中使用,避免直接在生产系统上跑。

追问:如果屏幕上有多个相似的按钮,AI 怎么确定点哪个?

回答:主要靠上下文语义和位置关系。AI 会分析用户指令中的描述,比如“右上角的”“绿色的”“带购物车图标的”,然后结合 OCR 识别出的文字、元素位置、视觉特征进行匹配。如果还是分不清,可能会请求用户进一步澄清,或者按照默认优先级处理,比如优先选择可见区域内的第一个匹配项。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐