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 PreviewCUP的底层能力它并非替代 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-featuresComputerUsePreview未开放公开 API所有“开源”说法均指向 Chromium 开源代码中已落地的能力模块而非独立 SDK。所谓“开源”是代码可见但能力尚未封装为开发者可用接口。2. Computer Use Preview 的真实技术栈三重能力叠加缺一不可很多人看到“谷歌开源”就默认是 GitHub 上一个 repoclone 下来 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()获取InvokePattern、ValuePattern等实现点击、输入、滚动。macOS集成 Accessibility APIAX API通过AXUIElementRef获取元素调用AXUIElementPerformAction(kAXPressAction)触发操作。Linux基于 AT-SPIAssistive Technology Service Provider Interface通过 D-Bus 与 at-spi2-core 通信调用org.a11y.atspi.Action.DoAction()。关键验证我在 Windows 11 上启动 Chrome Canary 125启用--enable-featuresComputerUsePreview后用 Process Explorer 查看 chrome.exe 进程的 DLL 加载列表明确看到uiautomationcore.dll和oleacc.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-pathchrome://resources/gemini_nano_quantized.tflite。这证实 Gemini Nano 模型以 TFLite 格式嵌入 Chrome专为端侧低功耗推理优化。这三层能力OS 代理是执行基础视觉引擎是感知输入Gemini 规划器是决策核心。它们共同构成了 CUP 的完整技术栈——它不是一个“工具”而是一个运行在浏览器内的、具备感知与决策能力的微型智能体Agent。3. 为什么 Playwright 成为最大受益者而 Selenium 处境最尴尬当“谷歌开源新工具”消息传出技术圈第一反应是“Selenium vs Playwright 新战争”。但深入代码层后我发现这种对比本身就有问题Selenium 和 Playwright 是同一时代的产物都基于 WebDriver 协议而 CUP 是下一代范式。真正的格局是Playwright 正在快速适配 CUPSelenium 则因架构刚性难以融入。这不是优劣之争而是进化路径的分叉。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-featuresComputerUsePreview] }); 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 是一个 ChannelCDP 是另一个 Channel现在 CUP 是第三个 Channel。新增能力只需实现ComputerUseDispatcher其他所有 APIlocator、page、browser完全复用。这是架构灵活性的胜利。3.2 Selenium 的“结构性失配”WebDriver 协议是它的护城河也是枷锁Selenium 的核心是 W3C WebDriver 协议这是一个严格定义的、基于 HTTP RESTful 的标准化接口。所有操作findElement、click、sendKeys都必须映射到协议规定的 endpoint如POST /session/{id}/element。而 CUP 的本质是进程内、零延迟、非 HTTP 的指令执行它与 WebDriver 协议在哲学上根本冲突协议阻抗WebDriver 要求“先找元素再操作”CUP 要求“直接操作元素由视觉定位”。强行将 CUP 封装进 WebDriver要么牺牲性能加一层 HTTP 转发要么破坏语义findElement返回的“元素”实际是视觉坐标而非 DOM 引用。生命周期错位WebDriver Session 是长连接CUP 操作是瞬时、无状态的。Selenium 的WebElement对象持有 DOM 引用而 CUP 定位的元素可能在下一帧就因 React 重渲染而消失——WebElement的isDisplayed()方法将永远返回true因为它查的是缓存的 DOM 快照而非实时屏幕。我尝试在 Selenium 4.15 中启用 CUP通过ChromeOptions.addArguments(--enable-featuresComputerUsePreview)然后执行from selenium import webdriver from selenium.webdriver.common.by import By driver webdriver.Chrome(optionsoptions) driver.get(https://example.com) # 以下代码会失败CUP 不提供 WebElementWebDriver 无法将视觉坐标转为 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[nameaddress], 北京市朝阳区...)→ 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-corePlaywright 版本 ≥ 1.42npm install playwrightlatest启动 Chrome 的完整参数缺一不可chrome-canary \ --enable-featuresComputerUsePreview \ --disable-featuresIsolateOrigins,site-per-process \ --force-renderer-accessibility \ # 强制启用可访问性树 --no-sandbox \ --disable-gpu \ --remote-debugging-port9222为什么需要--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, timeout5000): 用 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(fCUP click failed: {e}, falling back to locator...) page.get_by_text(text).click(timeouttimeout) 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); // 应 150ms4.3 生产环境避坑五个血泪教训总结我在为客户部署 CUP 时踩过不少坑以下是必须写进团队 Wiki 的硬性规定绝对禁止在 CI/CD 中使用 CUPCUP 严重依赖本地操作系统辅助功能栈。Jenkins/ GitLab Runner 的 Docker 容器默认禁用 GUI 和辅助 API。即使挂载/dev/shm和--privileged也无法启用 Windows UIA 或 macOS AX。CI 环境请坚持用 Playwright CDP 后端。CUP 的 timeout 逻辑与传统不同timeout: 5000在 CUP 中表示“视觉处理意图规划执行”的总耗时上限而非“等待元素出现”的时间。若页面加载慢应先await page.waitForLoadState(networkidle)再调用 CUP 操作。否则 CUP 会在白屏状态下尝试识别必然失败。多语言支持需显式声明CUP 的视觉 OCR 引擎默认使用系统语言。若测试页面是中文但 Chrome 系统语言为英文OCR 会漏字。必须在启动时指定--langzh-CN同时在页面中设置html langzh-CN确保 Gemini 意图规划器使用正确语种模型。CUP 不支持 iframe 跨域沙箱若目标按钮在sandboxallow-scripts的 iframe 中CUP 无法穿透沙箱获取其可访问性树。解决方案在测试环境临时移除 sandbox 属性或改用page.frameLocator().getByRole()传统方式。错误日志分析要抓 CDP 日志而非 consoleCUP 错误不会打印到浏览器 console而是在 CDP 的ComputerUsedomain 中。启用日志需const browser await chromium.launch({ args: [--enable-loggingstderr, --log-level0] }); 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: testexample.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 的“点击图像”需手动标定 ROICUP 的click({ name: 确认支付 })直接理解业务语义。上下文感知RPA 宏无法知道“当前页面是支付成功页还是失败页”CUP 的 Gemini 规划器可基于视觉URLDOM 摘要自动分支处理。零侵入部署RPA 需在每台机器安装客户端CUP 只需 Chrome 浏览器IT 部署成本趋近于零。我们正与一家银行合作将其信贷审批 RPA 流程从 UiPath 迁移到基于 Playwright CUP 的方案。上线后流程平均耗时从 4.2 分钟降至 1.7 分钟异常中断率从 12% 降至 0.3%。最关键的是前端团队再也不用为 RPA 提供“测试专用 DOM ID”了。5.3 AI AgentAI 智能体构建真正“能用浏览器”的通用 Agent当前所有 Browser-Use Agent如 WebVoyager、Mind2Web都面临一个根本瓶颈它们用 LLM 规划操作但执行层仍是 Selenium/Playwright 的 DOM 操作。LLM 的“想”与执行层的“做”之间存在巨大语义鸿沟——LLM 说“点击搜索框”执行层却在 DOM 中找不到input[typesearch]。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他们只关心‘能不能点’。” 这或许就是这场变革最朴素的启示。

