AB
AiBoss
project

scout - 用真实浏览器替你完成网页任务的 AI 代理

scout 是 outcrawlai 维护的开源 AI 代理项目,用真实浏览器读取页面、点击、输入和滚动,直到把任务做完并返回答案。它不内置模型,由使用者为不同环节自选模型,可运行在 Outcrawl 云端或本机浏览器上。本文依据官方仓库信息与项目自述,介绍其维护状态、主要能力、使用入口与许可限制。

scout 是一个开源的 AI 代理项目:你用日常语言描述一件本来要在浏览器里做的事,它打开一个真实浏览器,读页面、点击、输入、滚动,直到任务完成,然后把答案交回来。如果做不完,它会说明还缺什么,并把已经找到的内容一并返回。它适合需要把网页操作自动化的开发者,也适合想用自然语言驱动浏览器、又不想被某一家模型服务绑定的团队。项目由 outcrawlai 维护,仓库为 outcrawlai/scout。

维护者与状态

据官方接口信息,scout 的维护者是 outcrawlai,仓库创建于 2026-10-13,最后一次提交在 2026-10-15,截至 2026-10-15 星标数为 799。项目尚无正式 release,也就是说目前没有可引用的版本号,使用方式以仓库中的源码与包为准。许可证为 Apache-2.0。项目官网为 outcrawl.ai。

从时间线看,这是一个非常年轻的项目:创建与最后提交只相隔两天,星标数却已接近八百,说明它发布后很快获得了关注。但同样要如实说明,没有正式 release 意味着接口与行为仍可能变动,把它接入生产流程前需要自行评估稳定性。

主要能力

以下能力来自项目自述(README),属于维护者的描述,不是第三方评测结论。

  • 用自然语言下达任务。据项目说明,任务按你对同事说话的方式写即可,例如「去 Hacker News 报告评论数最多的三条新闻:标题、链接和评论数」。README 给出的可运行示例覆盖调研、填表、比价、登录等场景。
  • 结构化输出。项目自述称,如果希望答案有固定形状(比如一组名称与价格),可以把一份 JSON Schema 和任务一起传入,返回结果就会按该形状组织。
  • 自带模型,无内置默认。README 明确写道,scout 没有内置模型,也没有默认模型,使用者为每个环节自行选择模型,只要该服务支持标准的 chat completions API——可以是托管服务商、网关,也可以是跑在自己机器上的模型服务。
  • 按环节分工的模型配置。据项目说明,任务被拆成若干「岗位」:hands 为必需项,负责读页面并执行每一步点击、输入、滚动、读取,因为它在每一步都运行,所以这里用快模型更划算;brain 可选,负责规划整次运行并决定每一步,对跨多个页面的长任务有帮助;eyes 可选,在必须「看」页面时读取截图,需要支持图像的模型;extract 可选,把页面读成你的答案或 schema,不配置时由 hands 代劳。每个岗位可以使用不同的模型和不同的密钥。
  • 运行结果可追溯。项目自述称,每次运行都会返回结果,即使没做完也一样,包含状态(completed、partial、capped、failed)、答案数据、未完成时缺失的内容、每一步动作及其耗时与是否成功、已知的模型花费,以及在云端运行时用于回放的链接。可以用 caps 限制步数、时长和预算,触达上限被视为一种正常结束,会带回已找到的内容。
  • 浏览器可替换。据项目说明,scout 能驱动任何 Chrome 或 Chromium,在云端浏览器、本机启动的浏览器、以及通过 CDP 连接的已有浏览器之间切换只需改一行,模型和任务保持不变。

README 还提到,在 Outcrawl 云端运行时,浏览器具备住宅网络出口、验证码处理、自然输入规划与默认录制等特性;项目自述中引用了一组在其云端环境下的页面到达率数据,并附有方法与逐次运行记录。这些数字来自维护者自述,本文不将其作为独立验证的结论。

使用入口

仓库地址:https://github.com/outcrawlai/scout。官网:https://outcrawl.ai。

据项目说明,安装需要 Node 22 或更高版本;如果使用云端浏览器,本机不需要安装浏览器:

npm i @outcrawl/scout

随后配置密钥与环境变量,其中模型侧只要兼容 chat completions API 即可,包括跑在自己电脑上的模型:

export OUTCRAWL_API_KEY=your-outcrawl-key
export SCOUT_BASE_URL=https://your-endpoint/v1
export SCOUT_API_KEY=your-model-key
export SCOUT_HANDS_MODEL=your-model-id

调用方式据 README 为构造一个 Scout 实例并调用 run,返回结果中包含答案与回放链接:

import { Scout } from '@outcrawl/scout';

const scout = new Scout({
  browser: 'outcrawl',
  models: {
    hands: {
      model: process.env.SCOUT_HANDS_MODEL!,
      baseURL: process.env.SCOUT_BASE_URL!,
      apiKey: process.env.SCOUT_API_KEY!,
    },
  },
});

const result = await scout.run('Find the top three stories on Hacker News right now');
console.log(result.data);
console.log(result.replayUrl);

若想改用本机浏览器,项目说明给出的做法是先安装 npm i playwright-core && npx playwright install chromium,再把 browser 一行改为 { launch: {} };在 launch 中加入 headless: false 可以看到它工作。回放功能随云端提供,因此在本机浏览器上 replayUrl 会保持为空。仓库结构上,packages/scout 是对外入口,packages/runtime 是代理循环,packages/model 负责模型侧,另有 packages/scout-core、packages/scout-cdp 与 packages/agenthands。参与开发需要 bun install,并在 packages/runtime 下运行 bun test ./test。

许可与限制

许可证为 Apache-2.0。项目自述补充说明,仓库中的 packages/agenthands 保留其自身的 MIT 许可证,版权归 Aeonmind LLC(2026)。

使用前需要留意的边界,均来自项目自述:其一,scout 不提供内置模型,模型与密钥由使用者自行准备,因此运行成本与效果取决于所选模型;其二,结构化输出并非所有服务都支持,如果服务拒绝了结构化回复请求,运行错误会指出是哪个环节、需要把该环节的 structuredOutput 设为 'json_object' 或 'strict';其三,回放链接只在 Outcrawl 云端运行时提供,本机浏览器下为空;其四,云端运行按普通的 Outcrawl 浏览器会话计费,模型调用仍走使用者自己的服务;其五,仓库是自动镜像,改动先在 Outcrawl 生产使用的仓库落地并带上测试,再以同步提交的形式到达这里,因此合并的拉取请求会在下一次同步时回到贡献者手中,提交需要签名(git commit -s,开发者原创声明)。此外,项目尚无正式 release,接口稳定性需要自行评估。