欢迎光临
我们一直在努力

Scout 深度调研:Outcrawl 开源的浏览器 Agent,凭什么值得单独看

Scout 深度调研:Outcrawl 开源的浏览器 Agent,凭什么值得单独看

Scout 把 LLM 拆成四个岗位——这是 browser-use 也没按角色切的一种做法。Playwright 是执行层不接 LLM,不在同一层。

数据截止 2026-10-22,所有数字来自 GitHub API / npm registry / 官方 README 原文,逐条可查。

一、Scout 是什么,不是什么

Scout 是 Outcrawl 开源的浏览器 Agent,Apache-2.0 许可,TypeScript 实现,Node 22+ 运行。它的定位一句话能说完:

你说一句人话,它开一个真浏览器,读页面、点、输入、滚动,直到事情做完;做不完就把已经拿到的结果交回来,并说清楚缺什么。

(README 英文原文:“Tell it the task. It opens a browser and gets it done.”——中文是意译。)它不是又一个 puppeteer 的高阶封装,也不是又一个 browser-use 的 Python 版本。它是 Outcrawl 把自家云端 agent 背后的执行引擎直接开出来的一个"最小内核"——你既能用它接自己的模型跑,也能通过它去理解浏览器 agent 这个物种到底怎么走得通。

维度Scout
GitHub outcrawlai/scout
Stars / Forks 962 / 30(2026-10-22 实测)
创建 / 最后 push 2026-10-13 / 2026-10-21
License Apache-2.0
语言 / 运行时 TypeScript / Node.js >= 22
npm 包 @outcrawl/scout v0.1.1(2026-10-13 首发)
主仓库 Outcrawl 内部,GitHub 是自动镜像(README 原文:“Mirrored automatically from Outcrawl’s own repository”)

要提醒的一个点:仓库描述明确写了"自动镜像"。这意味着主开发不在 GitHub 上,PR 和 issue 走 Outcrawl 内部流程。你提 issue 的路径和普通开源项目不一样——它更像是一个"官方发布",而不是社区协作。

二、为什么它值得单独看:四个岗位的模型分工

Scout 最不一样的设计,是它不认为"一个模型干所有事"是默认。它的配置里有四个岗位:

岗位必填做什么模型选择建议
hands ✅ 读页面的无障碍树,决定下一步动作:点击、输入、滚动、跳转、读取 快模型(每一步都调用)
brain ❌ 看页面的压缩视图和已完成进度,负责跨页面的规划 强推理模型
eyes ❌ 需要看截图时回答问题 必须支持图像输入
extract ❌ 把长页面读成结构化结果,字段要求严格时用它 结构化输出能力强的模型

README 的原话是:

hands uses a fast model, brain uses a strong reasoning model, cost can be pushed down a lot. The price is more complex configuration.

这个拆法很实用。一个 4 步的短任务只需要 hands,跨页面 20 步的长任务再挂一个 brain,只有页面真的需要看图(验证码、图表、设计稿对比)才配 eyes,最后要结构化输出才配 extract。每一步都省一次贵模型的调用。

代价是配置变复杂——Scout 明确说了:

Scout has no built-in model and no default. You choose a model for each job, on any service that speaks the chat completions API.

没有默认模型、没有默认供应商,baseURL / apiKey / model 都得自己填。这也意味着:本地 Ollama 能接,OpenAI 兼容的国内模型(智谱、DashScope、Kimi)也能接,Anthropic 和 Gemini 的原生 API 不行——它们不是 OpenAI 兼容协议。

2.1 一个岗位的真实配置长这样

const scout = new Scout({
browser: 'outcrawl', // 或者 { launch: {} } 用本机浏览器
models: {
hands: { model: 'your-fast-model', baseURL: urlA, apiKey: *** },
brain: { model: 'your-strong-model', baseURL: urlB, apiKey: *** },
eyes: { model: 'your-vision-model', baseURL: urlA, apiKey: *** },
extract: { model: 'your-local-model', baseURL: localUrl, apiKey: *** },
},
});

