最近在折腾 LLM 让它自己“上网干活”,结果发现浏览器这关很容易卡住。
browser-use
虽然好用,但我们是全 TypeScript 技术栈。
索性自己动手整了一个 —— Browsernode,直接用 TypeScript/Node.js 重写,功能和 API 100% 兼容browser-use
,
而且对开发者更友好,开箱即用。现在开源出来,给有同样需求的同学用。
Browsernode 是一个用 TypeScript/Node.js 实现的 AI 浏览器 Agent 库,可以让 LLM / Agent 控制真实浏览器执行各种自动化任务。
开源协议:MIT License
技术栈:Node.js / TypeScript
兼容性:与 browser-use
的 API 和功能 100% 对齐
仓库:GitHub
官网 & 文档:browsernode.com | docs.browsernode.com
我们很喜欢 browser-use
,并且最初就是用它。但在实际项目中,我们的整个链路是 TypeScript/JavaScript ,于是干脆 从零用 TS 重写,带来:
更强的 TypeScript 类型支持 与更好的开发体验( DX )
与 browser-use
完全对齐,迁移成本几乎为零
让 LLM / Agent 用自然语言或函数调用的方式操作浏览器,比如:
解析网页 DOM (按钮、输入框、文本等)并转成结构化 JSON
自动点击、输入、跳转、抓取数据
执行自定义的浏览器自动化流程
Node.js / TypeScript 优先,强类型支持
兼容所有 browser-use
功能 & API(即插即用)
适配各种 LLM 工作流、RPA 、数据抓取场景
面向开发者体验的设计
npm install browsernode
# 安装 Playwright ( Chromium )
npx playwright install
import { Agent } from "browsernode";
import { ChatOpenAI } from "browsernode/llm";
const llm = new ChatOpenAI({
model: "gpt-4.1",
temperature: 0.0,
apiKey: process.env.OPENAI_API_KEY,
});
const task = "对比 gpt-4o 与 DeepSeek-V3 的价格";
const agent = new Agent({ task, llm });
const history = await agent.run();
.env
OPENAI_API_KEY=
更多用法见文档:docs.browsernode.com
GitHub:leoning60/browsernode
这个库我们内部已经用 4 个多月,稳定性和功能都踩过坑。
如果你在做 AI Agent / RPA / 浏览器自动化,欢迎试用、提建议,或者直接在 GitHub 开 Issue 交流。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.