发布时间:2026/8/28 14:33:33
AI智能体实战:browser-use浏览器自动化与video-use视频解析全攻略 最近接手了一个内部提效项目核心诉求是“让大模型自己把网页上的事办了”。看了不少自动化方案最终还是落在了 browser-use 这类智能体框架上。顺手也把视频内容的自动化处理链路一并梳理了一遍也就是标题里提到的 video-use 方向。这篇文章就把这套从浏览器自动化到视频内容解析的实战经验整理出来包含完整代码、环境配置、常见坑点和工程建议适合想用 AI 智能体替代重复人工操作的开发者参考。1. 背景与核心概念1.1 什么是 browser-usebrowser-use 是一个基于 Python 的开源智能体框架核心作用是让大语言模型LLM直接操作真实浏览器。传统爬虫用代码硬编码选择器去定位页面元素页面一改结构就失效而 browser-use 让模型“看”页面内容像人一样理解页面、决定点击哪里、输入什么内容。简单来说它的工作流程可以拆成四步大模型接收任务描述。框架将浏览器当前页面状态DOM 结构、可见文本、可交互元素转换为模型可理解的上下文。模型基于页面内容自主决策下一步动作点击、输入、滚动、跳转、等待。框架执行模型给出的动作更新页面状态往复循环直到任务完成。这种方式特别适合以下场景需要在多个内部系统中反复录入、查询、核对数据的 RPA 类流程。需要理解页面语义而不是固定选择器的数据采集任务。需要模拟真实用户行为的端到端测试。将浏览器能力作为工具暴露给 AI Agent 使用的自动化编排场景。1.2 什么是 video-usevideo-use 不是 browser-use 的官方子项目而是社区对“视频智能体工具链”的一种统称。它解决的是另一类问题如何让 AI 自动化地处理视频内容包括视频理解、内容摘要、关键帧提取、语音转写、标签生成以及视频生成等。在实际业务中video-use 通常会和 browser-use 联合使用。例如用 browser-use 自动打开视频管理后台批量上传视频素材。用 video-use 对视频进行结构化解析生成标题、简介、标签后自动回填到内容管理系统中。用多模态大模型对视频逐帧分析提取产品卖点、违禁词、竞品信息。这篇文章里的实战示例会分别演示 browser-use 的浏览器自动化能力和 video-use 的视频解析链路最后再把两者串成一个完整场景。1.3 为什么需要掌握这类工具现在的 AI 应用不再满足于“聊天问答”而是进入“智能体执行任务”的阶段。大模型负责理解和规划工具负责执行。browser-use 这类框架把互联网最大的交互入口——浏览器——变成了模型可调用的工具video-use 则把视频这种非结构化数据变成模型可理解的信息。对后端开发者来说掌握这类工具意味着可以快速把重复的人工操作交付给 AI减少低价值劳动。对测试和运维同学来说掌握浏览器自动化意味着可以构建更智能的巡检、巡检报告和异常截图体系。2. 环境准备与版本说明2.1 基础运行环境本文示例以 Python 3.10 以上版本为例。browser-use 依赖 Playwright 驱动浏览器内核因此本机需要安装对应浏览器。下面是通用的环境清单依赖项说明Python3.10 及以上版本建议使用虚拟环境browser-useAI 浏览器智能体框架用于浏览器自动化playwrightbrowser-use 底层浏览器控制库langchain-openai大模型调用封装如使用 OpenAI 兼容接口ffmpeg视频处理工具video-use 示例中用于音视频分解openai-whisper音频转写提取视频中的语音内容注意browser-use 的 API 随着版本迭代变化较快。本文基于我当前使用的版本编写如果你的版本较新部分参数名可能需要调整。建议安装后先查看官方示例确认接口签名。2.2 创建项目环境mkdir ai-browser-agent cd ai-browser-agent python -m venv venv source venv/bin/activate # Windows 下执行 venv\Scripts\activate pip install --upgrade pip pip install browser-use playwright langchain-openai playwright install chromiumplaywright install chromium这一步很关键它会下载 Chromium 内核。如果不执行后续运行时会报浏览器启动失败的错误。视频处理场景还需要额外安装 ffmpeg# macOS brew install ffmpeg # Ubuntu/Debian sudo apt update sudo apt install ffmpeg2.3 自定义工具扩展最新版本的 browser-use 允许用户通过tool装饰器注册自定义 Python 函数将普通函数封装为模型可调用的工具。当内置的按钮点击、输入、滚动等原子操作无法满足需求时自定义工具能显著扩展智能体能力。例如你可以把“获取当前时间”“调用内部接口查询订单状态”“执行一段 SQL”封装成工具让模型在任务中直接调用。这种模式和函数调用机制一致是 browser-use 从简单演示走向真实业务的关键能力。3. 核心原理拆解3.1 LLM 如何控制浏览器browser-use 底层基于 Playwright 与真实浏览器建立连接。每次模型需要决策时框架会从浏览器中提取一份结构化的“可访问性快照”这份快照包含当前页面可见的文本内容。页面中的按钮、输入框、链接等可交互元素。元素的编号索引和基础属性。然后将快照传给大模型。模型根据任务目标和当前页面状态输出类似这样的决策点击编号为 12 的元素。在编号为 8 的输入框中输入内容。滚动页面到某个位置。等待固定时间。框架解析模型输出并调用 Playwright 执行对应动作执行完成后再次生成新的页面快照继续让模型决策。整个过程形成一个“感知-决策-执行”的闭环。3.2 核心 API 拆解以目前常见的写法为例一个最小任务是这样组织的from langchain_openai import ChatOpenAI from browser_use import Agent import asyncio async def run_search_task(): agent Agent( task打开百度搜索浏览器自动化框架 browser-use并把搜索结果标题列出来, llmChatOpenAI(modelgpt-4o, temperature0), ) result await agent.run(max_steps20) print(result) if __name__ __main__: asyncio.run(run_search_task())各参数的作用参数作用task给智能体的任务描述描述越具体执行越准确llm驱动智能体决策的大模型实例max_steps最大执行步数防止模型无限循环controller自定义工具控制器注册额外能力3.3 自定义 Controller 注册工具当内置能力不够时可以通过Controller注册自定义工具。这里的核心思路是写一个普通 Python 函数加上controller.action装饰器函数就变成了模型可以调用的工具。from browser_use import Controller from pydantic import BaseModel controller Controller() class DateParams(BaseModel): format: str %Y-%m-%d controller.action(获取当前日期, param_modelDateParams) async def get_current_date(format: str) - str: from datetime import datetime return datetime.now().strftime(format)注册后将controller传入Agentagent Agent( task告诉我今天的日期, llmllm, controllercontroller, )这样模型在回答任务时如果发现需要当前日期就会调用这个自定义工具来获取。对于复杂业务可以把内部系统查询、数据库读取、文件操作全部封装成这类工具。3.4 容易混淆的概念新手容易把 browser-use 和 Selenium、Playwright 原生自动化混为一谈。两者区别如下方向传统自动化Selenium/Playwrightbrowser-use定位元素依赖选择器、XPath、CSS依赖模型理解语义页面改版影响改版后脚本需要重写改版后模型通常能自适应适用复杂度适合稳定页面适合页面结构经常变化的场景成本开发成本高依赖模型调用费用稳定性更高确定性执行受模型能力影响这个区别很关键。browser-use 不能替代传统自动化它更适合把“需要人来判断”的流程交给模型而不是把“已经确定、高频、需要毫秒级响应”的流程交给模型。4. 完整实战案例4.1 场景设计为了演示 browser-use 和 video-use 的配合我们设计一个内容审核场景用 browser-use 自动登录内部内容管理后台。在后台打开待审核视频列表。下载视频文件到本地。用 video-use 链路对视频做解析提取音频、转写字幕、抽取关键帧。将视频摘要、语音转写文本、关键帧信息汇总成审核辅助报告。演示环境是内部测试系统生产环境使用前必须确保有合法授权并遵守平台的 robots 协议和用户协议。4.2 项目结构为了让代码清晰我按下面的结构组织项目ai-browser-agent/ ├── .env # 环境变量 ├── config.py # 配置项 ├── main.py # 主流程 ├── browser_tools.py # browser-use 自定义工具 ├── video_tools.py # 视频解析工具模块 └── requirements.txt # 依赖清单4.3 编写配置文件.env文件保存敏感信息OPENAI_API_KEYsk-xxxx OPENAI_BASE_URLhttps://api.openai.com/v1 BROWSER_HEADLESSfalse VIDEO_DIR./downloads ALLOWED_DOMAINadmin.internal.example.comconfig.py 读取配置import os from dotenv import load_dotenv load_dotenv() class Config: OPENAI_API_KEY os.getenv(OPENAI_API_KEY) OPENAI_BASE_URL os.getenv(OPENAI_BASE_URL, https://api.openai.com/v1) HEADLESS os.getenv(BROWSER_HEADLESS, false).lower() true VIDEO_DIR os.getenv(VIDEO_DIR, ./downloads) ALLOWED_DOMAIN os.getenv(ALLOWED_DOMAIN, )4.4 browser-use 自动化登录与列表提取在 browser_tools.py 中我注册了一个自定义动作用于检查当前页面 URL 是否在允许的域名范围内防止模型误操作跳转到外部站点from browser_use import Controller from pydantic import BaseModel controller Controller() class CheckUrlParams(BaseModel): expected_domain: str controller.action(检查当前页面域名是否允许, param_modelCheckUrlParams) async def check_url_domain(expected_domain: str) - str: # 需要通过框架上下文获取当前页面地址 # 示例中简化为返回检查结果 if expected_domain and expected_domain not in current_url: return 当前页面不在允许域名内请回到后台系统 return 当前页面允许访问登录和列表提取的主逻辑放在 main.py 中。由于不同内部系统的登录方式差异很大这里用伪代码演示流程你需要根据自己系统的实际选择器或操作流程来替换对应步骤import asyncio import config from browser_use import Agent from browser_tools import controller async def process_video_review(): prompt f 请完成以下任务 1. 打开内部内容后台地址 {config.LOGIN_URL}。 2. 使用账号密码登录账号信息已保存在环境变量中。 3. 登录成功后进入“视频审核”菜单。 4. 找到最新的待审核视频点击进入详情页。 5. 将详情页中的视频标题、上传时间、视频下载地址、当前状态记录到结果文件中。 agent Agent( taskprompt, llmllm, controllercontroller, ) result await agent.run(max_steps40) return result需要强调一点把账号密码直接写进任务描述是一个高风险行为生产环境应改用自定义工具注入凭据不要让模型在上下文中保存明文密码。4.5 video-use 视频解析链路video_tools.py 实现视频解析核心逻辑。先抽取视频音频和关键帧import subprocess import os def extract_audio(video_path: str, audio_path: str): 使用 ffmpeg 提取视频中的音频轨道 cmd [ ffmpeg, -y, -i, video_path, -vn, -acodec, pcm_s16le, -ar, 16000, -ac, 1, audio_path, ] subprocess.run(cmd, checkTrue, capture_outputTrue) def extract_keyframes(video_path: str, output_dir: str, interval: int 10): 每隔指定秒数抽取一帧关键帧 os.makedirs(output_dir, exist_okTrue) cmd [ ffmpeg, -y, -i, video_path, -vf, ffps1/{interval}, os.path.join(output_dir, frame_%04d.jpg), ] subprocess.run(cmd, checkTrue, capture_outputTrue)提取音频后用语音转写模型把音频变成文字再交给大模型做摘要和标签提取def transcribe_audio(audio_path: str) - str: 使用 openai-whisper 将音频转写为文本 import whisper model whisper.load_model(base) result model.transcribe(audio_path) return result[text]获得文本后使用大模型生成结构化审核信息def generate_video_summary(transcript: str, llm) - dict: 将视频转写文本交给大模型生成摘要与标签 messages [ { role: system, content: 你是一名视频内容审核助手。请根据用户提供的视频语音转写文本输出1. 一句话内容摘要2. 五个内容标签3. 是否存在违禁风险。, }, {role: user, content: transcript}, ] response llm.invoke(messages) return {summary: response.content}4.6 串联 browser-use 与 video-usemain.py 中的完整主流程如下import asyncio import os import config import video_tools from pathlib import Path async def main(): # 1. 浏览器自动化获取待审核视频信息 video_meta await fetch_video_meta() # 2. 下载视频文件到本地演示用下载前必须确认授权 video_path download_video(video_meta[url]) # 3. 提取音频 audio_path video_path.replace(.mp4, .wav) video_tools.extract_audio(video_path, audio_path) # 4. 转写语音 transcript video_tools.transcribe_audio(audio_path) # 5. 生成审核摘要 summary video_tools.generate_video_summary(transcript, llm) # 6. 输出审核报告 print(审核报告) print(summary) if __name__ __main__: asyncio.run(main())4.7 运行与预期输出在项目根目录执行python main.py如果一切正常会看到浏览器窗口弹出并自动完成登录、列表访问、详情页信息提取等操作视频解析链路则会在本地生成音频文件和关键帧图片控制台输出最终的审核摘要内容。由于内部系统和模型版本不同预期输出无法给出绝对固定的文本。但整体流程应该串得通浏览器智能体获取了视频元信息本地视频解析链路生成了结构化结果两个模块通过文件或函数调用完成数据交换。5. 常见问题与排查思路5.1 高频问题清单问题现象常见原因解决思路浏览器启动失败未安装 chromium 内核执行playwright install chromium模型调用超时网络不稳定或 API Key 无效检查网络和 Key设置超时重试元素点击无效页面使用了 iframe 或 Shadow DOM使用 browser-use 的 iframe 支持能力或在任务描述中注明智能体任务未完成就结束达到max_steps上限增大步数上限拆分子任务登录凭据被识别没有合理模拟用户行为增加等待、随机延时避免高频操作视频转写结果为空白音频提取失败或采样率不匹配检查 ffmpeg 命令输出确认音频轨存在输出 report 文件丢失文件路径权限问题确认目录可写使用绝对路径模型决策不准确任务描述太模糊将任务拆成更细颗粒度的子任务5.2 典型报错场景分析场景一安装后运行报 ModuleNotFoundError。这种通常是包没装全或 Python 环境没激活。执行pip list | grep browser-use确认包是否已安装并确保在虚拟环境中运行脚本。场景二浏览器能打开但页面一直停留不动。可能原因有两个一是模型 API 调用失败但没有明显报错建议打印llm调用日志二是浏览器页面存在弹窗或验证码模型不知道如何处理。此时可以在任务描述里补充“如果出现弹窗先点击关闭按钮”。场景三视频解析时 ffmpeg 报错。检查 ffmpeg 是否安装并查看具体错误码。常见的是文件路径包含空格或特殊字符建议统一使用Path对象处理路径避免手写字符串拼接。5.3 排查建议遇到问题不要盯着智能体的报错信息看先分清楚是哪个环节出了问题是浏览器操作环节还是模型决策环节是视频解析环节还是最终汇总环节打印关键中间结果例如把模型决策输出、视频转写文本都输出到日志文件。这样能快速定位问题而不是盲目调参。6. 最佳实践与工程建议6.1 任务设计建议智能体的任务描述质量直接决定执行效果。好的任务描述应该包含目标、路径、兜底策略。反面示例“打开后台找到那个视频看看有没有问题。”正面示例“打开后台视频审核页面登录后找到第一个状态为‘待审核’的视频进入详情页将标题和播放地址填入本地 JSON 文件。如果找不到待审核视频直接输出‘无待审核任务’。”此外尽量把长任务拆成多个短任务。一个 Agent 跑 40 步容易出现步骤偏差两个 Agent 各跑 15 步配合检查点稳定性会好很多。6.2 配置与敏感信息管理API Key、账号密码一律放到环境变量或密钥管理服务中不要硬编码在代码里。自定义工具负责获取敏感信息避免把明文凭据拼到任务描述里。生产环境使用独立的低权限账号并配置严格的 IP 白名单。项目中的.env文件加入.gitignore防止误提交。6.3 安全边界智能体只能访问业务需要的域名如果框架支持 URL 过滤一定要配置。视频下载前确认有合法授权遵守平台服务条款。审核类任务不要把原始视频的敏感画面直接发送给云端大模型应先本地脱敏。所有自动化操作建议在测试环境充分验证后再用于生产。6.4 日志与可观测性智能体任务不记录日志相当于黑盒运行。建议至少记录以下几类内容任务开始时间、结束时间、执行状态。模型每次决策的动作和页面 URL。每个阶段的耗时。视频解析的中间产物路径。最终输出文件内容摘要。结构化 JSON 日志是最方便的后续可以直接接入日志平台做分析和告警。6.5 成本控制browser-use 每执行一次任务都会消耗多次模型调用长任务调用量不容小觑。控制成本的方式有任务描述精简减少无效步骤。优先使用性价比高的模型处理简单步骤。对高频重复任务先做结果缓存。合理设置max_steps避免模型在页面中反复试探。6.6 失败重试与人工兜底任何智能体方案都可能失败尤其是登录流程和验证码环节。建议在工程上做好重试失败后自动重试 2 到 3 次。达到重试上限后自动发消息通知人工处理。保留页面截图和当时的状态快照方便人工快速定位问题。7. 总结与学习路线这篇文章围绕 browser-use 和 video-use 两个方向展开了完整的实战链。核心要点可以总结为browser-use 解决了“让大模型操作真实浏览器”的问题适合任务描述清晰、需要语义理解的自动化场景。video-use 也不是单一框架而是视频解析、语音转写、关键帧提取、内容摘要等一系列工具的集合。两者结合可以把“浏览器获取视频信息 → 本地下载解析 → AI 生成结构化审核结果”的完整流程自动化。如果你想继续深入下一步可以从这几个方向入手研究 Playwright 的底层 API理解浏览器自动化的事件模型和等待机制。学习提示词工程掌握如何为智能体编写更稳定的任务描述。了解多模态大模型的视频理解能力目前不少模型可以直接输入视频帧序列省去本地抽取关键帧的步骤。关注 browser-use 社区的新版本特性这类项目迭代很快及时更新认知很重要。实际落地时优先关注安全和合规授权要清晰、凭据要加密、数据要脱敏、操作要留痕。自动化不是越猛越好稳定可控才是生产环境的底线。如果你正在规划类似的智能体自动化项目建议先拿一个低频、低风险的流程做试点跑顺之后再逐步扩大范围。这样既能验证效果也能积累团队对这套技术栈的运维经验。