四个岗位可以用不同的端点、不同的模型、不同的 key。这是 Scout 最灵活的地方,也是最劝退新手的地方。生产环境不要把 apiKey 硬编码到源码里,用 env 或 SecretRef 注入。

#mermaid-svg-4CeEAv7XfKWSoBD7{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-4CeEAv7XfKWSoBD7 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-4CeEAv7XfKWSoBD7 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-4CeEAv7XfKWSoBD7 .error-icon{fill:#552222;}#mermaid-svg-4CeEAv7XfKWSoBD7 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-4CeEAv7XfKWSoBD7 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-4CeEAv7XfKWSoBD7 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-4CeEAv7XfKWSoBD7 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-4CeEAv7XfKWSoBD7 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-4CeEAv7XfKWSoBD7 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-4CeEAv7XfKWSoBD7 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-4CeEAv7XfKWSoBD7 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-4CeEAv7XfKWSoBD7 .marker.cross{stroke:#333333;}#mermaid-svg-4CeEAv7XfKWSoBD7 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-4CeEAv7XfKWSoBD7 p{margin:0;}#mermaid-svg-4CeEAv7XfKWSoBD7 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-4CeEAv7XfKWSoBD7 .cluster-label text{fill:#333;}#mermaid-svg-4CeEAv7XfKWSoBD7 .cluster-label span{color:#333;}#mermaid-svg-4CeEAv7XfKWSoBD7 .cluster-label span p{background-color:transparent;}#mermaid-svg-4CeEAv7XfKWSoBD7 .label text,#mermaid-svg-4CeEAv7XfKWSoBD7 span{fill:#333;color:#333;}#mermaid-svg-4CeEAv7XfKWSoBD7 .node rect,#mermaid-svg-4CeEAv7XfKWSoBD7 .node circle,#mermaid-svg-4CeEAv7XfKWSoBD7 .node ellipse,#mermaid-svg-4CeEAv7XfKWSoBD7 .node polygon,#mermaid-svg-4CeEAv7XfKWSoBD7 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-4CeEAv7XfKWSoBD7 .rough-node .label text,#mermaid-svg-4CeEAv7XfKWSoBD7 .node .label text,#mermaid-svg-4CeEAv7XfKWSoBD7 .image-shape .label,#mermaid-svg-4CeEAv7XfKWSoBD7 .icon-shape .label{text-anchor:middle;}#mermaid-svg-4CeEAv7XfKWSoBD7 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-4CeEAv7XfKWSoBD7 .rough-node .label,#mermaid-svg-4CeEAv7XfKWSoBD7 .node .label,#mermaid-svg-4CeEAv7XfKWSoBD7 .image-shape .label,#mermaid-svg-4CeEAv7XfKWSoBD7 .icon-shape .label{text-align:center;}#mermaid-svg-4CeEAv7XfKWSoBD7 .node.clickable{cursor:pointer;}#mermaid-svg-4CeEAv7XfKWSoBD7 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-4CeEAv7XfKWSoBD7 .arrowheadPath{fill:#333333;}#mermaid-svg-4CeEAv7XfKWSoBD7 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-4CeEAv7XfKWSoBD7 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-4CeEAv7XfKWSoBD7 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-4CeEAv7XfKWSoBD7 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-4CeEAv7XfKWSoBD7 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-4CeEAv7XfKWSoBD7 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-4CeEAv7XfKWSoBD7 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-4CeEAv7XfKWSoBD7 .cluster text{fill:#333;}#mermaid-svg-4CeEAv7XfKWSoBD7 .cluster span{color:#333;}#mermaid-svg-4CeEAv7XfKWSoBD7 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-4CeEAv7XfKWSoBD7 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-4CeEAv7XfKWSoBD7 rect.text{fill:none;stroke-width:0;}#mermaid-svg-4CeEAv7XfKWSoBD7 .icon-shape,#mermaid-svg-4CeEAv7XfKWSoBD7 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-4CeEAv7XfKWSoBD7 .icon-shape p,#mermaid-svg-4CeEAv7XfKWSoBD7 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-4CeEAv7XfKWSoBD7 .icon-shape rect,#mermaid-svg-4CeEAv7XfKWSoBD7 .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-4CeEAv7XfKWSoBD7 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-4CeEAv7XfKWSoBD7 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-4CeEAv7XfKWSoBD7 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

