StagehandMiddleware 将其 run、snapshot 和 screenshot 工具添加到 LangChain 或 Deep Agents 智能体中。将配置好的 Stagehand 客户端传递给中间件:不需要 MCP 服务器、自定义工具定义或浏览器系统提示词。
关于用例、浏览器范围和沙盒测试设置,请参阅 Browser use。
该中间件在 langchain-browserbase#1 中提出,尚未发布到 PyPI。本页面使用该源代码版本。它需要 Python 3.11 或更高版本、LangChain 1.4.7 或更高版本以及 Stagehand 4.3.0 或更高版本。
工具
这是
run 的两个输入形状:
snapshot 响应中的 ID,而不是说明性的 1-42 值。在导航后或 ID 过期时拍摄新的快照。
设置
从源代码安装中间件,以及 Deep Agents 和模型集成:与 deep agent 一起使用
创建一个 Browserbase 浏览器,附加一个 Stagehand 客户端,并将中间件传递给 @[create_deep_agent]:
ainvoke 或 astream:浏览器工具是异步的。中间件在工具描述中包含浏览器指导,并保持您的系统提示词不变。这些工具使用 Stagehand 的 Playwright 形式的接口,并且不需要单独的 Stagehand 模型。
与 LangChain 一起使用
保持相同的浏览器设置,并将create_deep_agent 替换为 @[create_agent]:
选择浏览器
您的应用程序直接配置浏览器和 Stagehand 客户端,而不是通过 MCP 服务器环境变量。- Browserbase:使用上面示例中的
browserbase.launch(api_key=...)。浏览器在远程运行,因此无法访问localhost在您的机器上或在沙盒中。 - 本地 Chrome:使用
local_browser.launch(headless=True)在无可见窗口的情况下运行。Chrome 共享应用程序的localhost,并需要已安装的 Google Chrome 或 Chromium 浏览器。
try/finally 清理。所有 Stagehand 客户端设置都可以通过 Stagehand.create(...) 访问。
要在您的应用程序旁边使用 Chrome 并具有 LangSmith 沙盒后端,请参阅 在 LangSmith 沙盒中测试 Chrome 应用程序。
管理浏览器生命周期
您的应用程序拥有客户端和浏览器。中间件跨运行重用提供的客户端,并且不会关闭或重新创建它。保持浏览器打开以保留标签和登录,然后在完成后调用await browser.close()。如果浏览器断开连接,请提供一个新的配置好的客户端。
选择在单个线程内还是跨一个认证用户的对话重用登录状态。中间件不实现范围选择、会话存储或浏览器检查点。为并发智能体提供单独的客户端和浏览器。有关权衡和用户隔离要求,请参阅 选择浏览器范围。
screenshot 工具直接将图像返回给模型。run 代码保存的屏幕截图(使用 path)将保存在当前工作目录,而不是 Deep Agents 后端。后端工件保存尚未支持。
在执行操作前要求批准
snapshot 和 screenshot 仅读取页面。run 导航、点击、输入和提交表单。要在每个 run 调用执行之前进行审查,请保持上述浏览器设置,并向智能体添加 interrupt_on 和一个检查点器:
config 传递给 ainvoke,并在审查和恢复中断时保持浏览器打开。每个中断列出了待处理的 run 参数。有关批准和恢复循环,请参阅 Human-in-the-loop。
安全
run 在 Stagehand 浏览器扩展内执行模型编写的 JavaScript。该代码可以使用会话登录的任何账户以及浏览器可以访问的任何网站。将 Browserbase 作为不受信任任务的隔离边界。Playwright 形式的 API 不是一个通用目的的安全沙盒。请参阅 Stagehand 的 security boundary。
将页面内容视为不受信任的输入。将凭证保存在您的应用程序环境中,而不是提示词或浏览器工具输入中。不要在无关用户之间共享个人浏览器会话。
相关资源
Browser use guide
用例、浏览器范围和沙盒测试设置。
Middleware source and examples
原生 LangChain 中间件、客户端生命周期和浏览器工具。
Stagehand Deep Agents docs
上游 MCP 替代方案,包括与 JavaScript 智能体一起使用。
Browserbase provider page
Browserbase 设置,以及 Search 和 Fetch 工具。
官方原文:src/oss/python/integrations/tools/stagehand.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。