Stagehand

Stagehand 将明确的浏览器代码与模型辅助操作、提取结合。现有编码 Agent 可从 browse 开始,自维护应用可用 SDK,不适合配置本地浏览器时再考虑托管 MCP。

检查会变化的门户操作

先区分稳定导航与变化控件,再决定是否投入 SDK 实现。首次交付是匹配版本的实现草案,不代表应用已经测试通过。

测试门户网址、固定导航、变化动作、预期状态、安装版本与 SDK 语言;说明不允许提交表单。

复制请求,在 Floatboat 新对话中粘贴,并提供所需资料。

下载 Floatboat

带入 Floatboat 的请求

请求可预览和复制,不会从此处自动发送。

参考来源: Stagehand
https://github.com/browserbase/stagehand

先阅读原始说明并核对当前环境与依赖。需要安装或连接新工具时,先提出方案。

我的任务:
用 Stagehand browse 检查获准测试门户,识别固定导航与变化动作,记录结果状态,并提出与当前版本匹配的 SDK 流程,不提交表单。

期望交付:
匹配安装版本的 SDK 实现草案,附实际页面状态及尚未验证的假设。

关于 Stagehand

Stagehand 是 Browserbase 的浏览器自动化项目。SDK 将普通导航与自然语言 act、extract 操作结合:可以用固定代码实现已知步骤,页面文案或结构需要解释时再使用模型。下游代码需要字段而非一段摘要时,可以采用带输出结构的提取。

当前 README 推荐编码 Agent 使用 browse CLI 与官方 browse Skill。本地模式控制已安装的 Chrome 或 Chromium,不需要 Browserbase 账号或模型密钥;这不代表 SDK 的 AI 调用也无需密钥。托管 Browserbase MCP 则通过服务账号提供浏览器工具,不必在当前环境安装浏览器。

browse 会话保留浏览器目标与运行模式。命名会话让多次命令持续指向同一工作,独立任务可分配不同会话;环境中若已设置 BROWSE_SESSION,就已有默认目标。Floatboat 可采用 Cursor、Codex 对应的外部 Agent CLI 或 MCP 路径。源码采用 MIT,托管访问、套餐专属选项与模型用量另有条件。

区分代码、模型解释与会话状态

固定导航、会变化的按钮文案与有字段要求的提取,不必使用同一种机制。Stagehand 为它们提供不同入口;browse 则把浏览器操作交给已有推理能力的编码宿主调用。

  • 明确步骤与解释型操作

    已知路径保留浏览器代码,页面指令需要解释时再用 SDK act,不必因为一个标签变化就把完整流程变成自主循环。

  • 按输出结构提取

    SDK extract 可按产品名、价格、库存等声明结构提取;对象格式正确后,还需检查字段是否来自指定产品和地区。

  • 命名 browse 会话

    将打开、快照、点击和读取放在同一会话。local、remote 与是否显示窗口在启动时确定,后续命令不会静默切换这些模式。

从页面探查到可维护代码

用 browse 探查页面,用 SDK 维护应用流程,需要浏览器基础设施脱离编码环境时再选托管 MCP。除了单次动作能否执行,还应明确任务结束后由谁维护这段流程。

检查本地筛选改动

提供开发地址,以及筛选后应出现的行数。在本地命名会话中打开页面,读取当前引用、应用筛选,再读取变化后的文本。交付选项和实际行数;引用过期时重新取快照,不应改动原来的预期。

为应用代码提取字段

面对公开目录,在 SDK 提取结构中声明名称、页面价格、库存等字段,并确定缺失价格与不支持规格的表示方式。先对照来源检查几条记录,再将对象接到价格报告,避免仅凭格式正确就进入下游。

维护大部分稳定的门户流程

针对测试账号中的重复任务,将目标网址和已知导航保留为代码,仅把依赖变化文案或布局的步骤交给解释型操作。记录失败步骤与页面状态,让维护者只调整相关部分,不必重写整条流程。

将浏览器运行移出 CI 环境

编码环境没有 Chrome 时,可使用配置了 Browserbase 凭据的 remote browse 或托管 MCP。先用公开页面检查并保留服务会话标识。本地命令能访问的 localhost 服务,不会因此自动对云浏览器开放。

准备本地 browse 检查

以下流程使用已安装 CLI、本地 Chrome 和指定测试网址。SDK AI 调用与托管会话是另有配置的替代路径,不必为了本地页面检查就加入它们的凭据。

  • CLI 与浏览器

    官方 Skill 记录 npm install -g browse,之后用 browse --help 和 browse skills install 检查并准备指引;本地模式需要电脑上已有 Chrome 或 Chromium。

  • 唯一会话目标

    宿主已提供 BROWSE_SESSION 时沿用它,否则为任务选择名称。运行中的会话保留模式,确需改模式时先结束原会话。

  • 预期测试数据

    提供测试网址、准确筛选项或控件名称及预期结果;远程会话还需要 Browserbase 认证及对目标网站的访问条件。

在命名 browse 会话中验证筛选

以下本地顺序来自官方 browse Skill。测试网址使用实际输入,控件引用使用本次快照返回值;观察、操作和清理全过程保持同一会话,不直接复制示例中的引用值。

  1. 在本地打开测试页

    未设置 BROWSE_SESSION 时运行 browse open <test-url> --session filter-check --local;已有该环境设置时省略 --session,沿用目标。查看同一会话的 browse status。找不到 Chrome 时补齐本地条件,或明确改用已认证远程路径。

  2. 读取筛选控件的当前引用

    对选定会话执行 browse snapshot,找到输入指定的控件名称。输出可能含 @0-5 一类引用,它只表示格式,不是固定 ID。使用当前返回的筛选引用,并先检查已有值。

  3. 应用一项改动并检查结果

    按控件类型使用 browse click 或 browse fill,并保持同一会话。页面变化后重新取快照,通过 browse get text body 或更窄目标读取结果,对照选项和实际记录与预期是否一致。

  4. 报告差异并结束会话

    返回网址、选项、实际记录和页面错误。动作失败时先更新快照,不复用旧引用;相同初始化错误反复出现时运行 browse doctor --json。浏览器不再需要后,用同一会话的 browse stop 结束。

相关软件项目

比较这些项目的用途、运行条件和源码许可。

Stagehand 常见问题

本地 browse 会额外调用模型吗?
文档中的本地 CLI 浏览器模式不需要模型密钥或 Browserbase 账号,推理由调用它的 Agent 提供。SDK 语言方法和托管服务有各自模型或账号要求。
什么时候应改用 SDK?
应用代码需要维护顺序、提取结构、错误处理与重复执行时选择 SDK;宿主驱动的调查可用 browse。探查过程中的命令历史不会自动成为可维护应用。
为什么本地任务却出现远程认证错误?
Skill 说明已配置 Browserbase 凭据可能影响默认目标。应显式选择 --local 或 --remote 并检查会话状态;原本要使用本地 Chrome 时,不要盲目修改密钥或重试远程请求。
运行中的会话能直接切换为显示窗口吗?
会话保留启动时模式。改变本地/远程或窗口设置前,先结束该会话,或明确选择另一个会话;复用名称不会覆盖既有运行环境。
不同大版本 SDK 示例能混用吗?
应按已安装大版本核对初始化、方法签名与提取结构。项目存在多代文档,其他环境中可用的 v3 片段不代表适配当前包。
Floatboat 如何选择 CLI 与托管 MCP?
宿主能执行命令且浏览器已准备时可用 browse;需要从已认证服务提供工具时采用托管 MCP。这是两种接入选择,不表示附带服务额度或已经完成本地实测。