run task

使用者

Scout 运行时

brain 强模型可选:跨页面规划

hands 快模型必填:每步决策

eyes 视觉模型可选:看图

extract 结构化模型可选:schema 输出

浏览器

结果 + 步骤记录

实线是 hands(必填),虚线是三个可选岗位。短任务只走 hands,长任务才加 brain,看图才加 eyes,结构化输出才加 extract。

三、三方对比:Playwright / browser-use / Scout 到底差在哪

这三个名字经常被混着比,实际上根本不在同一层:

  • Playwright 是执行层——你用代码写死路径,它在浏览器上执行。
  • browser-use 和 Scout 是决策层——路径由模型每一步现决定。

所以正确的问法不是"Scout 比 Playwright 强吗",而是"这件事值不值得交给模型现场决策"。

#mermaid-svg-lkWpFffVeff6GZR8{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-lkWpFffVeff6GZR8 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-lkWpFffVeff6GZR8 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-lkWpFffVeff6GZR8 .error-icon{fill:#552222;}#mermaid-svg-lkWpFffVeff6GZR8 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-lkWpFffVeff6GZR8 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-lkWpFffVeff6GZR8 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-lkWpFffVeff6GZR8 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-lkWpFffVeff6GZR8 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-lkWpFffVeff6GZR8 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-lkWpFffVeff6GZR8 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-lkWpFffVeff6GZR8 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-lkWpFffVeff6GZR8 .marker.cross{stroke:#333333;}#mermaid-svg-lkWpFffVeff6GZR8 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-lkWpFffVeff6GZR8 p{margin:0;}#mermaid-svg-lkWpFffVeff6GZR8 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-lkWpFffVeff6GZR8 .cluster-label text{fill:#333;}#mermaid-svg-lkWpFffVeff6GZR8 .cluster-label span{color:#333;}#mermaid-svg-lkWpFffVeff6GZR8 .cluster-label span p{background-color:transparent;}#mermaid-svg-lkWpFffVeff6GZR8 .label text,#mermaid-svg-lkWpFffVeff6GZR8 span{fill:#333;color:#333;}#mermaid-svg-lkWpFffVeff6GZR8 .node rect,#mermaid-svg-lkWpFffVeff6GZR8 .node circle,#mermaid-svg-lkWpFffVeff6GZR8 .node ellipse,#mermaid-svg-lkWpFffVeff6GZR8 .node polygon,#mermaid-svg-lkWpFffVeff6GZR8 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-lkWpFffVeff6GZR8 .rough-node .label text,#mermaid-svg-lkWpFffVeff6GZR8 .node .label text,#mermaid-svg-lkWpFffVeff6GZR8 .image-shape .label,#mermaid-svg-lkWpFffVeff6GZR8 .icon-shape .label{text-anchor:middle;}#mermaid-svg-lkWpFffVeff6GZR8 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-lkWpFffVeff6GZR8 .rough-node .label,#mermaid-svg-lkWpFffVeff6GZR8 .node .label,#mermaid-svg-lkWpFffVeff6GZR8 .image-shape .label,#mermaid-svg-lkWpFffVeff6GZR8 .icon-shape .label{text-align:center;}#mermaid-svg-lkWpFffVeff6GZR8 .node.clickable{cursor:pointer;}#mermaid-svg-lkWpFffVeff6GZR8 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-lkWpFffVeff6GZR8 .arrowheadPath{fill:#333333;}#mermaid-svg-lkWpFffVeff6GZR8 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-lkWpFffVeff6GZR8 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-lkWpFffVeff6GZR8 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-lkWpFffVeff6GZR8 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-lkWpFffVeff6GZR8 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-lkWpFffVeff6GZR8 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-lkWpFffVeff6GZR8 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-lkWpFffVeff6GZR8 .cluster text{fill:#333;}#mermaid-svg-lkWpFffVeff6GZR8 .cluster span{color:#333;}#mermaid-svg-lkWpFffVeff6GZR8 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-lkWpFffVeff6GZR8 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-lkWpFffVeff6GZR8 rect.text{fill:none;stroke-width:0;}#mermaid-svg-lkWpFffVeff6GZR8 .icon-shape,#mermaid-svg-lkWpFffVeff6GZR8 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-lkWpFffVeff6GZR8 .icon-shape p,#mermaid-svg-lkWpFffVeff6GZR8 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-lkWpFffVeff6GZR8 .icon-shape rect,#mermaid-svg-lkWpFffVeff6GZR8 .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-lkWpFffVeff6GZR8 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-lkWpFffVeff6GZR8 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-lkWpFffVeff6GZR8 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