相关新闻

2026/8/28 14:28:29

i.MX8M Plus NPU实战:从模型转换到性能调优全指南

1. 从MCU到NPU:为什么边缘设备需要一颗AI专用核 做嵌入式这几年,我一直关注着一个趋势:MCU级别的设备开始跑神经网络推理了。早些年想在嵌入式设备上做视觉检测、语音识别、异常检测这类功能,基本只有两条路——要不把数据传到云端…

2026/8/28 14:28:29

三方联手,神经传感器可穿戴设备从概念走向量产

1. 三方联手,神经传感可穿戴从概念走向量产 这几天可穿戴圈子里热度最高的消息,就是Pison、意法半导体(STMicroelectronics)和天美时(Timex)这组跨界组合官宣合作。说它重磅,不是哪家发布了什么…

2026/8/28 14:28:29

AI 生成 PR 堆积如山?用 Rust 写个 CLI 高效初筛

在代码评审中,你是否也发现过这样的场景:仓库里的 PR 数量增长得很快,其中不少由 AI 辅助生成,标题规整、描述标准,但内容同质化明显,逐个核对非常耗时。面对这种“PR 堆成山”的情况,靠人工在网…

2026/8/28 15:18:44

TOPSIS优劣解距离法:多指标决策的量化评估与实战应用

