MultiOn 是面向开发者的网页自动化 API(Web Automation API):开发者通过 REST 接口或 Python SDK 传入一句自然语言指令(例如“打开亚马逊搜索机械键盘,返回第一件商品的价格”),MultiOn 会在云端真实浏览器中完成理解页面、点击、输入、滚动、翻页等操作,并返回执行状态、结果文本与页面截图。该工具由 Divyanshu Bhargava 创建,定位是“让任何 AI 应用获得操作网页的能力”;2024 年 12 月 Google 发布的 Chrome 浏览器智能体 Project Mariner,其底层网页操作能力由 MultiOn 提供(经双方公开确认)。与传统 Playwright/Selenium 相比,MultiOn 不需要编写 DOM 选择器与等待逻辑,站点改版不影响指令;与开源自托管方案(如 Skyvern)相比,MultiOn 是纯托管服务,免部署免运维。本篇按“速览卡 → 安装配置 → 快速上手 → 核心能力 → 生产部署 → 选型对比 → 误区与面试题”展开,目标是让读者在 30 分钟内跑通第一个真实网页任务。

岗位关联

掌握 MultiOn,等于获得一种“浏览器操作能力”的通用接口:在 RAG 数据采集、网页巡检、Agent 工具调用中复用同一种自然语言驱动范式,是 AI 应用工程师与 Agent 开发者的高价值技能。

目录
  1. 为什么需要 MultiOn:传统浏览器自动化在动态网页面前的维护成本
  2. 安装与环境配置:3 步就绪
  3. 快速上手:10 分钟跑通第一个网页任务
  4. 核心能力详解:3 大支柱
  5. 生产部署与监控:从上线到运维
  6. 版本迭代
  7. AI 应用场景
  8. 常见误区
  9. 面试题
  10. 参考来源
工具类型
网页自动化 API(托管型 Browser Agent)
开发商
MultiOn AI, Inc.(美国·旧金山)
开源协议
商业服务,SDK 免费
GitHub Stars
无
主要语言
Python(官方 SDK)/ REST API
当前版本
Agent API v1 + Browse API v1(双端点并存)
安装方式
pip install multion
下载地址
官方文档
上手难度
★★☆☆☆(简单,自然语言即接口)
适合人群
AI 应用工程师、爬虫工程师、Agent 产品团队
同类工具
Browserbase · Skyvern · Playwright
托管服务
multion.ai(官方托管平台)

速览卡是工具类内容的固定首屏模块:30 秒判断「这工具是什么、能不能商用、适不适合我」。

为什么需要 MultiOn:传统浏览器自动化在动态网页面前的维护成本

传统网页自动化依赖 Playwright/Selenium 这类编程框架:开发者需要为每个站点编写元素选择器、等待条件与异常重试逻辑。真实业务中,目标站点往往是登录墙、无限滚动、弹窗广告、A/B 改版齐备的动态页面,脚本平均维护周期以周计——站点改一版 CSS,选择器就失效;加一道风控,爬虫就要返工。对一个只需“偶尔抓取几十个页面”的团队来说,为每个站点写一套自动化脚本是明显的高成本低收益。

MultiOn 改变了交互范式:开发者不再描述“怎么点”(选择器与流程),而是描述“要什么”(自然语言目标)。云端浏览器由大模型负责视觉理解与任务规划,自动完成打开页面、定位元素、输入内容、提交表单、读取结果的全过程,最后把执行结果连同一句话总结(message)返回给调用方。指令与页面结构解耦,站点改版通常不需要修改任务描述。

与同类工具相比,MultiOn 强调“开箱即用的 Agent”:不像 Browserbase 那样只提供浏览器实例、仍需上层编排,也不像 Skyvern 那样需要自行部署维护;MultiOn 把“Agent 决策 + 浏览器执行 + 结果解析”打包成一个 API,执行过程是一个黑盒、按调用计费。

安装与环境配置:3 步就绪