执行层:动作由谁执行

决策层:路径由谁决定

调 Playwright API

调 Playwright API

browser-usePython 生态单模型/多模型

ScoutTypeScript/Node 22+四岗位独立模型

PlaywrightChromium/Firefox/WebKit确定性可进 CI

3.1 同层对比:Scout vs browser-use

维度browser-useScout
License MIT(据官方 README,未在本次核实) Apache-2.0(GitHub API 实测)
Stars(2026-10-22 实测) 118,780(GitHub API 实测) 962(GitHub API 实测)
语言 / 生态 Python TypeScript / Node 22+
模型接入 内置多家供应商适配 无内置适配,仅 OpenAI 兼容协议
模型分工 支持多模型,但不分岗 四岗位独立模型
步数/时长上限 无原生 caps: { steps, duration, budget }
云端回放 无(有本机事件钩子 agent.history / on_step) onStep 回调 + 云端完整回放
版本 0.x 快速迭代 0.1.1(首版)

注:browser-use 相关行来自其公开文档,本次仅对 Scout 部分做了逐条 API/registry 核实;引用前请再核一次。

3.2 分层说明:Playwright 不该和 Scout/browser-use 并列

Playwright 是执行层,Scout 和 browser-use 是决策层。硬把三方塞进一张表会出现"Playwright 结构化输出:无原生"这类错层对比——Playwright 是浏览器自动化库,不是 LLM 框架,谈结构化输出本身就是维度过界。

这里单独列 Playwright 关键信息:

维度Playwright
License TypeScript/Python: Apache-2.0;Java: LGPL-3.0(Java 用户注意区分)
定位 执行层工具,不接模型
官方伴侣包 @playwright/mcp(微软维护的独立 npm 包,非 Playwright 库本体)
特色 自动等待、网络拦截、trace、codegen,确定性可进 CI

3.3 Scout 在三个维度上比 browser-use 领先

优势具体表现对使用者的价值
模型分岗 长任务里贵的模型只做规划(brain),便宜的做执行(hands) 长任务的账单明显可控
onStep 逐步回放 每一步的动作描述和决策都能拿到 Agent 最难的不是跑通,是跑挂之后不知道挂在哪——onStep 直接解决这个
caps 硬边界 steps / duration / budget 三重限制 不会无限烧钱、不会跑飞

3.4 browser-use 在两个维度上明显领先 Scout

优势具体表现
社区体量 11.8 万星 vs Scout 962;踩坑帖、教程、集成生态丰富得多
开箱体验 自带供应商适配,model="gpt-4o" 一行开跑;Scout 必须自己填 baseURL/apiKey/model

3.5 中间态:Playwright MCP

还有一个常被忽略的选项:微软官方维护了一个伴侣包 @playwright/mcp(独立 npm 包,不是 Playwright 库本体),让模型调用"打开页面"“点这个元素”"读这块文本"这类确定性工具。路径由 LLM 选,动作由 Playwright 执行。

