[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-browserbase--stagehand":3,"tool-browserbase--stagehand":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,52],"视频",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[14,35],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":75,"owner_email":75,"owner_twitter":72,"owner_website":76,"owner_url":77,"languages":78,"stars":95,"forks":96,"last_commit_at":97,"license":98,"difficulty_score":32,"env_os":99,"env_gpu":99,"env_ram":99,"env_deps":100,"category_tags":108,"github_topics":109,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":116,"updated_at":117,"faqs":118,"releases":148},4283,"browserbase\u002Fstagehand","stagehand","The AI Browser Automation Framework","Stagehand 是一款专为生产环境打造的 AI 浏览器自动化框架，旨在让开发者能够结合自然语言指令与传统代码来精准控制网页浏览器。它有效解决了现有工具的痛点：传统方案如 Selenium 需要编写繁琐的底层代码，而纯 AI 代理则在复杂场景中表现不稳定、难以预测。\n\nStagehand 的独特之处在于赋予了开发者灵活的选择权——在探索陌生页面时使用 AI 理解意图，在执行明确逻辑时沿用可靠代码。其核心亮点包括“自愈”机制与智能缓存：系统能自动记录并复用已验证的操作步骤，无需重复调用大模型即可高效运行；一旦网站结构变更导致自动化中断，它又能智能识别并重新引入 AI 进行修复，真正实现“一次编写，长期稳定运行”。此外，它还支持在执行前预览 AI 动作，确保流程可控。\n\n这款工具非常适合需要构建高可靠性爬虫、自动化测试或数据采集工作流的软件开发者和工程师。通过平衡 AI 的灵活性与代码的确定性，Stagehand 让网页自动化变得既易于维护又真正值得信赖。","\u003Cdiv id=\"toc\" align=\"center\" style=\"margin-bottom: 0;\">\n  \u003Cul style=\"list-style: none; margin: 0; padding: 0;\">\n    \u003Ca href=\"https:\u002F\u002Fstagehand.dev\">\n      \u003Cpicture>\n        \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"media\u002Fdark_logo.png\" \u002F>\n        \u003Cimg alt=\"Stagehand\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbrowserbase_stagehand_readme_7839bc4aa488.png\" width=\"200\" style=\"margin-right: 30px;\" \u002F>\n      \u003C\u002Fpicture>\n    \u003C\u002Fa>\n  \u003C\u002Ful>\n\u003C\u002Fdiv>\n\u003Cp align=\"center\">\n  \u003Cstrong>The AI Browser Automation Framework\u003C\u002Fstrong>\u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Fdocs.stagehand.dev\">Read the Docs\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Ftree\u002Fmain?tab=MIT-1-ov-file#MIT-1-ov-file\">\n    \u003Cpicture>\n      \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"media\u002Fdark_license.svg\" \u002F>\n      \u003Cimg alt=\"MIT License\" src=\"media\u002Flight_license.svg\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fstagehand.dev\u002Fdiscord\">\n    \u003Cpicture>\n      \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"media\u002Fdark_discord.svg\" \u002F>\n      \u003Cimg alt=\"Discord Community\" src=\"media\u002Flight_discord.svg\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n\t\u003Ca href=\"https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F12122\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbrowserbase_stagehand_readme_4a68feb902da.png\" alt=\"browserbase%2Fstagehand | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fdeepwiki.com\u002Fbrowserbase\u002Fstagehand\">\n    \u003Cimg alt=\"Ask DeepWiki\" src=\"https:\u002F\u002Fdeepwiki.com\u002Fbadge.svg\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\nIf you're looking for the Python implementation, you can find it \n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand-python\"> here\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cdiv align=\"center\" style=\"display: flex; align-items: center; justify-content: center; gap: 4px; margin-bottom: 0;\">\n  \u003Cb>Vibe code\u003C\u002Fb>\n  \u003Cspan style=\"font-size: 1.05em;\"> Stagehand with \u003C\u002Fspan>\n  \u003Ca href=\"https:\u002F\u002Fdirector.ai\" style=\"display: flex; align-items: center;\">\n    \u003Cspan>Director\u003C\u002Fspan>\n  \u003C\u002Fa>\n  \u003Cspan> \u003C\u002Fspan>\n  \u003Cpicture>\n    \u003Cimg alt=\"Director\" src=\"media\u002Fdirector_icon.svg\" width=\"25\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fdiv>\n\n## What is Stagehand?\n\nStagehand is a browser automation framework used to control web browsers with natural language and code. By combining the power of AI with the precision of code, Stagehand makes web automation flexible, maintainable, and actually reliable.\n\n## Why Stagehand?\n\nMost existing browser automation tools either require you to write low-level code in a framework like Selenium, Playwright, or Puppeteer, or use high-level agents that can be unpredictable in production. By letting developers choose what to write in code vs. natural language (and bridging the gap between the two) Stagehand is the natural choice for browser automations in production.\n\n1. **Choose when to write code vs. natural language**: use AI when you want to navigate unfamiliar pages, and use code when you know exactly what you want to do.\n\n2. **Go from AI-driven to repeatable workflows**: Stagehand lets you preview AI actions before running them, and also helps you easily cache repeatable actions to save time and tokens.\n\n3. **Write once, run forever**: Stagehand's auto-caching combined with self-healing remembers previous actions, runs without LLM inference, and knows when to involve AI whenever the website changes and your automation breaks. \n\n## Getting Started\n\nStart with Stagehand with one line of code, or check out our [Quickstart Guide](https:\u002F\u002Fdocs.stagehand.dev\u002Fv3\u002Ffirst-steps\u002Fquickstart) for more information:\n\n```bash\nnpx create-browser-app\n```\n\n## Example\n\nHere's how to build a sample browser automation with Stagehand:\n\n```typescript\n\u002F\u002F Stagehand's CDP engine provides an optimized, low level interface to the browser built for automation\nconst page = stagehand.context.pages()[0];\nawait page.goto(\"https:\u002F\u002Fgithub.com\u002Fbrowserbase\");\n\n\u002F\u002F Use act() to execute individual actions\nawait stagehand.act(\"click on the stagehand repo\");\n\n\u002F\u002F Use agent() for multi-step tasks\nconst agent = stagehand.agent();\nawait agent.execute(\"Get to the latest PR\");\n\n\u002F\u002F Use extract() to get structured data from the page\nconst { author, title } = await stagehand.extract(\n  \"extract the author and title of the PR\",\n  z.object({\n    author: z.string().describe(\"The username of the PR author\"),\n    title: z.string().describe(\"The title of the PR\"),\n  }),\n);\n```\n\n## Documentation\n\nVisit [docs.stagehand.dev](https:\u002F\u002Fdocs.stagehand.dev) to view the full documentation.\n\n\n### Build and Run from Source\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand.git\ncd stagehand\npnpm install\npnpm run build\npnpm run example # run the blank script at .\u002Fexamples\u002Fexample.ts\n```\n\nStagehand is best when you have an API key for an LLM provider and Browserbase credentials. To add these to your project, run:\n\n```bash\ncp .env.example .env\nnano .env # Edit the .env file to add API keys\n```\n\n### Installing from a branch\n\nYou can install and build Stagehand directly from a github branch using [gitpkg](https:\u002F\u002Fgithub.com\u002FEqualMa\u002Fgitpkg)\n\nIn your project's `package.json` set:\n```json\n\"@browserbasehq\u002Fstagehand\": \"https:\u002F\u002Fgitpkg.now.sh\u002Fbrowserbase\u002Fstagehand\u002Fpackages\u002Fcore?\u003CbranchName>\",\n```\n\n\n## Contributing\n\n> [!NOTE]\n> We highly value contributions to Stagehand! For questions or support, please join our [Discord community](https:\u002F\u002Fstagehand.dev\u002Fdiscord).\n\nAt a high level, we're focused on improving reliability, extensibility, speed, and cost in that order of priority. If you're interested in contributing, **bug fixes and small improvements are the best way to get started**. For more involved features, we strongly recommend reaching out to [Miguel Gonzalez](https:\u002F\u002Fx.com\u002Fmiguel_gonzf) or [Paul Klein](https:\u002F\u002Fx.com\u002Fpk_iv) in our [Discord community](https:\u002F\u002Fstagehand.dev\u002Fdiscord) before starting to ensure that your contribution aligns with our goals.\n\n\u003C!-- For more information, please see our [Contributing Guide](https:\u002F\u002Fdocs.stagehand.dev\u002Fexamples\u002Fcontributing). -->\n\n## Acknowledgements\n\nWe'd like to thank the following people for their major contributions to Stagehand:\n- [Paul Klein](https:\u002F\u002Fgithub.com\u002Fpkiv)\n- [Sean McGuire](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)\n- [Miguel Gonzalez](https:\u002F\u002Fgithub.com\u002Fmiguelg719)\n- [Sameel Arif](https:\u002F\u002Fgithub.com\u002Fsameelarif)\n- [Thomas Katwan](https:\u002F\u002Fgithub.com\u002Ftkattkat)\n- [Filip Michalsky](https:\u002F\u002Fgithub.com\u002Ffilip-michalsky)\n- [Anirudh Kamath](https:\u002F\u002Fgithub.com\u002Fkamath)\n- [Jeremy Press](https:\u002F\u002Fx.com\u002Fjeremypress)\n- [Navid Pour](https:\u002F\u002Fgithub.com\u002Fnavidpour)\n\n## License\n\nLicensed under the MIT License.\n\nCopyright 2025 Browserbase, Inc.\n","\u003Cdiv id=\"toc\" align=\"center\" style=\"margin-bottom: 0;\">\n  \u003Cul style=\"list-style: none; margin: 0; padding: 0;\">\n    \u003Ca href=\"https:\u002F\u002Fstagehand.dev\">\n      \u003Cpicture>\n        \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"media\u002Fdark_logo.png\" \u002F>\n        \u003Cimg alt=\"Stagehand\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbrowserbase_stagehand_readme_7839bc4aa488.png\" width=\"200\" style=\"margin-right: 30px;\" \u002F>\n      \u003C\u002Fpicture>\n    \u003C\u002Fa>\n  \u003C\u002Ful>\n\u003C\u002Fdiv>\n\u003Cp align=\"center\">\n  \u003Cstrong>AI驱动的浏览器自动化框架\u003C\u002Fstrong>\u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Fdocs.stagehand.dev\">阅读文档\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Ftree\u002Fmain?tab=MIT-1-ov-file#MIT-1-ov-file\">\n    \u003Cpicture>\n      \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"media\u002Fdark_license.svg\" \u002F>\n      \u003Cimg alt=\"MIT License\" src=\"media\u002Flight_license.svg\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fstagehand.dev\u002Fdiscord\">\n    \u003Cpicture>\n      \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"media\u002Fdark_discord.svg\" \u002F>\n      \u003Cimg alt=\"Discord社区\" src=\"media\u002Flight_discord.svg\" \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n\t\u003Ca href=\"https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F12122\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbrowserbase_stagehand_readme_4a68feb902da.png\" alt=\"browserbase%2Fstagehand | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fdeepwiki.com\u002Fbrowserbase\u002Fstagehand\">\n    \u003Cimg alt=\"Ask DeepWiki\" src=\"https:\u002F\u002Fdeepwiki.com\u002Fbadge.svg\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n如果您正在寻找 Python 实现，可以在这里找到： \n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand-python\">点击此处\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cdiv align=\"center\" style=\"display: flex; align-items: center; justify-content: center; gap: 4px; margin-bottom: 0;\">\n  \u003Cb>Vibe代码\u003C\u002Fb>\n  \u003Cspan style=\"font-size: 1.05em;\"> Stagehand与\u003C\u002Fspan>\n  \u003Ca href=\"https:\u002F\u002Fdirector.ai\" style=\"display: flex; align-items: center;\">\n    \u003Cspan>Director\u003C\u002Fspan>\n  \u003C\u002Fa>\n  \u003Cspan> \u003C\u002Fspan>\n  \u003Cpicture>\n    \u003Cimg alt=\"Director\" src=\"media\u002Fdirector_icon.svg\" width=\"25\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fdiv>\n\n## 什么是 Stagehand？\n\nStagehand 是一个浏览器自动化框架，用于通过自然语言和代码控制网页浏览器。通过将人工智能的强大功能与代码的精确性相结合，Stagehand 使网页自动化变得灵活、易于维护且真正可靠。\n\n## 为什么选择 Stagehand？\n\n现有的大多数浏览器自动化工具要么要求您使用 Selenium、Playwright 或 Puppeteer 等框架编写低级代码，要么使用在生产环境中可能难以预测的高级代理。通过让开发者选择何时使用代码、何时使用自然语言（并在两者之间架起桥梁），Stagehand 成为生产环境中浏览器自动化任务的自然选择。\n\n1. **自由选择代码或自然语言**：当需要导航不熟悉的页面时使用 AI，而当您确切知道要做什么时则使用代码。\n\n2. **从 AI 驱动过渡到可重复的工作流程**：Stagehand 允许您在执行 AI 操作之前预览它们，并帮助您轻松缓存可重复的操作，从而节省时间和调用次数。\n\n3. **一次编写，永久运行**：Stagehand 的自动缓存功能结合自我修复机制，能够记住之前的操作，在无需 LLM 推理的情况下运行，并在网站发生变化导致自动化失效时自动启用 AI。\n\n## 开始使用\n\n只需一行代码即可开始使用 Stagehand，或者查看我们的[快速入门指南](https:\u002F\u002Fdocs.stagehand.dev\u002Fv3\u002Ffirst-steps\u002Fquickstart)以获取更多信息：\n\n```bash\nnpx create-browser-app\n```\n\n## 示例\n\n以下是如何使用 Stagehand 构建一个简单的浏览器自动化示例：\n\n```typescript\n\u002F\u002F Stagehand 的 CDP 引擎提供了一个针对自动化优化的底层浏览器接口\nconst page = stagehand.context.pages()[0];\nawait page.goto(\"https:\u002F\u002Fgithub.com\u002Fbrowserbase\");\n\n\u002F\u002F 使用 act() 执行单个动作\nawait stagehand.act(\"点击 stagehand 仓库\");\n\n\u002F\u002F 使用 agent() 处理多步骤任务\nconst agent = stagehand.agent();\nawait agent.execute(\"前往最新的 PR\");\n\n\u002F\u002F 使用 extract() 从页面中提取结构化数据\nconst { author, title } = await stagehand.extract(\n  \"提取 PR 的作者和标题\",\n  z.object({\n    author: z.string().describe(\"PR 作者的用户名\"),\n    title: z.string().describe(\"PR 的标题\"),\n  }),\n);\n```\n\n## 文档\n\n访问 [docs.stagehand.dev](https:\u002F\u002Fdocs.stagehand.dev) 查看完整文档。\n\n\n### 从源码构建并运行\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand.git\ncd stagehand\npnpm install\npnpm run build\npnpm run example # 运行 .\u002Fexamples\u002Fexample.ts 中的空白脚本\n```\n\nStagehand 在拥有 LLM 提供商的 API 密钥以及 Browserbase 凭证时效果最佳。要将这些添加到您的项目中，请执行以下操作：\n\n```bash\ncp .env.example .env\nnano .env # 编辑 .env 文件以添加 API 密钥\n```\n\n### 从分支安装\n\n您可以使用 [gitpkg](https:\u002F\u002Fgithub.com\u002FEqualMa\u002Fgitpkg) 直接从 GitHub 分支安装并构建 Stagehand。\n\n在您的项目 `package.json` 中设置：\n```json\n\"@browserbasehq\u002Fstagehand\": \"https:\u002F\u002Fgitpkg.now.sh\u002Fbrowserbase\u002Fstagehand\u002Fpackages\u002Fcore?\u003CbranchName>\",\n```\n\n\n## 贡献\n\n> [!NOTE]\n> 我们非常重视对 Stagehand 的贡献！如有任何问题或需要支持，请加入我们的 [Discord 社区](https:\u002F\u002Fstagehand.dev\u002Fdiscord)。\n\n总体而言，我们优先关注提升可靠性、可扩展性、速度和成本效益。如果您有兴趣参与贡献，**修复 bug 和进行小幅改进是入门的最佳方式**。对于更复杂的功能，我们强烈建议您在开始之前先联系我们的 [Discord 社区](https:\u002F\u002Fstagehand.dev\u002Fdiscord) 中的 [Miguel Gonzalez](https:\u002F\u002Fx.com\u002Fmiguel_gonzf) 或 [Paul Klein](https:\u002F\u002Fx.com\u002Fpk_iv)，以确保您的贡献符合我们的目标。\n\n\u003C!-- 更多信息请参阅我们的[贡献指南](https:\u002F\u002Fdocs.stagehand.dev\u002Fexamples\u002Fcontributing)。 -->\n\n## 致谢\n\n我们感谢以下人员对 Stagehand 的重大贡献：\n- [Paul Klein](https:\u002F\u002Fgithub.com\u002Fpkiv)\n- [Sean McGuire](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)\n- [Miguel Gonzalez](https:\u002F\u002Fgithub.com\u002Fmiguelg719)\n- [Sameel Arif](https:\u002F\u002Fgithub.com\u002Fsameelarif)\n- [Thomas Katwan](https:\u002F\u002Fgithub.com\u002Ftkattkat)\n- [Filip Michalsky](https:\u002F\u002Fgithub.com\u002Ffilip-michalsky)\n- [Anirudh Kamath](https:\u002F\u002Fgithub.com\u002Fkamath)\n- [Jeremy Press](https:\u002F\u002Fx.com\u002Fjeremypress)\n- [Navid Pour](https:\u002F\u002Fgithub.com\u002Fnavidpour)\n\n## 许可证\n\n根据 MIT 许可证授权。\n\n版权所有 © 2025 Browserbase, Inc.","# Stagehand 快速上手指南\n\nStagehand 是一个结合了 AI 能力与代码精度的浏览器自动化框架。它允许开发者通过自然语言或代码控制浏览器，既适合处理未知的页面导航，也能构建可重复、自愈的生产级工作流。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **Node.js**: 建议安装最新 LTS 版本（v18+）。\n*   **包管理器**: 推荐使用 `pnpm`（项目原生支持），也可使用 `npm` 或 `yarn`。\n*   **API 密钥**:\n    *   **LLM Provider**: 需要配置大模型 API Key（如 OpenAI, Anthropic 等）。\n    *   **Browserbase** (可选但推荐): 用于更稳定的云端浏览器执行环境。\n\n## 安装步骤\n\n### 方法一：一键创建项目（推荐）\n\n使用官方提供的脚手架工具快速初始化项目：\n\n```bash\nnpx create-browser-app\n```\n\n按照提示完成项目创建后，进入目录并安装依赖。\n\n### 方法二：从源码构建\n\n如果您希望直接基于源码开发或贡献代码：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand.git\ncd stagehand\npnpm install\npnpm run build\n```\n\n### 配置环境变量\n\nStagehand 运行需要 LLM 和 Browserbase 的凭证。在项目根目录下复制示例配置文件并填入您的密钥：\n\n```bash\ncp .env.example .env\n# 使用您喜欢的编辑器编辑 .env 文件，填入 API_KEY 等必要信息\nnano .env \n```\n\n## 基本使用\n\nStagehand 的核心优势在于混合使用代码控制与 AI 指令。以下是一个典型的 TypeScript 使用示例：\n\n1.  **初始化与导航**：使用标准代码控制浏览器跳转。\n2.  **执行动作 (`act`)**：使用自然语言让 AI 执行单个操作（如点击）。\n3.  **多步任务 (`agent`)**：让 AI 代理执行复杂的多步流程。\n4.  **数据提取 (`extract`)**：利用 AI 从页面提取结构化数据。\n\n```typescript\n\u002F\u002F 获取当前页面上下文并导航\nconst page = stagehand.context.pages()[0];\nawait page.goto(\"https:\u002F\u002Fgithub.com\u002Fbrowserbase\");\n\n\u002F\u002F 使用 act() 执行单个自然语言指令\nawait stagehand.act(\"click on the stagehand repo\");\n\n\u002F\u002F 使用 agent() 执行多步任务\nconst agent = stagehand.agent();\nawait agent.execute(\"Get to the latest PR\");\n\n\u002F\u002F 使用 extract() 提取结构化数据\nconst { author, title } = await stagehand.extract(\n  \"extract the author and title of the PR\",\n  z.object({\n    author: z.string().describe(\"The username of the PR author\"),\n    title: z.string().describe(\"The title of the PR\"),\n  }),\n);\n```\n\n运行示例脚本测试安装是否成功：\n\n```bash\npnpm run example\n```\n\n> **提示**：详细文档请访问 [docs.stagehand.dev](https:\u002F\u002Fdocs.stagehand.dev)。如需 Python 版本，请参阅 [stagehand-python](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand-python) 仓库。","某电商数据团队需要每日从多个结构各异的竞争对手网站抓取促销价格，并监控页面元素变动以调整策略。\n\n### 没有 stagehand 时\n- 开发人员必须为每个网站编写繁琐的 Selenium 或 Playwright 选择器代码，一旦网站改版（如 class 名变更），脚本立即报错失效。\n- 面对从未爬取过的新站点，需人工分析 DOM 结构并手动编写定位逻辑，前期调研与编码耗时极长。\n- 维护成本高昂，每次网页微调都需要重新部署代码，且难以区分是网络波动还是真正的结构变化。\n- 缺乏灵活性，无法用自然语言快速调整抓取逻辑（例如“只抓取打折超过 20% 的商品”），必须修改底层代码。\n\n### 使用 stagehand 后\n- 利用 AI 能力，直接通过自然语言指令（如“点击促销标签”）操作浏览器，无需关心具体的 CSS 选择器或 XPath。\n- 面对新网站零代码上手，stagehand 能自动理解页面语义并执行导航、点击等动作，将新站点接入时间从小时级缩短至分钟级。\n- 具备自愈能力，当网页结构发生微小变化时，stagehand 能自动适应并继续运行，仅在重大变更时才需介入，大幅减少维护报警。\n- 支持混合模式，将稳定的流程缓存为代码以确保速度和确定性，仅在复杂决策时调用 AI，完美平衡了运行成本与可靠性。\n\nstagehand 让浏览器自动化从脆弱的“代码堆砌”转变为智能、自愈且可长期稳定运行的生产级工作流。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fbrowserbase_stagehand_be5d725c.png","browserbase","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fbrowserbase_6b2a8fee.png","",null,"https:\u002F\u002Fwww.browserbase.com","https:\u002F\u002Fgithub.com\u002Fbrowserbase",[79,83,87,91],{"name":80,"color":81,"percentage":82},"TypeScript","#3178c6",77.1,{"name":84,"color":85,"percentage":86},"MDX","#fcb32c",21.4,{"name":88,"color":89,"percentage":90},"JavaScript","#f1e05a",1.4,{"name":92,"color":93,"percentage":94},"HTML","#e34c26",0,21838,1455,"2026-04-06T02:48:34","MIT","未说明",{"notes":101,"python":102,"dependencies":103},"该工具主要为 TypeScript\u002FNode.js 实现（Python 版本在独立仓库）。运行需安装 pnpm 包管理器。核心功能依赖外部大语言模型 (LLM) API 密钥和 Browserbase 凭证，需在 .env 文件中配置。非本地部署模型，因此无特定 GPU 或显存要求，但需网络连接以调用 AI 服务。","不适用 (主要基于 Node.js\u002FTypeScript)",[104,105,106,107],"Node.js","pnpm","@browserbasehq\u002Fstagehand","zod",[35,14,13,15],[110,111,112,113,114,115],"agents","ai","llms","playwright","puppeteer","selenium","2026-03-27T02:49:30.150509","2026-04-06T15:55:57.694358",[119,124,129,134,139,143],{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},19491,"Stagehand 有 Python SDK 吗？","是的，Python SDK 已正式发布并达到通用可用（GA）状态。您可以直接使用 pip 安装：\n\npip install stagehand","https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fissues\u002F393",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},19492,"为什么无法提取链接的 href 地址或提取结果不正确？","如果您遇到无法提取链接 URL 或提取结果错误的问题，请尝试将 `useTextExtract` 参数设置为 `false`（或移除该参数）。默认情况下启用文本提取可能导致只返回链接文本而丢失 URL 信息。\n\n配置示例：确保在调用时设置 `useTextExtract: false`。","https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fissues\u002F651",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},19493,"运行 page.observe() 时出现 \"Cannot read properties of undefined (reading 'replace')\" 错误怎么办？","该问题已在 Stagehand v2.4.2 版本中修复。请将您的依赖升级到最新版本：\n\nnpm install @browserbasehq\u002Fstagehand@latest\n\n注意：如果升级后偶尔仍出现类似问题，可能是由于模型幻觉（Hallucination）返回了不存在的元素 ID，这种情况下通常重试几次即可成功。","https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fissues\u002F854",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},19494,"如何在 Playwright e2e 测试中复用现有的 Page 对象以支持视频录制？","在 Stagehand v3 及更高版本中，已经支持附加到现有的 Playwright Page 对象。这解决了因 Stagehand 创建独立上下文而导致 Playwright 视频录制失效的问题。\n\n您可以参考官方 PR #1269 中的示例代码，通过初始化时传入现有的 page 对象来实现附加模式，从而保留测试运行器管理的上下文和视频录制功能。","https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fissues\u002F507",{"id":140,"question_zh":141,"answer_zh":142,"source_url":133},19495,"Stagehand 支持哪些 Anthropic 模型名称格式？","Stagehand 目前有两种 Anthropic 模型的实现方式，推荐使用最新的格式：\n\n1. **推荐（当前版本）**：使用 `modelName: \"anthropic\u002Fclaude-sonnet-4-latest\"` 格式。\n2. **遗留（旧版）**：使用 `modelName: \"claude-3-7-sonnet-latest\"` 格式。\n\n如果您使用的是第三方代理或本地部署，请确保使用推荐的 `anthropic\u002F...` 前缀格式以获得最佳兼容性。",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},19496,"是否支持自定义浏览器实例或连接到现有的 Playwright 上下文？","社区对此有强烈需求，特别是在需要集成自托管浏览器（如 browserless）或与 Crawlee 等工具配合使用时。虽然早期版本主要管理自己的浏览器上下文，但在新版本（v3+）中已逐步增加了对附加到现有 Page 和上下文的支持，允许用户复用已有的浏览器实例以避免资源浪费并兼容现有测试架构。","https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fissues\u002F391",[149,154,159,164,169,174,179,184,189,194,199,204,209,214,219,224,229,234,239,244],{"id":150,"version":151,"summary_zh":152,"released_at":153},117545,"stagehand-server-v3\u002Fv3.6.3","## 变更内容\n* 在 ModelConfig 中包含 LLM 头部信息，由 @miguelg719 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1874 中完成\n* 修复 Pydantic `.model_json_schema()` 的模式解析错误，由 @miguelg719 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1873 中完成\n* 功能（CLI）：将 browse-cli 元数据添加到 Browserbase 会话中，由 @shrey150 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1890 中完成\n* STG-1669：修复（CLI）：当浏览器连接断开时清除缓存状态，由 @shrey150 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1887 中完成\n* STG-1672：为现有的 Browserbase 会话向 browse CLI 添加 --connect 标志，由 @shrey150 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1889 中完成\n* 杂项：将 browse-cli 的发布周期与 stagehand 核心解耦，由 @shrey150 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1885 中完成\n* [STG-1702] 修复：在 release-cli 工作流中将 GITHUB_TOKEN 传递给 changeset 版本步骤，由 @shrey150 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1893 中完成\n* 修复 OpenAI cua 代理，由 @tkattkat 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1899 中完成\n* [v4]：为 `\u002Fclick` 路由存根添加 `method` 参数，由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1884 中完成\n* STG-1614：添加 v4 LLM 存根和内部模式，由 @monadoid 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1881 中完成\n* [v4]：更新 `\u002Fscroll` 路由存根，由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1875 中完成\n* [v4]：添加 `\u002FelementInfo` 路由存根，由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1877 中完成\n* [v4]：为定位器函数添加更多页面路由存根，由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1882 中完成\n* STG-1668：browse env local 通过 CDP 自动发现现有 Chrome 浏览器，由 @shrey150 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1886 中完成\n* [修复]：处理 `timeout` 到 `timeoutMs` 的映射，由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1901 中完成\n* STG-1671：杂项：通过 husky + lint-staged 添加 prettier pre-commit 钩子，由 @shrey150 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1888 中完成\n* 将 server-v4 drizzle 堆栈恢复到主分支，由 @monadoid 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1917 中完成\n* 杂项：将 browse-cli 切换到合并优先的发布流程，由 @shrey150 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1921 中完成\n* 发布 @browserbasehq\u002Fbrowse-cli@0.4.0，由 @github-actions[bot] 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1925 中完成\n* [修复]：强化 act 变量提示，由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1922 中完成\n* [修复]：附加到手动创建的新标签页，由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1924 中完成\n* [STG-1733] 修复：为 browse-cli 会话使用有效的元数据键，由 @derekmeegan 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1911 中完成\n* 发布 @browserbasehq\u002Fbrowse-cli@0.4.1，由 @github-actions[bot] 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1932 中完成\n* [STG-1739] 修复：browse-cli 发布以 alpha 版本而非 latest 版本发布，由 @shrey150 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1934 中完成\n* 添加补充","2026-03-31T21:57:32",{"id":155,"version":156,"summary_zh":157,"released_at":158},117546,"stagehand-server-v3\u002Fv3.6.2","## 变更内容\n* [docs]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1842 中添加 `page.setExtraHTTPHeaders()` 的文档\n* 由 @miguelg719 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1850 中撤销无意中提交的测试更改\n* [feat]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1843 中将 `toolTimeout` 参数应用于更多工具\n* 由 @monadoid 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1856 中恢复已损坏的 SSE yield 配置\n* 由 @tkattkat 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1811 中移除 DOM 模式下 fillform 工具中不必要的 value 参数\n* 由 @monadoid 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1851 中使用 Fastify 插件对 v4 路由进行分组\n* [fix]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1854 中将 `useSearch` 和 `toolTimeout` 添加到 stainless 类型中\n* [v4]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1860 中统一选择器类型\n* [v4]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1861 中为选择器模式添加索引\n* [v4]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1862 中移除冗余路由\n* [v4]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1865 中更新存根以返回选择器对象\n* 由 @filip-michalsky 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1808 中添加 observe 相关变量\n* 文档：由 @Kylejeong2 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1879 中更新文档主题，修复之前的日落主题\n* 由 @monadoid 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1858 中为本地 v3 流式传输添加明确的 SSE 事件名称\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcompare\u002F@browserbasehq\u002Fbrowse-cli@0.2.0...stagehand-server-v3\u002Fv3.6.2\n\n## 变更内容\n* [docs]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1842 中添加 `page.setExtraHTTPHeaders()` 的文档\n* 由 @miguelg719 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1850 中撤销无意中提交的测试更改\n* [feat]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1843 中将 `toolTimeout` 参数应用于更多工具\n* 由 @monadoid 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1856 中恢复已损坏的 SSE yield 配置\n* 由 @tkattkat 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1811 中移除 DOM 模式下 fillform 工具中不必要的 value 参数\n* 由 @monadoid 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1851 中使用 Fastify 插件对 v4 路由进行分组\n* [fix]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1854 中将 `useSearch` 和 `toolTimeout` 添加到 stainless 类型中\n* [v4]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1860 中统一选择器类型\n* [v4]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1861 中为选择器模式添加索引\n* [v4]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1862 中移除冗余路由\n* [v4]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fst","2026-03-24T17:25:25",{"id":160,"version":161,"summary_zh":162,"released_at":163},117547,"@browserbasehq\u002Fstagehand@3.2.0","### 小改动\n\n-   [#1779](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1779) [`2f43ffa`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F2f43ffac11778152d17e4c44405770cc32c3ec8c) 感谢 [@shrey150](https:\u002F\u002Fgithub.com\u002Fshrey150)! - 功能：在 `localBrowserLaunchOptions` 中添加 `cdpHeaders` 选项，用于通过 CDP URL 连接到现有浏览器时传递自定义 HTTP 头。\n\n-   [#1834](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1834) [`63ee247`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F63ee247ac6bf2992046d4f6b2759f46b15643e36) 感谢 [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - 更新 Stagehand 代理搜索工具\n\n-   [#1774](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1774) [`521a10e`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F521a10e3698fc5631e219947bc90dad0f8bddaa8) 感谢 [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - 添加新的 `page.setExtraHTTPHeaders()` 方法\n\n### 补丁更新\n\n-   [#1759](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1759) [`505e8c6`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F505e8c6736f3706328dbc8df670c49a018058388) 感谢 [@shrey150](https:\u002F\u002Fgithub.com\u002Fshrey150)! - 在模型配置 Schema 的提供商枚举中添加 Bedrock，并重新生成 OpenAPI 规范。\n\n-   [#1814](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1814) [`7dc35f5`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F7dc35f5e25689e6518d68b25ef71536d2781c8aa) 感谢 [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - 将代理中 OpenAI 提供商的使用方式更改为默认 `store: false`。\n\n-   [#1846](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1846) [`335cf47`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F335cf4730e73bce33e92331d04bda4b0fd42685d) 感谢 [@aq17](https:\u002F\u002Fgithub.com\u002Faq17)! - 修复流式传输完成事件被静默丢弃的问题。此前，包含结果负载（成功状态、消息、操作、用量和对话历史）的最终 SSE 事件会被丢弃，而不是返回给调用方。\n\n-   [#1764](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1764) [`6ba0a1d`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F6ba0a1db7fc2d5d5a2f8927b1417d8f1d15eda10) 感谢 [@shrey150](https:\u002F\u002Fgithub.com\u002Fshrey150)! - 在 `GoogleVertexProviderSettings` 中暴露 `headers` 字段，使模型配置能够传递自定义提供商头信息（例如 `X-Goog-Priority`），而不会出现 TypeScript 错误。\n\n-   [#1847](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1847) [`4ff3bb8`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F4ff3bb831a6ef6e2d57148e7afb68ea8d23e395d) 感谢 [@miguelg719](https:\u002F\u002Fgithub.com\u002Fmiguelg719)! - 当 `BROWSERBASE_FLOW_LOGS=1` 时启用 FlowLogger。\n\n-   [#1752](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1752) [`c27054b`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fc27054bbd0508431ade91d655f89efc87bbf5867) 感谢 [@derekmeegan](https:\u002F\u002Fgithub.com\u002Fderekmeegan)! - 修复：在验证码破解过程中暂停 Browserbase 代理，并在破解完成后改进 CUA 恢复机制。\n\n-   [#1800](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1800) ","2026-03-18T21:40:56",{"id":165,"version":166,"summary_zh":167,"released_at":168},117548,"@browserbasehq\u002Fbrowse-cli@0.2.0","### 小改动\n\n-   [#1816](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1816) [`687d54a`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F687d54addad5625f28d51c6994170c7b629871f2) 感谢 [@shrey150](https:\u002F\u002Fgithub.com\u002Fshrey150)! - 为 `browse open` 添加 `--context-id` 和 `--persist` 标志，以便在会话之间加载和持久化 Browserbase 上下文\n\n-   [#1793](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1793) [`e38c13b`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fe38c13b7526b140b693152ef1ffda88a74e9c425) 感谢 [@shrey150](https:\u002F\u002Fgithub.com\u002Fshrey150)! - 初次发布 browse CLI - 面向 AI 代理的浏览器自动化工具\n\n### 补丁更新\n\n-   [#1806](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1806) [`f8c7738`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Ff8c773898f4d97e8854cc67a0b18eb7d1cdd7b75) 感谢 [@shrey150](https:\u002F\u002Fgithub.com\u002Fshrey150)! - 修复 `browse env` 在执行 `browse env remote` 后显示过时模式的问题\n\n-   更新了依赖项 \\[[`505e8c6`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F505e8c6736f3706328dbc8df670c49a018058388), [`2f43ffa`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F2f43ffac11778152d17e4c44405770cc32c3ec8c), [`63ee247`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F63ee247ac6bf2992046d4f6b2759f46b15643e36), [`7dc35f5`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F7dc35f5e25689e6518d68b25ef71536d2781c8aa), [`335cf47`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F335cf4730e73bce33e92331d04bda4b0fd42685d), [`6ba0a1d`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F6ba0a1db7fc2d5d5a2f8927b1417d8f1d15eda10), [`4ff3bb8`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F4ff3bb831a6ef6e2d57148e7afb68ea8d23e395d), [`c27054b`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fc27054bbd0508431ade91d655f89efc87bbf5867), [`2abf5b9`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F2abf5b90f1e2bb1442509ef3a686b6128c9cdcf6), [`7817fcc`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F7817fcc315eee4455ce04567cf56c9ec801caf0b), [`7390508`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F73905088c5ed5923d276da9cce2efd0a0a3a46eb), [`611f43a`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F611f43ac8d4c580216d55d2b217c14a9a9c11013), [`521a10e`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F521a10e3698fc5631e219947bc90dad0f8bddaa8), [`2402a3c`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F2402a3c4d50270391b3e6440f4385cdcf5e1eb64)]:\n    -   @browserbasehq\u002Fstagehand@3.2.0","2026-03-18T21:40:53",{"id":170,"version":171,"summary_zh":172,"released_at":173},117549,"stagehand-server-v3\u002Fv3.6.1","## 变更内容\n* [修复]: 移除遗留的 `handlePossibleNavigation()` 方法，由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1761 中完成\n* [文档]: 添加 `context.setExtraHTTPHeaders()` 的文档，由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1762 中完成\n* [STG-1458] 服务器缓存文档，由 @sameelarif 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1753 中完成\n* 杂项：移除已停用的 Claude 3.5 和 3.7 Sonnet 模型，由 @shrey150 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1775 中完成\n* 修复：在公共模型配置类型中公开 Vertex 头部信息，由 @shrey150 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1764 中完成\n* [STG-1482] 更新缓存文档：拆分为 Browserbase 缓存和本地缓存两部分，由 @derekmeegan 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1770 中完成\n* 解决初始化脚本与调试器在帧初始化脚本注入时的竞态问题，由 @pirate 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1719 中完成\n* [功能]: 添加 `page.setExtraHTTPHeaders()` 方法，由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1774 中完成\n* [功能]: 添加 `cdpHeaders` 选项，用于自定义 CDP 连接头部信息，由 @shrey150 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1779 中完成\n* 修复：修复 CLI 链接并保留配置，由 @miguelg719 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1755 中完成\n* [修复]: 在分支 PR 上跳过需要密钥的 CI 任务，由 @shrey150 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1780 中完成\n* 允许外部贡献者在获得批准后使用密钥运行 CI，由 @pirate 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1782 中完成\n* 撤销“允许外部贡献者在获得批准后使用密钥运行 CI”的更改，由 @pirate 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1786 中完成\n* 撤销“[修复]: 在分支 PR 上跳过需要密钥的 CI 任务”的更改，由 @pirate 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1787 中完成\n* [功能]: 为代理工具添加可配置超时时间，由 @tkattkat 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1766 中完成\n* 向 v3 服务器 OpenAPI 规范中添加缺失的 cdpHeaders 字段，由 @pirate 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1797 中完成\n* [STG-1536] 将 `packages\u002Fstagehand\u002Fserver` 分割为 separate server-v3 和 server-v4 目录，由 @pirate 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1796 中完成\n* [功能]: 添加 browse CLI 包，由 @shrey150 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1793 中完成\n* 修复 (CI): 修复对过时服务器包名的 changeset 引用，该引用曾阻止 CI 运行，由 @pirate 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1801 中完成\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcompare\u002Fstagehand-server\u002Fv3.6.1...stagehand-server-v3\u002Fv3.6.1\n\n## 变更内容\n* [修复]: 移除遗留的 `handlePossibleNavigation()` 方法，由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1761 中完成\n* [文档]: 添加 `context.setExtraHTTPHeaders()` 的文档，由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1762 中完成\n* [STG-1458] 服务器缓存文档，由 @sameelarif 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1753 中完成\n* 杂项：移除已停用的 Claude 3.5 和 3.7 Sonnet 模型，由 @shrey150 在 https:","2026-03-10T01:31:10",{"id":175,"version":176,"summary_zh":177,"released_at":178},117550,"stagehand-server\u002Fv3.6.1","## 变更内容\n* [文档]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1748 中添加了关于 Cookie 处理的文档\n* [文档]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1747 中添加了 `keepAlive` 的文档\n* [STG-1450] 修复会话初始化在无页面打开时失败的问题，回退至打开 about:blank 页面，由 @pirate 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1749 中完成\n* STG-1307：由 @monadoid 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1757 中设置了 Java\u002FKotlin 的 Sonatype 仓库\n* [修复]: 由 @shrey150 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1759 中将 bedrock 添加到 Zod 模式和 OpenAPI 规范中的提供商枚举中\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcompare\u002F@browserbasehq\u002Fstagehand@3.1.0...stagehand-server\u002Fv3.6.1\n\n## 变更内容\n* [文档]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1748 中添加了关于 Cookie 处理的文档\n* [文档]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1747 中添加了 `keepAlive` 的文档\n* [STG-1450] 修复会话初始化在无页面打开时失败的问题，回退至打开 about:blank 页面，由 @pirate 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1749 中完成\n* STG-1307：由 @monadoid 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1757 中设置了 Java\u002FKotlin 的 Sonatype 仓库\n* [修复]: 由 @shrey150 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1759 中将 bedrock 添加到 Zod 模式和 OpenAPI 规范中的提供商枚举中\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcompare\u002F@browserbasehq\u002Fstagehand@3.1.0...stagehand-server\u002Fv3.6.1\n\n## 变更内容\n* [文档]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1748 中添加了关于 Cookie 处理的文档\n* [文档]: 由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1747 中添加了 `keepAlive` 的文档\n* [STG-1450] 修复会话初始化在无页面打开时失败的问题，回退至打开 about:blank 页面，由 @pirate 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1749 中完成\n* STG-1307：由 @monadoid 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1757 中设置了 Java\u002FKotlin 的 Sonatype 仓库\n* [修复]: 由 @shrey150 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1759 中将 bedrock 添加到 Zod 模式和 OpenAPI 规范中的提供商枚举中\n\n\n**完整变更日志**: https:\u002F\u002Fgit","2026-02-25T23:08:09",{"id":180,"version":181,"summary_zh":182,"released_at":183},117551,"@browserbasehq\u002Fstagehand@3.1.0","### 小改动\n\n-   [#1681](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1681) [`e3db9aa`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fe3db9aa863f44270792215801fe6e3a02a1321aa) 感谢 [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - 添加 Cookie 管理 API：`context.addCookies()`、`context.clearCookies()` 和 `context.cookies()`\n\n-   [#1672](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1672) [`b65756e`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fb65756e9e85643055446aa4a51956f7d6627c89f) 感谢 [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - 添加布尔型 `keepAlive` 参数，用于配置调用 `stagehand.close()` 时是否关闭浏览器。\n\n-   [#1708](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1708) [`176d420`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F176d42002cc0a2c7d13b4c0ffbbd56b70fdc49e8) 感谢 [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - 添加 `context.setExtraHTTPHeaders()`\n\n-   [#1611](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1611) [`8a3c066`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F8a3c06600a9ba98485db7e9ed5c3cc43ea180334) 感谢 [@monadoid](https:\u002F\u002Fgithub.com\u002Fmonadoid)! - 在 OpenAPI 规范中使用 `mode` 枚举代替旧的 `cua` 布尔值\n\n-   [#1632](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1632) [`afbd08b`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fafbd08bb6367a9c9f65f67e453667987e4659918) 感谢 [@pirate](https:\u002F\u002Fgithub.com\u002Fpirate)! - 移除通过 `dotenv` 自动加载 `.env` 文件的功能。\n\n    如果您的应用依赖 `.env` 文件，请安装 `dotenv` 并在代码中显式加载：\n\n    ```ts\n    import dotenv from \"dotenv\";\n    dotenv.config({ path: \".env\" });\n    ```\n\n### 补丁更新\n\n-   [#1683](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1683) [`7584f3e`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F7584f3e92e60a557d2b3e0e0d2a2af04c3527523) 感谢 [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - 修复：在 `.count()` 和 `.nth()` 中包含 Shadow DOM，并支持 XPath 谓词\n\n-   [#1644](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1644) [`1e1c9c1`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F1e1c9c15773e49d5c3cd36021dbc1d23495c1bce) 感谢 [@monadoid](https:\u002F\u002Fgithub.com\u002Fmonadoid)! - 通过返回原始的 `sendCDP` Promise 来修复未处理的 CDP 断开连接问题\n\n-   [#1729](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1729) [`6bef890`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F6bef89090ebd231e77d8092b2c32a0f06303d5a9) 感谢 [@shrey150](https:\u002F\u002Fgithub.com\u002Fshrey150)! - 修复：在 CUA 模式下支持 Claude 4.6（Opus 和 Sonnet），方法是使用正确的 `computer_20251124` 工具版本和 `computer-use-2025-11-24` 测试版头信息\n\n-   [#1647](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1647) [`ffd4b33`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fffd4b335a873d0f4dcd76ea22d44f47919bf8e49) 感谢 [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - 修复 [Agent]：解决在 DOM 模式下从历史消息继续对话时出现的问题","2026-02-24T23:25:03",{"id":185,"version":186,"summary_zh":187,"released_at":188},117552,"@browserbasehq\u002Fstagehand@2.5.8","### 补丁变更\n\n-   [#1710](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1710) [`df76207`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fdf7620708a3c2a1142f0eec2664caf86be170b0c) 感谢 [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - 处理在快速打开\u002F关闭弹出窗口时出现的目标已关闭错误\n","2026-02-19T22:39:46",{"id":190,"version":191,"summary_zh":192,"released_at":193},117553,"stagehand-server\u002Fv3.6.0","## 变更内容\n* 由 @miguelg719 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1603 中修复了 Windows 平台的 SEA 发布工作流\n* 由 @miguelg719 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1604 中启用了服务器端的 Bedrock 提供者\n* [文档]：由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1589 中添加了 `page.snapshot()` 的文档\n* [文档]：由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1605 中添加了 `page.waitForSelector()` 的文档\n* [文档]：由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1606 中添加了本地浏览器端口选项的文档\n* 由 @miguelg719 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1609 中添加了 `SupportedUnderstudyActions`，用于观察系统提示\n* 由 @monadoid 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1611 中使用 `mode` 枚举替代旧的 `cua` 布尔值\n* 由 @miguelg719 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1615 中更新了过时的观察评估\n* [修复]：由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1612 中修复了 `page.screenshot()` 中的 `mask` 参数仅应用于第一个节点的问题\n* [维护]：由 @miguelg719 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1614 中加强了对 `act` 和 `observe` 中 `elementId` 的正则表达式验证\n* 由 @pirate 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1617 中基于 Bedrock 的 `provider.model-name` 添加了自动 Bedrock 支持\n* [维护]：由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1622 中将字符串化的 JavaScript 提取到 TS 文件中\n* 由 @miguelg719 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1613 中对 `act` 和 `observe` 的 `method` 进行了 `SupportedUnderstudyAction` 枚举验证\n* 由 @pirate 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1638 中修复了 `stainless.yml` 中的问题\n* 由 @tkattkat 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1633 中添加了警告，提示在混合模式下使用某些模型会导致性能不佳…\n* [修复]：由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1624 中修复了 `\u003Cdialog>` 元素上截图遮罩不生效的问题\n* 由 @miguelg719 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1631 中为 `act` 和 `observe` 添加了右键和中键支持\n* 由 @miguelg719 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1636 中将 `executionModel` 序列化功能添加到了 API 客户端\n* 由 @miguelg719 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1637 中修复了旧模型格式的弃用警告（#1625）\n* 由 @monadoid 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1643 中向文档中添加了回放相关内容\n* 由 @monadoid 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1639 中暂时从 README 中移除了 MCP\n* 修复（CDP）：由 @monadoid 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1644 中通过返回原始的 `sendCDP` Promise 来避免未处理的分离问题\n* [修复]：由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1642 中修复了弹出页面上的 `ctx.addInitScript` 问题\n* [维护]：由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1648 中移除了文档变更集\n* 由 @tkattkat 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1647 中修复了 `[Agent]` 消息处理中的 bug\n* 添加对…的支持","2026-02-04T21:26:32",{"id":195,"version":196,"summary_zh":197,"released_at":198},117554,"stagehand-server\u002Fv3.5.1","## 变更内容\n* [chore]: 添加更严格的 lint 规则，由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1597 中完成\n* 改进代理使用情况指标，由 @tkattkat 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1596 中完成\n* 修复 v3 迁移指南中已弃用的 cua: true 语法，由 @aq17 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1601 中完成\n* 示例：将代理输出记录到文件，由 @monadoid 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1599 中完成\n* 在 stagehand 服务器上添加对 vertex 的支持，由 @miguelg719 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1602 中完成\n\n## 新贡献者\n* @aq17 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1601 中完成了他们的首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcompare\u002F@browserbasehq\u002Fstagehand@3.0.8...stagehand-server\u002Fv3.5.1\n\n## 变更内容\n* [chore]: 添加更严格的 lint 规则，由 @seanmcguire12 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1597 中完成\n* 改进代理使用情况指标，由 @tkattkat 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1596 中完成\n* 修复 v3 过渡指南中已弃用的 cua: true 语法，由 @aq17 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1601 中完成\n* 示例：将代理输出记录到文件，由 @monadoid 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1599 中完成\n* 在 stagehand 服务器上添加对 vertex 的支持，由 @miguelg719 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1602 中完成\n\n## 新贡献者\n* @aq17 在 https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1601 中完成了他们的首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcompare\u002F@browserbasehq\u002Fstagehand@3.0.8...stagehand-server\u002Fv3.5.1","2026-01-24T01:30:35",{"id":200,"version":201,"summary_zh":202,"released_at":203},117555,"@browserbasehq\u002Fstagehand@3.0.8","### Patch Changes\n\n-   [#1514](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1514) [`40ce5cc`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F40ce5cc83ec758f4e8c37132a7f4ac8eeea7ca34) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Rename the close tool in agent to \"done\"\n\n-   [#1574](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1574) [`5506f41`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F5506f416d2609d112b553263984e21d7a30e32b1) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - fix(server): pass cdpUrl to localBrowserLaunchOptions when launchOptions absent\n\n-   [#1521](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1521) [`84c05ca`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F84c05ca8de4587181faf128e5c7464fd960caacc) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - fix: get agent cache working in API mode\n\n-   [#1486](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1486) [`692ffa0`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F692ffa0346ad3d121686aba503c0a22844293efa) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - improve logging in agent\n\n-   [#1551](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1551) [`1ef8901`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F1ef8901e1314e90f43b36be20192e652d3b5598f) Thanks [@miguelg719](https:\u002F\u002Fgithub.com\u002Fmiguelg719)! - move extract handler response log to after URL injection\n\n-   [#1495](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1495) [`72ac775`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F72ac775a831d6f0f376ceda4426525f93cc21452) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - export tool function & type to simplify defining custom tools\n\n-   [#1481](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1481) [`3d5af07`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F3d5af07f66d6d26d1f5ac4bd9be7183c3381dd92) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - add waitForTimeout to page\n\n-   [#1423](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1423) [`40e1d80`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F40e1d80776b9216422a25a81070ccb3105e56ec2) Thanks [@miguelg719](https:\u002F\u002Fgithub.com\u002Fmiguelg719)! - Improve benchmark handling and add metadata\n\n-   [#1588](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1588) [`56c0d24`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F56c0d244f9b2431218bfa832ddfc0587930ae038) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - add SnapshotOptions to page.snapshot()\n\n-   [#1483](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1483) [`16d72fb`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F16d72fb4c4081dd33bf45605d75c27644ea4c00e) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Optimize screenshot handling in agent hybrid mode\n\n-   [#1498](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1498) [`088c4cc`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F088c4cc31dc924bb232a9d5a09ab42cd961c2d36) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - fix: replaying cached actions (for agent & act) now uses the originally defined model, (instead of default model) when action fails and rerunning inference is needed\n\n-   [#1575](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1575) [`4276f4a`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F4276f4abc8bbde215faac6c0321bf243484c376b) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - expose port param in localBrowserLaunchOptions\n\n-   [#1544](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1544) [`6005786`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F600578637e65f6fd18b0cdb322b9e0b857708b2f) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Recommend hybrid mode over DOM mode in agent, which is now considered legacy\n\n-   [#1505](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1505) [`6fbf5fc`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F6fbf5fc811e5e5d9d22f10c5309fbd336892263a) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Add structured output to agent result + ensure close tool is always called\n\n-   [#1511](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1511) [`704cf18`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F704cf18cb2bdd187ba06c35f05ccb47317a7668c) Thanks [@shrey150](https:\u002F\u002Fgithub.com\u002Fshrey150)! - Fix ControlOrMeta keypress event\n\n-   [#1480](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1480) [`091296e`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F091296e438bb2374c8bb10ef6c08283978145ebf) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Update agent to only calculate xpath when caching is enabled\n\n-   [#1509](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1509) [`e56c6eb`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fe56c6eb139bf3aad37e98b16626fff13a6c671d0) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - add support for page.waitForSelector()\n\n-   [#1478](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1478) [`2cb78d0`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F2cb78d0f5ddef9f7337a9a2fe3137f1421df700a) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - update agent message handling\n\n-   [","2026-01-22T03:37:37",{"id":205,"version":206,"summary_zh":207,"released_at":208},117556,"@browserbasehq\u002Fstagehand@2.5.7","### Patch Changes\n\n-   [#1593](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1593) [`159f6d3`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F159f6d360cda6af46d45be4be33178dfb2969122) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Update extract tool\n","2026-01-22T03:32:21",{"id":210,"version":211,"summary_zh":212,"released_at":213},117557,"stagehand-server\u002Fv3.4.0","## What's Changed\n* Removed x-language and x-sdk-version from openapi spec by @monadoid in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1515\n* Using provider\u002Fmodel syntax in modelName examples within openapi spec by @monadoid in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1526\n* Update docs for canonical  by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1519\n* Update version number for new 3.4.0 release by @monadoid in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1529\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcompare\u002Fstagehand-server\u002Fv3.3.0...stagehand-server\u002Fv3.4.0","2026-01-13T17:28:45",{"id":215,"version":216,"summary_zh":217,"released_at":218},117558,"stagehand-server\u002Fv3.3.0","## What's Changed\n* Hybrid mode docs by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1454\n* Update agent message handling by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1478\n* add waitForTimeout to page by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1481\n* Update agent to only calculate xpath when caching is enabled by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1480\n* Screenshot after actions by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1483\n* Improve agent logging by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1486\n* update docs for new methods & return types by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1488\n* Replace Slack references with Discord by @shrey150 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1492\n* [chore]: fix bid postings eval by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1499\n* [fix]: use correct model on cache replay failure by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1498\n* export tool function & type by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1495\n* \u002Fend endpoint returns empty object by @monadoid in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1500\n* Added optional param to force empty object by @monadoid in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1506\n* Fix ollama support with AI SDK by @shrey150 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1504\n* Fix ControlOrMeta key normalization in keyPress by @shrey150 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1511\n* update flaky evals by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1507\n* docs: add BROWSERBASE_CONFIG_DIR file-based session logging by @shrey150 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1508\n* Update close tool + add output to agent result by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1505\n* [feat]: add support for `page.waitForSelector()` by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1509\n* [feat]: add `page.snapshot()` by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1518\n* Disable swagger docs in prod by @monadoid in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1520\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcompare\u002F@browserbasehq\u002Fstagehand@3.0.7...stagehand-server\u002Fv3.3.0","2026-01-09T23:50:55",{"id":220,"version":221,"summary_zh":222,"released_at":223},117559,"@browserbasehq\u002Fstagehand@3.0.7","### Patch Changes\n\n-   [#1461](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1461) [`0f3991e`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F0f3991eedc0aaff72ef718dda3ddb0839cf4a464) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Move hybrid mode out of experimental\n\n-   [#1433](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1433) [`e0e22e0`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fe0e22e06bc752a8ffde30f3dbfa58d91e24e6c09) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Put hybrid mode behind experimental\n\n-   [#1456](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1456) [`f261051`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Ff2610517d74774374de9ee93191e663439ef55e5) Thanks [@shrey150](https:\u002F\u002Fgithub.com\u002Fshrey150)! - Invoke page.hover for agent move action\n\n-   [#1473](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1473) [`e021674`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fe021674f9641c1c5f9d0c1817c3fdf599eea124d) Thanks [@shrey150](https:\u002F\u002Fgithub.com\u002Fshrey150)! - Add safety confirmation support for OpenAI + Google CUA\n\n-   [#1399](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1399) [`6a5496f`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F6a5496f17dbb716be1ee1aaa4e5ba9d8c723b30b) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Ensure cua agent is killed when stagehand.close is called\n\n-   [#1436](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1436) [`fea1700`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Ffea1700552af3319052f463685752501c8e71de3) Thanks [@miguelg719](https:\u002F\u002Fgithub.com\u002Fmiguelg719)! - Fix auto-load key for act\u002Fextract\u002Fobserve parametrized models on api\n\n-   [#1439](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1439) [`5b288d9`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F5b288d9ac37406ff22460ac8050bea26b87a378e) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Remove base64 from agent actions array ( still present in messages object )\n\n-   [#1408](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1408) [`e822f5a`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fe822f5a8898df9eb48ca32c321025f0c74b638f0) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - allow for act() cache hit when variable values change\n\n-   [#1472](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1472) [`638efc7`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F638efc7fea401bc43dd05dceedf4c13a3495a728) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - fix: agent cache not refreshed on action failure\n\n-   [#1424](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1424) [`a890f16`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fa890f16fa3a752f308f858e5ab9c9a0faf6b3b34) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - fix: \"Error: -32000 Failed to convert response to JSON: CBOR: stack limit exceeded\"\n\n-   [#1418](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1418) [`934f492`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F934f492ec587bef81f0ce75b45a35b44ab545712) Thanks [@miguelg719](https:\u002F\u002Fgithub.com\u002Fmiguelg719)! - Cleanup handlers and bus listeners on close\n\n-   [#1430](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1430) [`bd2db92`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fbd2db925f66a826d61d58be1611d55646cbdb560) Thanks [@shrey150](https:\u002F\u002Fgithub.com\u002Fshrey150)! - Fix CUA model coordinate translation\n\n-   [#1465](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1465) [`51e0170`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F51e01709ce1c947c1947b4e2cb0b1f4f97b77182) Thanks [@miguelg719](https:\u002F\u002Fgithub.com\u002Fmiguelg719)! - Add media resolution high provider option to gemini 3 hybrid agent\n\n-   [#1431](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1431) [`05f5580`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F05f5580937c3c157550e3c25ae6671f44f562211) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Update the cache handling for agent\n\n-   [#1432](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1432) [`f56a9c2`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Ff56a9c296d4ddce25a405358c66837f8ce4d679f) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Deprecate cua: true in favor of mode: \"cua\"\n\n-   [#1406](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1406) [`b40ae11`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fb40ae11391af49c3581fce27faa1b7483fc4a169) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Add support for hovering with coordinates ( page.hover )\n\n-   [#1407](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1407) [`0d2b398`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F0d2b398cd40b32a9ecaf28ede70853036b7c91bd) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Clean up page methods\n\n-   [#1412](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1412) [`cd01f29`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fcd01f290578eac703521f801ba3712f5332918f3) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - fix: load GOOGLE_API_KEY from .env\n\n-   [#1462](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1462) [`a734fca`](https:\u002F\u002Fgithub.com\u002Fbrowserba","2025-12-27T19:55:41",{"id":225,"version":226,"summary_zh":227,"released_at":228},117560,"stagehand-server\u002Fv3.2.0","## What's Changed\n* [Feature] exclude tools from agent by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1440\n* [feat]: add support for safety confirmation callback for OpenAI + Google CUA by @shrey150 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1473\n* [fix]: refresh agent cache on action failure by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1472\n* Version Packages by @github-actions[bot] in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1414\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcompare\u002Fstagehand-server\u002Fv3.1.3...stagehand-server\u002Fv3.2.0","2025-12-27T19:58:34",{"id":230,"version":231,"summary_zh":232,"released_at":233},117561,"stagehand-server\u002Fv3.1.3","## What's Changed\n* update agent docs by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1411\n* fix: load `GOOGLE_API_KEY` from env by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1412\n* [docs]: update `act` reference with preferred model name formatting by @ziruihao in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1409\n* [docs] add link to Discord by @shrey150 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1416\n* Update screenshot collector by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1373\n* Add more agent evals to evals cli  by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1422\n* Add hover method by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1406\n* [Evals] task error handling and memory cleanup by @miguelg719 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1419\n* Clean up handlers and remove bus listeners on v3.close() by @miguelg719 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1418\n* kill cua agent on stagehand.close by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1399\n* clean up page methods by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1407\n* allow act cache hit when variable values change by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1408\n* update screenshot collector stop method by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1425\n* [fix]: handle CBOR stack limit errors by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1424\n* [chore]: rm inlined JS from `snapshot.ts` by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1427\n* [Feature] Add Agent.execute Hybrid CUA + DOM mode by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1428\n* [chore]: split up snapshot logic into submodules by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1429\n* [Evals] Disable screenshot collector interval by default by @miguelg719 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1421\n* Fix parametrized 'model' api key auto-loading by @miguelg719 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1436\n* update agent cache handling by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1431\n* move hybrid mode behind experimental by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1433\n* Add cua to mode by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1432\n* [test]: add unit tests for xpath utils & tree format utils by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1441\n* fix: CUA coordinating scaling issue by @shrey150 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1430\n* [test]: add tests for synchronous DOM node helpers by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1443\n* [test]: add tests for ax tree post-processing by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1446\n* remove base64 from agent actions array by @tkattkat in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1439\n* [test]: add tests DOM session builders by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1448\n* [test]: add tests for frame merging & prefix computation by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1452\n* [test]: add tests for ax tree fetching & object ID resolvers by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1451\n* [test]: add tests for focus selector utils by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1447\n* Add Stainless CI for SDK codegen by @monadoid in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1450\n* Invoke page.hover on agent move action by @shrey150 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1456\n* [STG-1053] [server] Use fastify-zod-openapi + zod v4 for openapi generation by @monadoid in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1420\n* Pushing stagehand-server to github releases with changesets, instead of using github artifacts by @monadoid in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1457\n* add deepseek specific prompting in aisdk by @seanmcguire12 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1455\n* Add code to publish binaries on release by @monadoid in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1459\n* Add media resolution high to gemini 3 hybrid agent by @miguelg719 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1465\n* Moved server binary build into release.yaml by @monadoid in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1467\n* fix: correctly pass in userDataDir to chrome launcher by @shrey150 in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1462\n* Gate release creation on package.json version changes on main, instead of Changesets publishedPackages. by @monadoid in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1469\n* No longer using changesets for stagehand-server - manually bumping package.json version number by @monadoid in https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1470\n* remove experimental flag on hybrid mode  by @tkattkat in https:\u002F","2025-12-24T19:10:52",{"id":235,"version":236,"summary_zh":237,"released_at":238},117562,"@browserbasehq\u002Fstagehand@3.0.6","### Patch Changes\n\n-   [#1388](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1388) [`605ed6b`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F605ed6b81a3ff8f25d4022f1e5fce6b42aecfc19) Thanks [@miguelg719](https:\u002F\u002Fgithub.com\u002Fmiguelg719)! - Fix multiple click event dispatches on CDP and Anthropic CUA handling (double clicks)\n\n-   [#1400](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1400) [`34e7e5b`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F34e7e5b292f5e6af6efc0da60118663310c5f718) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - don't write base64 encoded screenshots to disk when caching agent actions\n\n-   [#1345](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1345) [`943d2d7`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F943d2d79d0f289ac41c9164578f2f1dd876058f2) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Add support for aborting \u002F stopping an agent run & continuing an agent run using messages from prior runs\n\n-   [#1334](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1334) [`0e95cd2`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F0e95cd2f67672f64f0017024fd47d8b3aef59a95) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Add support for google vertex provider\n\n-   [#1410](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1410) [`d4237e4`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fd4237e40951ecd10abfdbe766672d498f8806484) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - fix: include extract in stagehand.history()\n\n-   [#1315](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1315) [`86975e7`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F86975e795db7505804949a267b20509bd16b5256) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Add streaming support to agent through stream:true in the agent config\n\n-   [#1304](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1304) [`d5e119b`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fd5e119be5eec84915a79f8d611b6ba0546f48c99) Thanks [@miguelg719](https:\u002F\u002Fgithub.com\u002Fmiguelg719)! - Add support for Microsoft's Fara-7B\n\n-   [#1346](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1346) [`4e051b2`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F4e051b23add7ae276b0dbead38b4587838cfc1c1) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - fix: don't attach to targets twice\n\n-   [#1327](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1327) [`6b5a3c9`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F6b5a3c9035654caaed2da375085b465edda97de4) Thanks [@miguelg719](https:\u002F\u002Fgithub.com\u002Fmiguelg719)! - Informed error parsing from api\n\n-   [#1335](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1335) [`bb85ad9`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fbb85ad912738623a7a866f0cb6e8d5807c6c2738) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - add support for page.addInitScript()\n\n-   [#1331](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1331) [`88d28cc`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F88d28cc6f31058d1cf6ec6dc948a4ae77a926b3c) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - fix: page.evaluate() now works with scripts injected via context.addInitScript()\n\n-   [#1316](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1316) [`45bcef0`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F45bcef0e5788b083f9e38dfd7c3bc63afcd4b6dd) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Add support for callbacks in stagehand agent\n\n-   [#1374](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1374) [`6aa9d45`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F6aa9d455aa5836ec2ee8ab2e8b9df3fb218e5381) Thanks [@miguelg719](https:\u002F\u002Fgithub.com\u002Fmiguelg719)! - Fix key action mapping in Anthropic CUA\n\n-   [#1330](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1330) [`d382084`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fd382084745fff98c3e71413371466394a2625429) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - fix: make act, extract, and observe respect user defined timeout param\n\n-   [#1336](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1336) [`1df08cc`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F1df08ccb0a2cf73b5c37a91c129721114ff6371c) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Patch agent on api\n\n-   [#1358](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1358) [`2b56600`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F2b566009606fcbba987260f21b075b318690ce99) Thanks [@tkattkat](https:\u002F\u002Fgithub.com\u002Ftkattkat)! - Add support for 4.5 opus in cua agent\n","2025-12-13T01:43:23",{"id":240,"version":241,"summary_zh":242,"released_at":243},117563,"@browserbasehq\u002Fstagehand@2.5.6","### Patch Changes\n\n-   [#1396](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1396) [`b7bc0b6`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fb7bc0b621b966db9e30d96c4439cd1eaa2ee1ce5) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - deprecate drawOverlay parameter in observe\n","2025-12-09T23:59:10",{"id":245,"version":246,"summary_zh":247,"released_at":248},117564,"@browserbasehq\u002Fstagehand@2.5.5","### Patch Changes\n\n-   [#1389](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1389) [`575226f`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002F575226f90993c35c87c533b2200a3f737bff54cb) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - Retry DOM.getDocument on max depth exceeded with exponential backoff\n\n-   [#1386](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fpull\u002F1386) [`dbffb75`](https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand\u002Fcommit\u002Fdbffb7574b74ba768e5a0882c518a5dce87a977e) Thanks [@seanmcguire12](https:\u002F\u002Fgithub.com\u002Fseanmcguire12)! - Remove deprecated internal usage of page.evaluate\n","2025-12-09T16:03:57"]