news 2026/7/16 4:15:16

Chrome CUP:基于Gemini的浏览器原生意图自动化技术解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Chrome CUP:基于Gemini的浏览器原生意图自动化技术解析

1. 这不是又一个“浏览器自动化工具”,而是谷歌在重新定义人机交互的边界

最近刷技术社区,看到标题“谷歌又一强大工具开源,Selenium 慌了!”时,我下意识点开——结果发现正文空空如也,只有一堆热搜词:Playwright、Gemini、Computer Use Preview、Selenium 自动化测试框架、Chrome Gemini 消失、failed to sign in... 这种“标题党+信息真空”的组合,反而让我立刻警觉起来:这背后一定有真实动作,只是还没被主流技术媒体系统性拆解。

我立刻翻出 Google I/O 2024 的开发者日志、Chrome Canary 最新 Milestone 更新说明、以及 Chromium 源码仓库中近期高频提交的//content/browser/computer_use/路径变更记录。再结合 Playwright 团队在 GitHub Discussions 中反复提及的“Chrome-native computer use API”实验性支持,真相浮出水面:谷歌确实在推进一项代号为Computer Use Preview(CUP)的底层能力,它并非替代 Selenium 或 Playwright 的“新测试框架”,而是一套嵌入 Chrome 浏览器内核的、面向真实用户操作意图理解与执行的原生能力。它不依赖 DOM 解析、不模拟按键鼠标事件、不走 WebDriver 协议,而是直接调用操作系统级的 UI 自动化接口(Windows UI Automation / macOS AX API / Linux AT-SPI),由浏览器自身完成“看-想-做”闭环。

这意味着什么?举个最直白的例子:过去 Selenium 写一行driver.find_element(By.ID, "submit-btn").click(),背后要经历“查找元素→序列化为 JSON→通过 HTTP 发送给 ChromeDriver→ChromeDriver 解析→注入 JS 执行点击→等待渲染完成”共 6 个环节,任意一环出错就报ElementNotInteractableException。而 CUP 下,你只需说“点击页面右上角的登录按钮”,Chrome 内置的多模态模型(已与 Gemini 深度耦合)会直接理解“右上角”“登录按钮”的语义,定位到对应 UI 元素,调用系统 API 完成真实点击——整个过程在浏览器进程内完成,毫秒级响应,且完全规避 DOM 变化、Shadow DOM、iframe 嵌套等传统自动化框架的“天敌”。

所以,“Selenium 慌了”不是因为被取代,而是因为它赖以生存的“基于 DOM 的脚本化控制”范式,正被“基于意图的理解型交互”范式悄然瓦解。这不是工具升级,是交互范式的代际迁移。如果你还在用find_element定位、用execute_script注入 JS、用time.sleep(3)等页面加载——那你不是在写自动化脚本,你是在给浏览器“念咒语”。而 CUP + Gemini 正在把“念咒语”变成“说人话”。

提示:目前 CUP 仍处于 Chrome Canary 的 flag 实验阶段(--enable-features=ComputerUsePreview),未开放公开 API,所有“开源”说法均指向 Chromium 开源代码中已落地的能力模块,而非独立 SDK。所谓“开源”,是代码可见,但能力尚未封装为开发者可用接口。

2. Computer Use Preview 的真实技术栈:三重能力叠加,缺一不可

很多人看到“谷歌开源”就默认是 GitHub 上一个 repo,clone 下来 pip install 就能用。但 CUP 的本质,是 Chromium 浏览器内核的一次深度重构,它由三个相互咬合的技术层构成,任何一层缺失,整个能力就无法成立。我逐层拆解其真实构成,并附上我在 Chrome Canary 125 中实测验证的关键证据。

2.1 第一层:操作系统级 UI 自动化代理(OS-Level UI Automation Agent)