相比纯 Agent,动作空间被收敛、幻觉面小;相比纯脚本,入口变化时能自适应。注意 MCP 模式下决策层仍是 LLM,不保证整条链路稳定。

如果你已经在用 Playwright 做自动化测试,Playwright MCP 是自然延伸,不必换到 Scout 或 browser-use。

四、92.5% 这个基准数字:可信吗

Scout 官方给的基准是:在 Browser Use 的 80 站点 benchmark 上跑到 92.5%,第二名 81.4%。这是 README 里的原文,来自 2026 年 10 月 7 日的三次完整测试。

这个数字要怎么看:

  • 供应商自报——用的是 Outcrawl 自己的评分代码,没有第三方复核。
  • 对照对象未标明——README 只写"第二名",没说是哪个模型或哪个 agent 组合。
  • 相对位置有参考价值——第二名 81.4%,Scout 领先 11 个百分点,不是 0.1% 的差异。
  • 不能当成通用结论——每个站点结构不同,Scout 可能在自家擅长的类型上强、在别的类型上弱。

建议:想拿它替换现有爬虫之前,先拿自己的目标站点跑一轮。别拿别人的分数做决策。

五、Scout 独有的机制:值得单独看的三个设计

5.1 caps 硬边界

const result = await scout.run(task, {
caps: { steps: 15, duration: '8m', budget: '0.50' }, // budget 需 models.rates
});

  • steps:步数上限(默认 40,README 原文)
  • duration:时长上限(默认 ‘10m’,README 原文)
  • budget:模型花费上限(美元,需要配 models.rates)

达到 caps 是正常结束,不是错误。结果里已经拿到的部分会正常返回,附带一句"缺什么"。

注意:caps 只是成本和时长护栏,不是安全护栏。它不阻止 agent 执行不该做的动作,也不做合规审查。

5.2 schema + extract 专岗

const result = await scout.run(task, {
schema: {
type: 'object',
properties: {
books: {
type: 'array',
items: {
type: 'object',
properties: {
title: { type: 'string' },
price: { type: 'number' },
stars: { type: 'integer', minimum: 1, maximum: 5 },
},
required: ['title', 'price', 'stars'],
},
},
},
required: ['books'],
},
});

Scout 的 hands 岗位默认会用工具调用(tool_choice)拿结构化结果,如果模型不认这个模式可以降级到 structuredOutput: 'json_object' 或 'strict'。这不是简单的 prompt 里说一句"返回 JSON"——是真走 tool calling 协议。

5.3 onStep 逐步回放

const result = await scout.run(task, {
onStep: (step) => {
console.log(`step ${step.index}: ${step.action.description}`);
},
});

每一步都能拿到动作描述,本地就能做调试和可观测性。云端版本还能生成完整回放 URL,看整个运行过程的每一步操作。

六、什么时候必须回到 Playwright

Agent 不是升级版自动化。下面这些场景,用 Playwright 更对:

场景为什么 Playwright 更合适
高频且路径固定 每天几千次的下单、对账、巡检——模型每步都要推理,延迟和成本都吃不消
需要审计 金融、医疗等场景需要"为什么点这里"有明确代码依据,模型给不出可复核的理由
需要确定性回归 CI 里跑一万次结果必须一样,agent 的不确定性会变成随机失败
页面简单、结构稳定 写二十行 Playwright 能解决的,不值得为它接一套模型编排

反过来,下面这些用 agent 更省事:

  • 一次性调研(跨多个站点汇总)
  • 没有 API 的老系统
  • 页面经常改版导致选择器天天坏
  • 需要"看着页面判断"的活(不是简单 DOM 查询,是理解内容)

七、Scout 的三个短板

写在前面比藏在后面好:

7.1 版本太新

  • 0.1.x,npm 上刚发到 0.1.1
  • 主开发在 Outcrawl 内部,GitHub 仓库是自动镜像
  • 接口还会变,提 issue 的路径和普通开源项目不一样

观察 3 个月,看看是否有 0.3+/0.5 稳定版,再评估生产接入。

