Steel Browser
为 AI 应用提供可自托管的浏览器会话与网页操作 API。
按维度查看评分与理由
证据显示:仓库未提供权限模型、用户确认机制、数据流透明性、敏感数据处理、依赖安全审计、外部影响控制、回滚机制或来源归属的说明。README 提到代理支持和反检测,但未说明权限边界或数据使用。因此所有信任标准得分为 0。
证据显示:README 和 package.json 一致,但缺少错误处理文档。依赖锁定在 package.json 中,但未提供锁文件或完整性校验。因此 self_consistency 得 1,dependency_availability 得 1,failure_messages 得 0。
证据显示:README 明确目标用户为 AI 代理开发者,提供多种部署方式(Docker、Railway、Render)和本地运行说明,环境适配良好。但未明确能力边界(如支持的浏览器版本、限制),也未定义触发条件(如 API 调用方式)。因此 audience_and_scenarios 得 2,capability_boundaries 得 1,trigger_precision 得 0,environment_fit 得 2。
证据显示:README 结构清晰,提供安装说明、示例和许可证。但缺少变更日志、版本历史、已知限制的详细说明,维护责任未明确。因此 information_architecture 得 2,install_notes 得 2,naming_stability 得 1,examples_and_faq 得 2,known_limitations 得 1,license 得 2,versioning_changelog 得 1,maintenance_responsibility 得 1。
证据显示:README 提供多种输出格式(HTML、截图、PDF)和 SDK 支持,输出可用性高。边际价值明显(提供完整浏览器 API)。但成本效益未量化,未提供性能或资源消耗数据。因此 output_usability 得 2,marginal_value 得 2,cost_benefit 得 1。
证据显示:README 中的声明(如支持 Puppeteer、Playwright)未提供代码或测试证据,无法追溯。未提供独立来源验证。事实与推断未明确区分。因此 claim_traceability 得 1,cross_source_corroboration 得 0,fact_inference_separation 得 1。
- 未提供权限模型或用户确认机制,使用代理和反检测功能时需谨慎。
- 依赖未提供锁文件,存在供应链风险。
- 缺少错误处理文档,失败时可能难以排查。
- 未明确能力边界,可能超出预期使用范围。
- 未提供变更日志,版本升级可能不透明。
这个 Agent 能做什么,适合哪些场景?
Steel Browser 是一个开源浏览器 API,用于构建需要实际访问网页的 AI 应用和自动化工具。它作为服务运行,负责管理 Chrome 浏览器进程、页面和会话状态,并通过 REST API 提供操作入口。复杂的有状态流程可通过 /sessions 创建浏览器会话,再使用 Puppeteer、Playwright 或 Selenium 连接到该会话。简单的只读任务可调用 /scrape、/screenshot 和 /pdf,分别获取网页 HTML、截图或 PDF。项目可使用预构建 Docker 镜像、Docker Compose 或 Node.js 本地运行,并在服务端口 3000 提供 UI 和 API。
服务启动后,客户端可向 POST /v1/sessions 发送 blockAds、proxyUrl、dimensions 或 isSelenium 等参数来创建浏览器会话。会话保存浏览器状态、Cookie 与本地存储;客户端随后以会话 ID 或根 URL,通过 Puppeteer、Playwright 或 Selenium 驱动浏览器。对于无需维持会话的任务,POST /v1/scrape 接收 url 和可选 delay 并提取网页 HTML,POST /v1/screenshot 接收 url 与 fullPage 并生成截图,POST /v1/pdf 接收 url 并返回网页 PDF。README 还说明服务支持代理链、自定义 Chrome 扩展、请求日志、会话调试 UI、隐身插件及指纹管理。
- AI 应用开发者需要让网页研究流程保持登录态、Cookie 或本地存储时,可创建 /sessions 会话并用 Playwright 继续操作。
- 已有 Puppeteer 自动化代码的团队希望把 Chrome 实例管理交给独立服务时,可连接 Steel 创建的浏览器会话。
- 维护 Selenium WebDriver 工作流的团队可用 isSelenium: true 创建兼容会话,但应先评估其功能限制。
- 需要按需抓取公开网页 HTML 的后端服务,可调用 /v1/scrape,并按需要设置 delay。
- 需要把指定网页保存为全页截图或 PDF 的工具,可分别调用 /v1/screenshot 与 /v1/pdf。
这个 Agent 有哪些优点和局限?
- 将浏览器进程、页面和会话生命周期集中到一个服务中,客户端无需自行管理这部分基础设施。
- 同一会话接口可连接 Puppeteer、Playwright 和 Selenium,便于接入不同现有自动化栈。
- 既支持长期状态化会话,也提供 /scrape、/screenshot、/pdf 三个直接的只读操作端点。
- README 明确列出代理链、自定义扩展、会话调试 UI、请求日志以及资源自动清理等运行能力。
- 项目明确标注为 public beta,接口和行为仍可能持续演进。
- 直接用 Node.js 运行时依赖已安装的 Chrome,且需要在指定路径或通过 CHROME_EXECUTABLE_PATH 找到可执行文件。
- Selenium 集成明确不支持全部基于 CDP 的浏览器会话 API 功能。
- README 没有给出 API 认证配置、Steel Cloud 定价或自托管资源需求的具体说明。
如何安装或部署这个 Agent?
最快的本地启动方式是运行:
docker run -p 3000:3000 -p 9223:9223 ghcr.io/steel-dev/steel-browser服务在 http://localhost:3000 运行,UI 位于 http://localhost:3000/ui,9223 用于 console debugger。也可运行 docker compose up;在 Apple Silicon 上使用 DOCKER_DEFAULT_PLATFORM=linux/arm64 docker compose up。若使用 Node.js 直接运行,需已安装 Node.js 和 Chrome,然后执行 npm install 与 npm run dev;Chrome 必须位于 README 列出的系统路径之一,或设置 CHROME_EXECUTABLE_PATH。
如何使用这个 Agent?
启动服务后,可先创建一个会话:
curl -X POST http://localhost:3000/v1/sessions -H "Content-Type: application/json" -d '{"blockAds":true,"dimensions":{"width":1280,"height":800}}'返回会话后,使用其 ID 或根 URL 通过 Puppeteer、Playwright 或 Selenium 连接。若只需抓取网页,可执行:
curl -X POST http://0.0.0.0:3000/v1/scrape -H "Content-Type: application/json" -d '{"url":"https://example.com","delay":1000}'使用托管服务或自托管实例时,可在 Node SDK 的 baseURL 或 Python SDK 的 base_url 中替换服务地址。README 未说明 API 身份验证或 Steel Cloud 凭据的具体配置。
这个 Agent 与同类方案有什么区别?
Steel 不取代 Puppeteer、Playwright 或 Selenium 客户端;它提供受管理的浏览器会话,供这些工具连接。对只读单次任务,则可直接使用其 Quick Actions API,而无需建立客户端自动化连接。