1. 从“选谁更好”到“量化距离”:TOPSIS的决策哲学 做项目、评绩效、选供应商,甚至挑个餐厅,我们每天都在做决策。当面对多个选项,每个选项又有一堆指标时,怎么选才最“科学”?很多人凭感觉,或…

2026/8/28 15:18:44

拆解字符串离线查询难题:SAM、回滚莫队与二次离线的组合应用

1. 从一道国赛模拟题说起:当字符串遇上离线查询 最近在复盘一些算法竞赛的经典题目,特别是那种融合了多种高级数据结构和技巧的“缝合怪”题。这类题目往往能非常全面地考察选手的综合能力,而“白楼剑”这道题就是一个绝佳的例子。它出现在20…

2026/8/28 15:18:44

AMC处理器板Fabric选项详解:从PCIe到10GbE的选型与调试

AMC 处理器板卡这两年我经手过好几块,从最初的数据面交换到后来的控制面应用,绕了一圈下来发现,真正让一块 AMC 板卡在系统里站稳脚跟的,往往不是 CPU 算力本身,而是它背板上那组 Fabric 接口能提供多少种玩法。标题里…

2026/8/26 9:13:28

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/27 10:58:22

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/27 7:46:21

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/28 0:00:34

2026学术工具专业测评|Paperxie全维度性能实测报告[特殊字符]

2026年国内高校毕业论文审核体系全面升级,重复率查重AIGC人工智能检测双检机制正式常态化落地,多所高校明确执行“双项一票否决”制度,重复率超标或AI生成痕迹不达标,均直接取消答辩资格。随着抽检力度加大、学术规范要求升级&…

2026/8/28 0:00:34

凭什么稳居论文工具顶流[特殊字符]Paperxie综合实力深度全解析

2026年论文双检内卷严重,市面上AI论文工具层出不穷,但大多只是单一功能凑数、模板化严重、双检高风险、套路收费。 在一众同质化工具里,Paperxie能长期稳居行业顶流、成为应届生公认毕业神器,从来不是靠营销,而是靠实…

2026/8/28 0:00:34

2026论文工具深度测评|为什么Paperxie是目前最稳的学术工具✅

2026高校论文查重AIGC双检严查常态化。 市面上绝大多数AI论文工具依旧存在明显短板:模板感重、AI痕迹超标、改写毁逻辑、收费套路多、查重不准、格式适配差。 在全网工具普遍“偏科”的现状下,Paperxie凭借全维度均衡实力脱颖而出,成为适配…

2026/8/26 19:34:06

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/26 19:17:08

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/28 11:06:45

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…