7.2 开箱不能跑

没有默认模型、没有默认供应商,baseURL / apiKey / model 全要自己填。想十分钟跑通 demo,browser-use 更顺。

7.3 闭源部分藏得深

Scout 本体是 Apache-2.0,但住宅代理、验证码解决、云端回放、托管 MCP 全在 Outcrawl 商业云,开源自托管跑不出来。这是"开源 ≠ 自由"的典型例子:协议层开放了,但真正好用的能力在商业云。

本机模式免费,但住宅代理、验证码、回放都在云端,按 1 credit/分钟 + 代理流量计费。每月 1000 免费 credits 只够试水,做长期自动化得另算预算。

八、安全与法律边界

这一节不能省。 浏览器 Agent 是高危工具,CSDN 读者群里有企业用户,实操前必须先知道三条边界。

8.1 反爬与法律边界

Scout 云版带"住宅代理",本质是绕过 IP 反爬。相关法规(举例,不穷举):

  • 美国:CFAA(Computer Fraud and Abuse Act)——未授权访问计算机系统的刑事责任
  • 欧盟:GDPR——个人数据处理合规(数据保护法规,非反爬专项法)
  • 中国:《反不正当竞争法》《数据安全法》《个人信息保护法》《网络安全法》《互联网信息服务管理办法》

这几部法规都对"绕过反爬"存在模糊地带,尤其在跨国访问场景下。通用建议:只在你有权访问的站点跑 agent;遵守 robots.txt;不要在未获授权的情况下抓敏感数据;商用前请让法务过一遍。国内用户在国内跑跨国站点,风险自负。

8.2 数据外泄面

即使本机模式,只要调了云端模型 API(智谱、OpenAI、DashScope 等),页面上的账号、密码、Cookie 都可能进入第三方模型上下文。企业场景必须:

  • 只用脱敏过的账号跑调试
  • 敏感系统(银行后台、客户数据)不接任何第三方模型
  • 需要完全本地时用 Ollama 起本地模型

8.3 caps 不是安全护栏

caps.steps / caps.budget 只防成本失控,不防 agent 点了不该点的按钮、不防敏感数据被外传。真正要防风险,得靠任务本身的边界设计,不是靠 caps。

九、给你的三条实操建议

建议 1:把 Playwright 当底座,别当对手

Scout 本机模式就是启动 Chromium,也能接已有的 CDP 浏览器。真实项目里常见的组合是:

Agent 负责探索和生成路径,稳定下来的部分固化成 Playwright 脚本进 CI。

建议 2:先本机跑,别急着上云

本机模式不经过 Outcrawl,不计费,配一个便宜模型就能试。云端贵在住宅代理、验证码和回放,等你确实被反爬卡住、或者需要复盘时再切。

建议 3:按任务长度分模型

  • 三五步能完事的,只配 hands。
  • 跨页面、要多步规划的,再加 brain。
  • 需要读图(验证码、图表、设计稿对比)才配 eyes。
  • 全都上最强模型,账单会比你想的难看。

十、结论

Scout 填的是"多模型分工 + 硬边界 + 逐步回放"这个组合的空白——Playwright 是执行层不讨论,browser-use 决策层但没按角色切模型。

不适合立即接入生产:0.1.x、无默认供应商、闭源部分藏得深。等 0.3+ 稳定版。

适合:动态站点、跨站点调研、跑挂要能定位的活。不适合:高频稳定路径、审计场景、CI 回归。

资料源

  • Scout 仓库:https://github.com/outcrawlai/scout
  • Scout 文档:https://outcrawl.ai/docs/scout
  • browser-use:https://github.com/browser-use/browser-use
  • Playwright MCP:https://playwright.dev/docs/mcp
  • 数据截至 2026-10-22,逐条可查:GitHub API /repos/outcrawlai/scout、npm registry @outcrawl/scout、README 原文
赞(0)
未经允许不得转载:171主机测评 » Scout 深度调研:Outcrawl 开源的浏览器 Agent,凭什么值得单独看
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址