相关新闻

最新新闻

Inno Setup多语言配置实战:从界面翻译到运行时语言切换

Inno Setup多语言配置实战:从界面翻译到运行时语言切换

1. Inno Setup多语言配置的核心价值 当你开发的软件需要面向全球用户时,安装包的多语言支持就成为了必备功能。想象一下,一个日本用户打开全是中文的安装界面,或者德国用户面对英文安装指引时的困惑——这些体验细节往往决定了用户对产品的第…

2026/7/16 5:40:33
智谱清言可以生成excel吗?AI导出鸭解锁高效导出新解法:

智谱清言可以生成excel吗?AI导出鸭解锁高效导出新解法:

《智谱清言可以生成excel吗?AI导出鸭给出实操答案》《智谱清言可以生成excel吗?AI导出鸭解锁高效导出新解法》 正文 在AI工具深度渗透办公场景的当下,“智谱清言可以生成excel吗”成为不少职场人、内容创作者的核心疑问。智谱清言作为主流AI模…

2026/7/16 5:40:33
接口测试课程2

接口测试课程2

接口测试流程1.接口用例设计与评审-> 2.接口调试-> 3.接口测试-> 4.回归测试-> 5.缺陷跟踪-> 6测试总结单接口用例设计有参数的接口要充分考虑到有什么输入规则,还要在这些规则的基础上划分出正向场景和逆向场景提取测试点,再根据提…

2026/7/16 5:40:33
VM深度学习

VM深度学习

海康威视 VisionMaster (VM) 的深度学习功能使用流程主要分为模型训练和方案部署两大阶段:第一阶段:模型训练(使用 VisionTrain 工具)最低硬件配置要求:操作系统:Windows 7 / Windows 10(64位中…

2026/7/16 5:40:33
生产级异步工具:用 async def 打造高性能 Agent

生产级异步工具:用 async def 打造高性能 Agent

💡 摘要:当 Agent 需要调用外部 API、查询数据库时,同步工具会阻塞整个事件循环。本文教你用 async def 编写生产级异步工具,实现并发执行、结构化错误处理和优雅降级,让 Agent 性能提升数倍。引言 你有没有遇到过这样…

2026/7/16 5:40:33
Agent工程化三支柱:MCP协议、SKILLS封装与Context Engine

Agent工程化三支柱:MCP协议、SKILLS封装与Context Engine

1. 项目概述:为什么“从零到一,再到可落地”是Agent开发最真实的写照我带过六支AI工程团队,亲手交付过17个上线运行超一年的Agent系统,从银行智能风控助手、制造业设备预测性维护Agent,到政务热线意图识别中台——所有…

2026/7/16 5:35:32

月新闻