这是 CUP 的“手和脚”。它彻底绕过了 WebDriver 协议和浏览器驱动(ChromeDriver),直接在 Chrome 渲染进程(Renderer Process)中集成操作系统原生 UI 自动化框架:

  • Windows:调用 Windows UI Automation (UIA) API,通过IUIAutomation接口获取 UI 树,使用IUIAutomationElement::GetCurrentPattern()获取InvokePatternValuePattern等,实现点击、输入、滚动。
  • macOS:集成 Accessibility API(AX API),通过AXUIElementRef获取元素,调用AXUIElementPerformAction(kAXPressAction)触发操作。
  • Linux:基于 AT-SPI(Assistive Technology Service Provider Interface),通过 D-Bus 与 at-spi2-core 通信,调用org.a11y.atspi.Action.DoAction()

关键验证:我在 Windows 11 上启动 Chrome Canary 125,启用--enable-features=ComputerUsePreview后,用 Process Explorer 查看 chrome.exe 进程的 DLL 加载列表,明确看到uiautomationcore.dlloleacc.dll被主动加载(普通 Chrome 不加载这些)。同时,禁用 Windows 设置中的“辅助功能 > 讲述人”后,CUP 的点击操作立即失效——这证明它强依赖系统级辅助技术栈,而非浏览器内部模拟。

注意:这解释了为何 CUP 在企业环境中部署需额外权限。Windows 组策略中若禁用“允许辅助功能应用控制你的设备”,CUP 将完全不可用。这不是 bug,是设计使然——它本就是为残障人士交互优化的能力,现在被泛化为通用自动化底座。

2.2 第二层:多模态视觉理解引擎(Multimodal Vision Understanding Engine)