步骤一:注册账号并创建 API Key。访问 [multion.ai](https://multion.ai) 注册账号,登录后在控制台的 API Keys 页面创建密钥。密钥是计费凭证,后续所有请求通过请求头或 SDK 参数携带。

步骤二:安装 Python SDK。MultiOn 官方提供 Python SDK(PyPI 包名 multion),安装命令见下方代码块。不使用 Python 的项目可直接调用 REST API,无需安装 SDK。

步骤三:配置环境变量。将 API Key 写入环境变量 MULTION_API_KEY,SDK 会自动读取;也可以在使用时显式传入 MultiOn(api_key="...")。完成后执行验证命令,能成功导入即配置就绪。

bash8 行
# 安装官方 Python SDKpip install multion # 配置 API Key(推荐写入环境变量,避免硬编码)export MULTION_API_KEY="你的_API_Key" # 验证:能导入 SDK 即安装成功python -c "import multion; print('MultiOn SDK OK')"

快速上手:10 分钟跑通第一个网页任务

最小可用流程的思路:先创建一个带 URL 与自然语言指令的 Agent 会话(session),MultiOn 在云端浏览器中执行指令并把结果写回会话;然后通过追加指令(update)让同一会话继续做后续动作;最后关闭会话释放云端浏览器资源。整个过程约 10 分钟,核心代码不超过 20 行。

操作步骤:

1. 安装 SDK 并配置 MULTION_API_KEY 环境变量(见上一节)。

2. 创建会话:调用 multi.sessions.create(url=..., cmd=...),传入起始页面 URL 与一句明确指令。指令越具体越好,例如“搜索 X 并返回第一项的标题和价格”,避免“随便看看”这类模糊目标。

3. 追加指令:服务端返回 session_id,用 multi.sessions.update(session_id=..., cmd=...) 在同一个会话上下文中继续操作,适合多步骤流程。

4. 关闭会话:任务结束后调用 close,避免会话占用的云端浏览器资源持续计费。

代码示例(可直接复制运行):

运行后会在终端打印会话状态与结果摘要。进阶技巧:在指令结尾追加“只返回结果,不要执行任何确认类操作”,可以让只读任务(数据抓取)更安全;对依赖登录的任务,可预先在一个会话中完成登录,再通过 session_id 复用以避免重复登录。

python20 行
from multion.client import MultiOn multi = MultiOn(api_key="你的_API_Key") # 创建 Agent 会话:打开维基百科并执行首次指令session = multi.sessions.create(    url="https://www.wikipedia.org",    cmd="搜索 'Large language model',返回该词条第一段的纯文本内容",) # 追加指令:在同一会话中继续操作updated = multi.sessions.update(    session_id=session.session_id,    cmd="返回到结果列表,改为搜索 'Web automation'",)print("状态:", updated.status)   # COMPLETE / IN_PROGRESS / FAILEDprint("结果:", updated.message) # 任务结束,关闭会话释放云端浏览器multi.sessions.close(session_id=session.session_id)

核心能力详解:3 大支柱

支柱一:自然语言驱动的 Browse 端点。Browse API(v1/web/browse)是 MultiOn 最基础的接口:一次调用完成“理解指令 → 浏览页面 → 返回结果”的闭环,返回 status(COMPLETE/IN_PROGRESS/FAILED)、message(结果摘要)、url(结束时的页面地址)与可选截图。它适合无状态、单步骤任务,如“查某商品价格”“读取某页面标题”。该端点只发一条指令,不保留跨调用上下文。

支柱二:有状态的 Agent 会话。Agent API(agent.api.multion.ai/v1)引入会话机制:创建时返回 session_id,后续可用 update 追加指令、用 step 单步推进任务、用 close 显式关闭。会话在云端浏览器中保持登录态与页面上下文,适合“登录 → 查询 → 导出”这类多步骤真实业务流。会话有自动超时机制,但显式关闭仍是控制成本的最佳实践。

支柱三:视觉理解与异常兜底。MultiOn 的底层执行不依赖写死的 DOM 选择器,而是结合页面截图与大模型视觉理解来定位元素,对弹窗、无限滚动、动态加载有较强的自适应能力;站点结构变化通常不需要修改任务描述。当任务无法完成(如验证码拦截、找不到目标元素)时,接口返回 FAILED 状态并附带失败原因。官方还提供 Extensions 机制,允许把自己的 API 注册为 Agent 可调用的自定义技能,扩展执行边界(具体配置见官方文档)。

生产部署与监控:从上线到运维

部署方式一:纯托管直连。MultiOn 是托管服务,生产环境无需自建浏览器集群或 GPU 基础设施。工程侧最小部署是把 API 调用封装成一个内部服务(服务端持有 API Key),对外暴露业务接口;所有对 MultiOn 的调用走这个服务,便于统一鉴权、限流与日志。上线前需确认数据合规:会话运行在 MultiOn 云端,任务内容会经过其模型服务。

部署方式二:会话编排与容错。将 session_id、指令、返回状态写入自己的数据库,支持断点续跑与审计;对 FAILED 结果设计重试策略(如修正指令后重试、更换起始 URL、降级为人工处理);用 maxSteps 等参数限制单任务步数上限,防止 Agent 在复杂页面上无限执行。对支付、下单、删除等不可逆动作,务必在指令层禁止执行,或引入人工确认环节。

可观测性:在应用侧记录每次调用的 session_id、指令文本、status、耗时与失败原因;定期统计 COMPLETE 占比与平均步数,作为任务质量基线;在 MultiOn 控制台可查看账号维度的调用记录与用量。建议对“关键业务动作是否真的发生”做结果断言(例如查询结果中是否含订单号),而不是只依赖 status 字段。

<p class="para-label">避坑清单:</p>

<ul class=“dash-list“><li>API Key 泄漏:Key 是计费凭证,务必放服务端环境变量或密钥管理服务,禁止写入前端代码或公开仓库,否则可能被他人盗刷额度。</li><li>云端浏览器≠本地浏览器:会话运行在 MultiOn 数据中心,无法访问企业内网与 localhost;涉及敏感数据的任务须先评估合规与数据驻留要求。</li><li>COMPLETE≠语义正确:状态字段只表示”Agent 认为完成”,支付、删除等高影响动作必须二次确认或人工审批,并接结构化证据后再落库。</li><li>忽略 FAILED 与超时:验证码、登录墙、元素缺失都会导致失败,生产环境必须设计重试与人工兜底,避免任务静默丢失。</li></ul>

维度MultiOnBrowserbaseSkyvernPlaywright
定位自然语言网页自动化托管 API云端浏览器基础设施 + AI 自动化开源 LLM+CV 网页自动化引擎开源浏览器自动化测试框架
编排范式自然语言指令 → Agent 自主规划代码驱动 + 托管浏览器会话自然语言指令 → 多步任务规划代码驱动(脚本与选择器)
类型约束无(视觉理解,不依赖 DOM 选择器)无(提供真实 Chromium 实例)无(视觉解析为主)强(依赖 DOM 定位器)
学习曲线低:一条指令即可运行中:需编写编排代码中:需部署与调参中高:需写脚本与调试选择器
生态集成Python SDK、REST APIJS/Python SDK、Playwright 协议兼容Python SDK、REST API、Docker官方多语言(Python/JS/Java/.NET)
生产部署纯托管,零运维托管服务 + 实例管理 API自托管(Docker)或托管版自建集群或接入云执行器
License商业 SaaS(SDK 免费)商业 SaaS(部分组件开源)AGPL-3.0(开源)Apache-2.0
适合谁快速上线网页 Agent 的产品/应用团队需要精细控制浏览器实例的工程团队要求开源合规、愿自维护的团队已有成熟测试/爬虫代码的团队

选型建议:想两周内让 Agent 获得“操作真实网页”能力、且不愿维护浏览器集群,选 MultiOn;需要控制代理、地区、浏览器指纹等执行细节,或已有 Playwright 技术栈,选 Browserbase;数据不能出内网、需要开源合规与完全自控,选 Skyvern;已有大量确定性自动化脚本,继续留在 Playwright 是最低成本的选择。

版本迭代

MultiOn 作为托管 API 服务,演进以“能力/端点”为单位而非用户可见的版本号;主线是从 2023 年的单次 Browse 指令,演进到 2024 年的有状态 Agent 会话与自定义扩展,再到 2024 年底成为 Google Project Mariner 的底层网页操作提供方(截至训练数据,其后可能已有更新版本)。

版本时间变化提升
Browse API(v1)2023 年推出 `api.multion.ai/v1/web/browse` 端点首次支持自然语言单轮网页操作,返回状态、结果与截图
Agent API(v1)2024 年新增 `agent.api.multion.ai/v1` 会话端点引入 session_id 与 update/step/close,支持多步骤有状态任务
Extensions 扩展2024 年支持注册自定义技能可将自有 API 注册为 Agent 可调用动作,突破内置能力边界
Project Mariner 合作2024 年 12 月成为 Google Chrome 智能体底层提供方验证其浏览器操作能力可支撑端侧 Agent 产品
结论

产品方向从“单次网页操作”走向“可复用、可扩展的会话型 Agent”,并通过与 Google 的合作证明其执行引擎的通用性。MultiOn 未公布官方基准评测分数,选型时建议在自有任务集(30-50 条真实指令)上统计完成率与耗时,并关注官方文档中端点与计费方式的实时变化。

AI 应用场景

场景一:RAG 语料与行业数据的动态网页采集

阶段:数据采集 / RAG 管道构建

解决的问题:传统爬虫对登录墙、无限滚动、动态渲染站点维护成本极高,选择器随站点改版频繁失效;MultiOn 用自然语言指令描述“要什么数据”,由云端 Agent 完成页面交互与抽取,站点结构变化不敏感。任务完成后解析 message 或截图即可入库存。

具体案例:某知识库团队需要每日抓取行业资讯站 Top10 文章标题与正文。原方案(Playwright 编写选择器+处理分页)单站点集成耗时 2-3 天且每周需维护;改用 MultiOn 后,每个站点封装为一个带 URL 与指令的会话,集成耗时降至半天级,维护工作基本消失,采集结果以结构化文本入库,供向量化后进入 RAG 检索链路。

场景二:Agent 产品中的“网页操作执行器”

阶段:Agent 编排

解决的问题:业务 Agent 常需要“去网页上完成一个动作”,但自行集成浏览器内核、维护登录态与反爬成本高。MultiOn 可作为工具(Tool)被大模型的 Function Calling 机制调用:模型决策“需要查网页”时,拼接指令并调用 MultiOn,返回结果再汇入对话。

具体案例:一个企业客服机器人需要查询订单状态。流程为:用户提问 → 大模型判断需查询订单系统 → 调用 MultiOn 会话登录订单后台并检索订单号 → 将返回文本回填给用户。订单后台无开放 API 时,这是复用现有网页系统的低成本路径;会话复用使同一账号登录态保持,单次查询由人工 2-3 分钟降至秒级返回。

场景三:网页业务系统的定时巡检与报表

阶段:任务自动化与监控

解决的问题:运营后台、数据看板等内部系统缺乏 API,人工每日登录导出报表耗时且易遗漏。MultiOn 会话可编排为定时任务:登录 → 打开报表页 → 读取数据 → 返回结构化结果,由下游管道写入数仓或触发告警。

具体案例:某运营团队用 MultiOn 每日定时登录广告投放后台,提取当日消耗与转化数据并写入数据表。相比每天人工操作 15 分钟,定时任务实现免人工值守,异常时(登录失败、数据缺失)通过 FAILED 状态触发告警通知运维。

常见误区

误区听说 MultiOn 一句话就能抓网页,我打算把公司 500 个爬虫任务全部切换到 MultiOn,彻底不写代码了。

正解MultiOn 擅长“路径不固定、意图明确”的长尾任务,但不适合规模化抓取:单次任务包含多次模型推理,耗时秒级到分钟级且按调用计费;对高并发、强反爬、超大页面量的场景,传统爬虫的代理池、限速与指纹管理成本远低于 Agent API。正确做法是双轨并行:稳定批量的数据走专用爬虫,长尾动态站点交给 MultiOn。

为何常见:官方演示单任务的“一句话完成”效果惊艳,容易让人高估其在规模化与成本维度上的表现。

误区让 MultiOn 登录我们公司内网系统抓数据,它应该在同一个网络里,直接就能访问。

正解MultiOn 会话运行在其云端数据中心,无法访问企业内网、localhost 或私有网络资源;对公网登录站点,账号密码需要交给云端执行,还可能触发站点风控(异地登录、验证码)。涉及敏感数据时,还要评估数据驻留与合规要求。内网自动化应评估自托管方案(如 Skyvern)或混合架构。

为何常见:“浏览器自动化 API”的抽象让用户默认它和本地浏览器等价,忽略了执行环境在网络位置上的根本差异。

误区接口返回 COMPLETE,说明任务成功了,直接把结果写入数据库或者继续下一步就行。

正解COMPLETE 只表示 Agent 认为任务完成,不保证语义正确——它可能点错了商品、读错了价格。对高影响动作(下单、支付、删除、发布),应在指令中禁止 Agent 直接执行,只让它返回结构化证据(如商品名+价格+链接),由业务代码校验后再走人工确认或自动放行。

为何常见:状态字段只有“完成/进行中/失败”三态,给人确定性的错觉,而 Agent 本质是概率性执行系统。

误区MultiOn 的 API Key 就是一个配置项,写在前端代码或者提交到 GitHub 也没关系,最多被人拿去浏览网页。

正解API Key 是计费凭证,泄漏意味着他人可盗刷你的调用额度,甚至用你的账号执行付费任务。生产环境必须把 Key 放在服务端环境变量或密钥管理服务(如 AWS Secrets Manager),前端只允许通过自己的后端代理转发调用,并在控制台开启用量告警。

为何常见:很多 SaaS 的 API Key 使用习惯延续自“配置即可”的思维,忽略了它是可消费额度的凭证而非普通配置。

面试题

Q1. MultiOn 的核心产品定位是什么?

单选题 · easy

  • A.本地浏览器自动化测试框架
  • B.自然语言驱动的网页自动化托管 API← 正确答案
  • C.分布式数据库可视化平台
  • D.大语言模型微调训练平台

答案:B。MultiOn 是托管型网页自动化 API,接受自然语言指令并驱动云端真实浏览器执行操作。A 是 Playwright/Selenium 的定位;C、D 与网页自动化无关。答题关键:记住“自然语言 + 云端浏览器 + API”三个要素。

Q2. 安装 MultiOn 官方 Python SDK 的命令是?

单选题 · easy

  • A.pip install playwright
  • B.pip install browserbase
  • C.pip install multion← 正确答案
  • D.pip install selenium

答案:C。PyPI 包名为 multion,官方 SDK 通过 pip install multion 安装。playwright 与 selenium 是传统浏览器自动化库,browserbase 是另一个云端浏览器服务。若用 REST 调用则无需安装 SDK,直接发 HTTP 请求即可。

Q3. MultiOn Browse 接口返回的 status 字段中,表示“任务正常完成”的值是?

单选题 · easy

  • A.SUCCESS
  • B.COMPLETE← 正确答案
  • C.DONE
  • D.FINISHED

答案:B。MultiOn 的状态枚举为 COMPLETE(完成)、IN_PROGRESS(进行中)、FAILED(失败),没有 SUCCESS/DONE/FINISHED 这些值。注意 COMPLETE 只代表 Agent 认为任务完成,不代表结果语义正确,生产环境仍需结果断言。

Q4. 关于 MultiOn 的 Agent 会话(session),下列说法正确的是?

单选题 · mid

  • A.一个会话只能执行一条指令,用完即销毁
  • B.会话有状态,可用 session_id 跨步骤追加指令并保持上下文← 正确答案
  • C.会话运行在开发者本地浏览器中
  • D.会话创建后无法主动关闭

答案:B。Agent API 通过 session_id 维护有状态会话,可用 update 追加指令、step 单步推进、close 主动关闭。会话运行在云端而非本地。主动 close 能及时释放云端浏览器资源,是控制成本与并发的关键实践。

Q5. 下列哪类目标页面是 MultiOn 云端会话无法访问的?

单选题 · mid

  • A.需要注册登录的公网 SaaS
  • B.使用 JavaScript 动态渲染的公开网站
  • C.企业内网或本机 localhost 服务← 正确答案
  • D.带无限滚动列表的电商站点

答案:C。会话运行在 MultiOn 数据中心,网络位置不在企业内网,无法访问内网与 localhost。动态渲染、登录墙、无限滚动都属于云端可处理范围(可能触发风控)。内网自动化需评估自托管方案。

Q6. MultiOn 官方文档中强调的典型用法包括哪些?

多选题 · mid

  • A.通过自然语言描述目标,由 Agent 自主完成网页操作← 正确答案
  • B.用 Python SDK 或 REST API 集成到应用← 正确答案
  • C.浏览任务时可附带起始 URL 与是否返回截图← 正确答案
  • D.必须自行编写每个站点的 CSS 选择器

答案:ABC。MultiOn 的核心用法是自然语言指令 + API/SDK 集成,请求可携带 url、cmd、includeScreenshot 等参数。D 是传统 Playwright 的用法,MultiOn 恰恰通过视觉理解摆脱了对 CSS 选择器的依赖。

Q7. 传统 Playwright 与 MultiOn 的本质区别是什么?

单选题 · mid

  • A.Playwright 只支持 JavaScript,MultiOn 支持多语言
  • B.MultiOn 用自然语言描述目标,执行不依赖 DOM 选择器← 正确答案
  • C.MultiOn 必须自建浏览器集群才能使用
  • D.Playwright 无法执行任何浏览器自动化

答案:B。两者本质区别在编排范式:Playwright 用代码精确控制每个点击与等待,依赖稳定的选择器;MultiOn 用自然语言描述“要什么”,由模型规划路径。A 错误(Playwright 官方支持 Python/JS/Java/.NET);C 错误(MultiOn 是托管服务);D 明显错误。

Q8. 生产环境接入 MultiOn 时,正确的工程实践包括哪些?

多选题 · hard

  • A.API Key 存储于服务端环境变量或密钥管理服务← 正确答案
  • B.记录 session_id 与指令日志,便于排查与审计← 正确答案
  • C.对 FAILED 状态设计重试与人工兜底策略← 正确答案
  • D.将多步任务全部写入一个无限执行的会话,不做步数限制

答案:ABC。Key 管理、日志审计、失败兜底是生产接入的必备项。D 错误:应通过 maxSteps 等参数限制单任务步数上限,防止 Agent 在复杂页面上无限执行导致成本失控。对支付等不可逆动作还应加人工确认。

Q9. 关于 MultiOn 的能力边界,下列说法正确的是?

多选题 · hard

  • A.站点改版通常不需要修改自然语言任务描述← 正确答案
  • B.COMPLETE 状态不能保证操作结果的语义正确性← 正确答案
  • C.高并发大规模抓取的成本可能高于传统爬虫方案← 正确答案
  • D.可以完全替代代理池、验证码处理等反爬手段

答案:ABC。视觉理解使指令与页面结构解耦(A 对);状态字段不等于语义正确(B 对);Agent 每次执行含多次模型推理,单价高于普通请求(C 对)。D 错误:验证码、强反爬场景仍可能失败,需要兜底设计。

Q10. 某 Agent 产品需要让 MultiOn 完成“登录订单后台 → 查询订单 → 返回状态”,最符合工程化的设计是?

单选题 · extreme

  • A.每次调用都创建新会话并现场注册新账号
  • B.首次登录后复用 session_id,查询指令与结果做结构化校验← 正确答案
  • C.把账号密码明文写在请求指令中,交给任意调用方
  • D.禁止 MultiOn 访问任何需要登录的网站

答案:B。正确做法是让云端会话保持登录态,复用 session_id 完成后续查询,并对返回结果做结构化校验后再回复用户。A 会频繁触发风控且成本极高;C 泄露凭证;D 过度限制,放弃了该场景的自动化价值。还需注意账号合规与数据驻留评估。

参考来源