FanchmWrt 是一个基于 OpenWrt 构建的开源家庭防火墙系统,专注于为家庭用户提供安全、可靠的网络防护解决方案。该项目在 OpenWrt 的基础上集成了多种防火墙功能,并针对家庭使用场景进行了优化。FanchmWrt 支持多种热门设备,用户可以选择从官网下载预编译固件,也可以自行编译适配其他设备型号。本文将详细介绍这个开源项目的主要特性、技术架构和使用指南。
Stagehand 是一个创新的浏览器自动化框架,通过结合自然语言和代码来控制 Web 浏览器。该项目由 Browserbase 开发,将 AI 的灵活性与代码的精确性相结合,使 Web 自动化更加灵活、可维护且可靠。Stagehand 支持 CDP 协议,基于 Playwright 构建,能够实现从 AI 驱动的探索到可重复的自动化工作流的完整流程。本文将详细介绍这个开源项目的主要特性、使用方法和技术架构。
Stagehand 是一个面向生产环境的浏览器自动化框架,旨在解决现有 Web 自动化工具的局限性。传统工具要么要求开发者编写低级代码(如 Selenium、Playwright、Puppeteer),要么依赖可能不可预测的高级代理。Stagehand 通过让开发者自主选择使用代码还是自然语言,并搭建两者之间的桥梁,成为生产环境浏览器自动化的自然选择。
使用 act() 方法执行单个动作,通过自然语言描述实现元素交互:
const page = stagehand.context.pages()[0];
await page.goto("https://github.com/browserbase");
// 使用自然语言执行操作
await stagehand.act("click on the stagehand repo");
使用 agent() 方法处理需要多个步骤的复杂任务:
const agent = stagehand.agent();
await agent.execute("Get to the latest PR");
代理能够自主分解任务、执行多个操作步骤,并根据页面状态调整策略。
使用 extract() 方法从页面提取结构化数据,支持 Zod 类型验证:
const { author, title } = await stagehand.extract(
"extract the author and title of the PR",
z.object({
author: z.string().describe("The username of the PR author"),
title: z.string().describe("The title of the PR"),
}),
);
使用一行命令开始:
npx create-browser-app
或从源码构建:
git clone https://github.com/browserbase/stagehand.git
cd stagehand
pnpm install
pnpm run build
pnpm run example
创建 .env 文件并添加必要的 API 密钥:
cp .env.example .env
nano .env
需要配置:
如果需要 Python 实现,可以访问: https://github.com/browserbase/stagehand-python
import { Stagehand } from "@browserbasehq/stagehand";
const stagehand = new Stagehand({
env: "LOCAL", // 或 "BROWSERBASE"
modelName: "gpt-4", // LLM 模型
apiKey: process.env.OPENAI_API_KEY,
});
const page = stagehand.context.pages()[0];
await page.goto("https://example.com");
根据任务复杂度选择合适的方法:
// 简单操作
await stagehand.act("click the login button");
// 复杂任务
const agent = stagehand.agent();
await agent.execute("login and navigate to dashboard");
// 数据提取
const data = await stagehand.extract(
"get product information",
z.object({
name: z.string(),
price: z.number(),
})
);
Stagehand 自动缓存已执行的操作:
// 第一次执行使用 LLM
await stagehand.act("click the submit button");
// 后续执行直接使用缓存,无需 LLM 调用
await stagehand.act("click the submit button");
当网站结构发生变化时:
let page: Page;
try {
// 尝试使用缓存的操作
await stagehand.act("click the new button");
} catch (e) {
// 自动回退到 AI 推理
// 并更新缓存
await stagehand.act("click the new button");
}
可以与 Director(https://director.ai)集成,实现更高级的自动化:
Vibe code Stagehand with Director 🎭
Director 提供可视化的自动化界面和更强大的功能。
使用 Zod 定义复杂的数据验证规则:
const schema = z.object({
products: z.array(
z.object({
id: z.string().uuid(),
name: z.string().min(1),
price: z.number().positive(),
inStock: z.boolean(),
})
),
});
完善的错误处理机制:
try {
await stagehand.act("complete purchase");
} catch (error) {
if (error instanceof StagehandError) {
// 处理 Stagehand 特定错误
console.error(error.message);
} else {
// 处理其他错误
console.error("Unexpected error:", error);
}
}
./examples 目录项目高度重视社区贡献,主要关注:
入门建议:
项目感谢以下主要贡献者:
基于 MIT License 开源。
Copyright 2025 Browserbase, Inc.
Licensed under the MIT License:
You may use this project for any purpose, with proper attribution.
Stagehand Python:Python 实现 https://github.com/browserbase/stagehand-python
Browserbase:云端浏览器服务 https://www.browserbase.com
Director:可视化自动化界面 https://director.ai
| 工具 | 优点 | 局限 |
|---|---|---|
| Selenium | 广泛支持 | 代码复杂,维护困难 |
| Playwright | 现代,功能强大 | 需要编写底层代码 |
| Puppeteer | 轻量级 | 仅支持 Chromium |
| Stagehand | AI + 代码,灵活 | 依赖 LLM API |
Stagehand 代表了浏览器自动化的新范式,通过巧妙地结合 AI 的智能和代码的精确性,提供了一个既灵活又可靠的自动化解决方案。项目的核心理念是让开发者根据任务复杂度和场景需求,自由选择使用自然语言还是代码,从而实现最佳的开发体验和自动化效果。
在实际应用中,Stagehand 特别适合需要处理动态页面、复杂交互或不确定性的自动化场景。其自愈机制和智能缓存大幅降低了维护成本,使自动化脚本更加健壮和持久。
无论是用于测试自动化、数据采集还是业务流程自动化,Stagehand 都能提供强大的支持。项目的开源特性和活跃的社区也意味着它将持续发展和改进,成为 Web 自动化领域的重要工具。
标签: github playwright selenium puppeteer browser-automation ai LLM typescript CDP
GitHub Store 是一个基于 GitHub Releases 的跨平台应用商店,旨在简化开源软件的发现和安装过程。该项目使用 Kotlin Multiplatform 和 Compose Multiplatform 构建,支持 Android 和桌面平台,能够自动检测可安装的二进制文件,提供一键安装、更新追踪等功能,以类似应用商店的界面展示 GitHub 仓库信息。本文将详细介绍这个开源项目的主要特性、工作原理和使用场景。
World Monitor 是一款开源的实时全球智能仪表板,通过整合 AI 驱动的新闻聚合、地缘政治监控和基础设施跟踪,为用户提供统一的态势感知平台。支持本地 LLM(Ollama)、交互式 3D 地球、36+ 实时数据层以及多语言界面,是进行全球态势监控、地缘政治分析和情报研究的强大工具。本文将详细介绍项目特性、技术架构和应用场景。
在 AI 和向量搜索技术快速发展的今天,阿里巴巴开源了一个令人瞩目的项目——Zvec。这是一个轻量级、闪电快速的进程内向量数据库,专为直接嵌入应用程序而设计。
在当今数字化投资时代,如何利用 AI 技术提升投资决策的准确性和效率?今天要介绍的这个开源项目 daily_stock_analysis 为我们提供了一个完美的解决方案。