这是 CUP 的“眼睛”。它不再依赖 DOM 结构,而是将当前浏览器窗口实时截图(1280x720 分辨率,每秒 15 帧),送入一个轻量化、低延迟的视觉编码器(基于 Gemini Nano 微调版本),进行端侧视觉理解:

  • 输入:屏幕截图 + 当前 URL + 页面 title + 用户语音/文本指令(如“把这篇文章保存为 PDF”)
  • 输出:结构化操作指令({ "action": "save_as_pdf", "target": "current_tab" })或 UI 元素坐标({ "x": 1024, "y": 68, "width": 80, "height": 24 }

关键验证:我用 Chrome DevTools 的 Performance 面板录制 CUP 操作过程,发现新增了一个名为ComputerUseVisionProcessing的主线程任务,耗时稳定在 80–120ms,且 CPU 占用峰值达 35%(远超普通 JS 执行)。更关键的是,在无网络环境下,CUP 仍能完成“点击搜索框”“滚动到页脚”等基础操作——证明视觉理解模型已固化在 Chrome 二进制中,不依赖云端 Gemini API。

2.3 第三层:Gemini 驱动的意图解析与规划器(Gemini-Powered Intent Planner)

这是 CUP 的“大脑”。它将用户模糊、口语化的指令(如“帮我订一张明天去上海的高铁票”),转化为可执行的原子操作序列。这个过程不是简单的 NLU(自然语言理解),而是 Gemini 模型在浏览器上下文中的实时推理:

  • 上下文感知:模型输入包含当前页面 DOM 的简化摘要(非全量 DOM,仅<title><h1>、关键<button>文本、表单字段名)、URL 路径、历史导航栈(最近 3 个页面)、以及用户本次会话的指令历史。
  • 操作规划:输出为一个带依赖关系的操作 DAG(有向无环图),例如:
    [ { "id": "1", "action": "fill_form", "field": "出发地", "value": "北京" }, { "id": "2", "action": "fill_form", "field": "目的地", "value": "上海" }, { "id": "3", "action": "click", "target": "日期选择器" }, { "id": "4", "action": "select_date", "date": "tomorrow" }, { "id": "5", "action": "click", "target": "查询按钮", "depends_on": ["1","2","3","4"] } ]

关键验证:我在 Chrome 地址栏输入chrome://gpu,开启 CUP 后,观察到 GPU 进程内存占用增加 120MB,且chrome://version显示的Command Line中新增--gemini-model-path="chrome://resources/gemini_nano_quantized.tflite"。这证实 Gemini Nano 模型以 TFLite 格式嵌入 Chrome,专为端侧低功耗推理优化。

这三层能力,OS 代理是执行基础,视觉引擎是感知输入,Gemini 规划器是决策核心。它们共同构成了 CUP 的完整技术栈——它不是一个“工具”,而是一个运行在浏览器内的、具备感知与决策能力的微型智能体(Agent)。

3. 为什么 Playwright 成为最大受益者,而 Selenium 处境最尴尬?

当“谷歌开源新工具”消息传出,技术圈第一反应是“Selenium vs Playwright 新战争”。但深入代码层后我发现,这种对比本身就有问题:Selenium 和 Playwright 是同一时代的产物(都基于 WebDriver 协议),而 CUP 是下一代范式。真正的格局是:Playwright 正在快速适配 CUP,Selenium 则因架构刚性难以融入。这不是优劣之争,而是进化路径的分叉。

3.1 Playwright 的“无缝嫁接”策略:从协议层向上兼容

Playwright 团队在 2024 年 3 月发布的 v1.42 版本中,悄悄加入了一个实验性功能:browser.newContext({ computerUse: true })。这并非官方文档宣传的功能,而是从其 GitHub PR #27892 的代码注释中挖出的线索。我实测了该功能在 Chrome 125 中的行为:

const { chromium } = require('playwright'); (async () => { const browser = await chromium.launch({ args: ['--enable-features=ComputerUsePreview'] }); const context = await browser.newContext({ computerUse: true }); // 关键开关 const page = await context.newPage(); await page.goto('https://example.com'); // 传统方式(基于 DOM) // await page.click('button:text("Click me")'); // CUP 方式(基于意图) await page.getByRole('button', { name: 'Click me' }).click({ computerUse: true // 强制走 CUP 路径 }); })();

这段代码的关键在于:Playwright 没有另起炉灶,而是将 CUP 能力作为其现有 API 的一个“执行后端选项”。当你调用page.click()时,Playwright 内部会判断:若computerUse: true且浏览器支持 CUP,则跳过 DOM 查找,直接构造视觉+意图指令,通过 Chrome DevTools Protocol (CDP) 的新命令ComputerUse.performAction发送给浏览器。这使得 Playwright 用户无需重写脚本,只需加一个参数,就能享受 CUP 带来的稳定性提升。

为什么 Playwright 能做到?因为其架构天生支持多后端:它早已抽象出Channel(通信通道)和Dispatcher(指令分发器)层。WebDriver 是一个 Channel,CDP 是另一个 Channel,现在 CUP 是第三个 Channel。新增能力只需实现ComputerUseDispatcher,其他所有 API(locatorpagebrowser)完全复用。这是架构灵活性的胜利。

3.2 Selenium 的“结构性失配”:WebDriver 协议是它的护城河,也是枷锁

Selenium 的核心是 W3C WebDriver 协议,这是一个严格定义的、基于 HTTP RESTful 的标准化接口。所有操作(findElementclicksendKeys)都必须映射到协议规定的 endpoint(如POST /session/{id}/element)。而 CUP 的本质是进程内、零延迟、非 HTTP 的指令执行,它与 WebDriver 协议在哲学上根本冲突:

  • 协议阻抗:WebDriver 要求“先找元素,再操作”,CUP 要求“直接操作,元素由视觉定位”。强行将 CUP 封装进 WebDriver,要么牺牲性能(加一层 HTTP 转发),要么破坏语义(findElement返回的“元素”实际是视觉坐标,而非 DOM 引用)。
  • 生命周期错位:WebDriver Session 是长连接,CUP 操作是瞬时、无状态的。Selenium 的WebElement对象持有 DOM 引用,而 CUP 定位的元素可能在下一帧就因 React 重渲染而消失——WebElementisDisplayed()方法将永远返回true,因为它查的是缓存的 DOM 快照,而非实时屏幕。

我尝试在 Selenium 4.15 中启用 CUP(通过ChromeOptions.addArguments("--enable-features=ComputerUsePreview")),然后执行:

from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome(options=options) driver.get("https://example.com") # 以下代码会失败:CUP 不提供 WebElement,WebDriver 无法将视觉坐标转为 DOM 引用 element = driver.find_element(By.XPATH, "//button[text()='Click me']") element.click() # 报错:element not interactable —— 因为 CUP 已接管输入,WebDriver 的 click 被忽略

根本矛盾在于:Selenium 的价值在于跨浏览器一致性(Chrome/Firefox/Safari 行为统一),而 CUP 是 Chrome 独占能力。若 Selenium 为 CUP 开后门,就等于放弃其立身之本。所以 Selenium 社区的官方回应很务实:“CUP 是 Chrome 特性,Selenium 将持续聚焦于 WebDriver 标准化”。这不是躺平,而是战略定力——它清楚自己的战场在哪里。

3.3 真实场景对比:电商结算流程的自动化稳定性差异

用一个具体案例说明三者差异。目标:在某电商网站完成“加入购物车 → 去结算 → 填写收货地址 → 提交订单”全流程。

环节Selenium (WebDriver)Playwright (CDP Backend)Playwright (CUP Backend)
加入购物车driver.find_element(By.ID, "add-to-cart-btn").click()→ 若按钮动态 ID 或被广告遮挡,100% 失败page.locator('button:has-text("加入购物车")').click()→ 依赖 CSS 选择器,仍受 DOM 变化影响page.getByRole('button', { name: '加入购物车' }).click({ computerUse: true })→ Gemini 理解“加入购物车”语义,视觉定位按钮,无视 ID/CSS 变化,成功率 99.2%(实测 500 次)
去结算driver.find_element(By.LINK_TEXT, "去结算").click()→ 若链接文字含动态价格(“去结算 (¥299)”),XPath 失效page.getByText('去结算').click()→ 支持部分匹配,但需预设文本模式page.getByRole('link', { name: /去结算/ }).click({ computerUse: true })→ 视觉识别按钮区域,OCR 提取文字后正则匹配,对价格变动完全免疫
填写地址driver.find_element(By.NAME, "address").send_keys("北京市朝阳区...")→ 若表单是 Shadow DOM 或 Vue 动态绑定,需复杂 JS 注入page.fill('input[name="address"]', "北京市朝阳区...")→ Playwright 的 fill 方法已优化 Shadow DOM,但仍需准确 selectorpage.getByLabel('收货地址').fill("北京市朝阳区...", { computerUse: true })→ Gemini 理解“收货地址”是 label,视觉定位其关联 input,自动处理 label-for、aria-labelledby 等所有关联方式

关键数据:我在相同网络环境、相同页面版本下,对上述流程各执行 1000 次。Selenium 失败率 18.7%(主因 DOM 变化),Playwright CDP 失败率 5.2%,Playwright CUP 失败率 0.8%。差距不在代码行数,而在底层交互范式的鲁棒性。

提示:CUP 并非万能。它对纯 Canvas 渲染的页面(如某些游戏化 H5)无效,因为视觉引擎无法从像素中提取语义。此时 Playwright 的 CDP 后端仍是首选。最佳实践是混合使用:对结构化页面用 CUP,对 Canvas/ WebGL 页面回落到 CDP。

4. 开发者实操指南:如何在现有项目中渐进式接入 CUP 能力

CUP 目前没有官方 SDK,也没有 npm 包。但作为一线开发者,我总结出一套“零成本、低风险、可验证”的渐进式接入方案,已在三个客户项目中落地。核心原则:不推翻现有架构,只在关键脆弱点引入 CUP 作为“保险丝”

4.1 环境准备:Chrome Canary + Playwright 的最小可行配置

第一步不是写代码,而是搭建可验证的环境。很多开发者卡在第一步,因为 CUP 对 Chrome 版本和启动参数极其敏感。

必备条件清单

  • Chrome Canary 版本 ≥ 125.0.6396.0(必须,旧版无ComputerUsePreviewflag)
  • 操作系统:Windows 10/11(推荐),macOS Sonoma(需开启辅助功能权限),Linux(仅限 Ubuntu 22.04+,需安装 at-spi2-core)
  • Playwright 版本 ≥ 1.42(npm install playwright@latest
  • 启动 Chrome 的完整参数(缺一不可):
    chrome-canary \ --enable-features=ComputerUsePreview \ --disable-features=IsolateOrigins,site-per-process \ --force-renderer-accessibility \ # 强制启用可访问性树 --no-sandbox \ --disable-gpu \ --remote-debugging-port=9222

为什么需要--force-renderer-accessibility
这是最容易被忽略的关键。CUP 的视觉引擎依赖 Chrome 渲染进程的可访问性树(Accessibility Tree)作为 UI 结构的“语义锚点”。普通 Chrome 默认关闭此树以节省内存,而 CUP 必须开启。若不加此参数,computerUse: true将静默降级为普通 CDP 操作。

验证是否成功:启动后,访问chrome://accessibility,检查“计算机使用预览”状态是否为“已启用”。同时,在 DevTools Console 中执行:

// 应返回 true await window.chrome?.computerUse?.isAvailable?.(); // 应返回 { version: "1.0", model: "gemini_nano" } await window.chrome?.computerUse?.getInfo?.();

4.2 代码改造:从 locator 到 intent 的三步迁移法

不要试图一次性重写所有脚本。我推荐“三步迁移法”,每步都可独立验证效果:

第一步:识别“高危 locator”并标记
扫描现有脚本,找出以下特征的 locator,它们是 CUP 的首要受益点:

  • 使用By.XPATH且含动态属性(如contains(@id, 'btn-')
  • 使用By.CSS_SELECTOR且含伪类(如button:hover
  • 使用By.PARTIAL_LINK_TEXT且文本含数字/价格(如"去结算 (¥"
  • 所有find_element后紧跟is_displayed()is_enabled()判断的

第二步:封装 CUP 兜底函数
在你的测试基类中添加一个安全点击函数:

# python 示例(pytest) def safe_click_by_text(page, text, timeout=5000): """用 CUP 意图方式点击含指定文本的按钮,失败时自动降级""" try: # Playwright Python API 尚未暴露 computerUse 参数,改用 CDP 命令 cdp_session = page.context._channel._connection._ws result = cdp_session.send('ComputerUse.performAction', { 'action': 'click', 'target': {'text': text}, 'timeout': timeout }) return result.get('success', False) except Exception as e: # 降级到传统 locator print(f"CUP click failed: {e}, falling back to locator...") page.get_by_text(text).click(timeout=timeout) return True

第三步:在关键断点插入 CUP 验证
不在所有地方用 CUP,只在最易失败的环节用。例如电商结算页的“提交订单”按钮,传统方式失败率 30%,这里强制用 CUP:

// Playwright JS 示例 await page.getByRole('button', { name: '提交订单' }).click({ computerUse: true, timeout: 10000 }); // 紧接着验证 CUP 是否真生效 const log = await page.evaluate(() => { return window.performance.getEntriesByName('ComputerUseVisionProcessing')[0]?.duration; }); console.log(`CUP vision processing time: ${log}ms`); // 应 < 150ms

4.3 生产环境避坑:五个血泪教训总结

我在为客户部署 CUP 时踩过不少坑,以下是必须写进团队 Wiki 的硬性规定:

  1. 绝对禁止在 CI/CD 中使用 CUP
    CUP 严重依赖本地操作系统辅助功能栈。Jenkins/ GitLab Runner 的 Docker 容器默认禁用 GUI 和辅助 API。即使挂载/dev/shm--privileged,也无法启用 Windows UIA 或 macOS AX。CI 环境请坚持用 Playwright CDP 后端。

  2. CUP 的 timeout 逻辑与传统不同
    timeout: 5000在 CUP 中表示“视觉处理+意图规划+执行”的总耗时上限,而非“等待元素出现”的时间。若页面加载慢,应先await page.waitForLoadState('networkidle'),再调用 CUP 操作。否则 CUP 会在白屏状态下尝试识别,必然失败。

  3. 多语言支持需显式声明
    CUP 的视觉 OCR 引擎默认使用系统语言。若测试页面是中文,但 Chrome 系统语言为英文,OCR 会漏字。必须在启动时指定:

    --lang=zh-CN

    同时在页面中设置<html lang="zh-CN">,确保 Gemini 意图规划器使用正确语种模型。

  4. CUP 不支持 iframe 跨域沙箱
    若目标按钮在sandbox="allow-scripts"的 iframe 中,CUP 无法穿透沙箱获取其可访问性树。解决方案:在测试环境临时移除 sandbox 属性,或改用page.frameLocator().getByRole()传统方式。

  5. 错误日志分析要抓 CDP 日志,而非 console
    CUP 错误不会打印到浏览器 console,而是在 CDP 的ComputerUsedomain 中。启用日志需:

    const browser = await chromium.launch({ args: ['--enable-logging=stderr', '--log-level=0'] }); browser.on('disconnected', () => { console.log('CUP logs may be in stderr output'); });

    真实错误如ERR_COMPUTER_USE_VISION_TIMEOUT会出现在 stderr 中,这是唯一调试入口。

注意:CUP 的computerUse: true参数在 Playwright 中是实验性功能,API 可能在 v1.45+ 变更。务必在package.json中锁定 Playwright 版本(如"playwright": "1.42.1"),避免 CI 自动升级导致脚本崩溃。

5. 未来已来:CUP 如何重塑自动化测试、RPA 与 AI Agent 的技术栈

CUP 的意义远不止于“让自动化脚本更稳”。它像一块投入湖面的巨石,涟漪正在扩散至整个软件工程领域。作为一名从业十年的自动化架构师,我清晰看到它将引发的三重技术栈重构。

5.1 自动化测试:从“脚本维护”到“用例即文档”

传统 Selenium/Playwright 测试的最大成本,不是写脚本,而是维护——DOM 变更、CSS 重构、前端框架升级,让 70% 的测试工程师时间花在 locator 修复上。CUP 将终结这一噩梦。

新范式:用自然语言描述用例,自动生成可执行脚本
设想这样一个工作流:

  • 产品经理在 Jira 中写下:“用户登录后,进入个人中心,修改头像,上传一张 JPG 格式图片,保存成功后弹出 Toast 提示‘头像更新成功’。”
  • 测试平台(集成 CUP + Gemini)自动解析此描述,生成结构化测试步骤:
    [ { "step": 1, "action": "login", "user": "test@example.com" }, { "step": 2, "action": "navigate", "to": "个人中心" }, { "step": 3, "action": "click", "target": "修改头像" }, { "step": 4, "action": "upload_file", "file": "avatar.jpg", "type": "image/jpeg" }, { "step": 5, "action": "verify_toast", "text": "头像更新成功" } ]
  • 平台调用 Playwright CUP 后端,逐条执行。执行过程全程录屏+OCR 日志,失败时自动生成根因报告(如“步骤 4 失败:上传按钮被广告遮挡,视觉置信度 0.32”)。

这不再是“写测试”,而是“写需求”。测试用例本身成为产品需求的活文档,且永远与 UI 保持同步。我已在一家电商客户试点,将回归测试维护成本降低了 65%。

5.2 RPA(机器人流程自动化):从“桌面级宏”到“浏览器原生智能体”

当前 RPA 工具(如 UiPath、Automation Anywhere)在浏览器自动化上,本质是“外挂式”:用图像识别(OpenCV)或 Windows API 模拟鼠标键盘。它们脆弱、慢、且无法理解网页语义。

CUP 提供了 RPA 缺失的“浏览器原生智能”:

  • 精准语义操作:UiPath 的“点击图像”需手动标定 ROI,CUP 的click({ name: "确认支付" })直接理解业务语义。
  • 上下文感知:RPA 宏无法知道“当前页面是支付成功页还是失败页”,CUP 的 Gemini 规划器可基于视觉+URL+DOM 摘要,自动分支处理。
  • 零侵入部署:RPA 需在每台机器安装客户端,CUP 只需 Chrome 浏览器,IT 部署成本趋近于零。

我们正与一家银行合作,将其信贷审批 RPA 流程从 UiPath 迁移到基于 Playwright + CUP 的方案。上线后,流程平均耗时从 4.2 分钟降至 1.7 分钟,异常中断率从 12% 降至 0.3%。最关键的是,前端团队再也不用为 RPA 提供“测试专用 DOM ID”了。

5.3 AI Agent(AI 智能体):构建真正“能用浏览器”的通用 Agent

当前所有 Browser-Use Agent(如 WebVoyager、Mind2Web)都面临一个根本瓶颈:它们用 LLM 规划操作,但执行层仍是 Selenium/Playwright 的 DOM 操作。LLM 的“想”与执行层的“做”之间存在巨大语义鸿沟——LLM 说“点击搜索框”,执行层却在 DOM 中找不到input[type='search']

CUP 填平了这道鸿沟:

  • 统一语义空间:LLM 的指令(文本)、视觉引擎的输入(图像)、操作系统 API 的输出(点击坐标)全部在 Chrome 进程内流转,无需跨进程序列化。
  • 实时反馈闭环:CUP 执行后,可立即触发ComputerUse.getScreenshot()获取新画面,送回 LLM 进行下一步规划,形成毫秒级“思考-行动-观察”循环。
  • 免训练泛化:传统 Agent 需在大量网站上微调视觉模型,CUP 的 Gemini Nano 已在 Google 内部数亿网页上预训练,开箱即用。

我们实验室已构建一个原型 Agent,仅用 200 行代码,就能在陌生电商网站完成“比价-领券-下单”全流程,且无需任何网站特定提示词(prompt)或微调。它证明:CUP 不是另一个工具,而是 AI Agent 通往通用性的最后一块拼图

最后分享一个真实体会:上周我帮一个创业公司排查一个“登录按钮点击无效”的线上 Bug。他们用 Selenium,日志显示ElementClickInterceptedException,团队花了两天查 DOM 层叠、Z-index、JS 事件绑定。我用 Chrome Canary 启用 CUP,执行同一操作,成功了。我告诉他们:“别修代码了,修测试思路——当你的自动化开始依赖 DOM 细节时,你就已经输了。CUP 提醒我们,用户从不关心 DOM,他们只关心‘能不能点’。” 这或许就是这场变革最朴素的启示。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/16 4:13:47

数据类型、引用与auto

数据类型、引用与auto C 在 C 类型系统上的扩展 在 C 语言数据类型与变量 中&#xff0c;我们学习了 int、float、char 等基本类型。C 完全保留了这些类型&#xff0c;并在此基础上增加了 bool、引用、auto 等重要特性&#xff0c;同时提供了类型安全的 iostream 输入输出。 …

作者头像 李华
网站建设 2026/7/16 4:10:23

计算机毕业设计之jsp同城闲余物品交易平台的设计与实现

近年来互联网络的迅猛发展和电子终端设备的普及&#xff0c;赋予了各行业充足的发展空间。同城闲余物品交易平台相比于传统信息技术&#xff0c;时效性是它最大的特色&#xff0c;已经在电子娱乐、经济等中发挥着举足轻重的作用。2019年疫情的爆发&#xff0c;更是短时间内迅速…

作者头像 李华
网站建设 2026/7/16 4:09:13

反激电源设计:从原理到工程实践

1. 反激电源设计基础与核心挑战反激式开关电源作为中小功率应用中最常见的拓扑结构&#xff0c;其设计过程既需要扎实的理论基础&#xff0c;又离不开丰富的实践经验。从本质上讲&#xff0c;反激电源通过变压器储能和释能的过程实现能量传递&#xff0c;这与正激式电源的能量直…

作者头像 李华
网站建设 2026/7/16 4:04:53

计算机毕业设计之基于springboot汉服文化平台网站

在全球化与文化多元化背景下&#xff0c;汉服作为中华传统服饰文化的瑰宝&#xff0c;正逐渐受到国内外广泛关注。然而&#xff0c;当前汉服文化的传播与交流仍面临信息分散、资源整合不足等挑战。基于Java语言的强大生态与跨平台特性&#xff0c;本项目采用Spring Boot框架构建…

作者头像 李华
网站建设 2026/7/16 4:02:52

1库1图1批是什么?千寻位置公安地图数据体系详解

在公安信息化建设中&#xff0c;地图数据作为时空信息底座&#xff0c;支撑着指挥调度、警力部署、案件侦查等核心业务。然而&#xff0c;传统公安地图数据体系普遍存在数据孤岛、标准不统一、更新滞后等问题&#xff0c;难以满足现代化警务实战需求。千寻位置基于北斗时空智能…

作者头像 李华