WebRover
自主操控网页的AI Agent,LangGraph+Playwright实现真实浏览器任务执行与深度研究
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
自主操控网页的AI Agent,LangGraph+Playwright实现真实浏览器任务执行与深度研究
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你对AI说"帮我查一下最近三个月AI Agent领域的最新进展,整理成一篇带参考文献的学术报告",然后AI不仅搜索、阅读、分析了数十篇论文,还自动导出了一份完整的PDF文档——整个过程你只需要等待。这种体验,已经不是科幻。WebRover正是这样一款将大语言模型与真实浏览器深度融合的自主Agent系统。
传统AI助手的局限在于"只说不做"——它能回答问题,但无法代替你打开浏览器、点击按钮、填写表单、下载文件。而WebRover的作者、印度开发者 Hrithik Koduri 发现了一个真实的需求空白:现有的AI Agent要么过于关注通用推理,要么缺乏可靠的网页操作能力。
他在2024年启动了WebRover项目,目标是打造一个真正能在真实网页上执行任务的自主Agent。经过持续迭代,项目从最初的简单自动化工具,演进为今天集成了LangGraph状态机、Playwright浏览器控制、RAG向量检索的三层Agent架构。截至目前已获得近1000颗GitHub Stars,并在AI Agent爱好者社区中形成了稳定的用户群体。
WebRover的底层核心技术栈非常扎实。浏览器层采用Playwright库直接控制真实Chrome/Chromium实例——不是模拟,而是真正打开一个浏览器窗口。这解决了传统方案(puppeteer phantomJS等)的根本问题:网站反爬措施无法区分这是真人还是脚本。
智能层的核心是LangGraph状态机。以Task Agent为例,它的工作流程是:规划(Master Plan)→ 决策下一步(Decide URL/Element/Action)→ 执行操作(Click/Type/Scroll)→ 评估结果。这个循环会持续直到任务完成或达到最大步数上限。整个状态流转通过TypedDict定义,每次决策由GPT-4o或Claude-3.5-Sonnet驱动,对当前页面DOM进行结构化分析后输出可执行的动作。
图1:WebRover Agent三层架构:浏览器控制 → LangGraph状态机 → LLM决策引擎
WebRover v2.0引入了三种专业化的Agent,它们不是简单并列,而是针对不同复杂度任务设计的递进方案。
这是最直接的攻击模式。用户给出一个具体的网页任务,比如"帮我去GitHub找WebRover这个项目的README内容",Task Agent会:先打开Google搜索 → 找到目标仓库 → 进入项目页面 → 定位并读取README。底层通过Playwright的Page和Locator API精确定位DOM元素,动作类型包括 click、type(输入)、scroll_read(滚动阅读)和 go_back(返回)。
比Task Agent更进一层。Research Agent专注于多来源信息收集,它会主动验证信息源的可靠性,动态调整搜索关键词,确保单次pass获取的信息完整度高。适合的场景包括竞品调研、产品比较、市场信息聚合等。
图2:Research Agent的信息采集与验证流程
这是WebRover最令人印象深刻的功能。当用户提出一个需要系统性研究的主题时,Deep Research Agent会自动完成:主题分解 → 子主题并行探索 → 信息整合 → 带引用标注的学术论文生成。整个流程引入了Chroma向量数据库做RAG检索,使用OpenAI Embeddings做语义索引,最终产出的论文会自动编译参考文献列表。
图3:Deep Research Agent的完整研究-写作工作流
WebRover的代码库组织非常清晰。后端用FastAPI构建REST API和WebSocket事件流,前端用Next.js 15 + React 19 + TypeScript实现现代聊天界面,两者通过 SSE(Server-Sent Events)实现实时的Agent思考过程流式推送——用户可以在聊天框中实时看到AI"在想什么"、"正在做什么动作"。
后端Python依赖通过Poetry管理,核心依赖包括:LangChain 0.3.14(LLM调用抽象层)、LangGraph 0.2.62(状态机)、Playwright 1.49.1(浏览器控制)、ChromaDB 0.6.3(向量数据库)、Newspaper3k(文章内容提取)、BeautifulSoup4(HTML解析)。Python版本锁定在3.12,避免了依赖兼容性问题。
WebRover提供了完整的Web界面(Next.js前端 + FastAPI后端),用户体验流畅。但项目没有提供Dockerfile或docker-compose,需要手动安装前后端环境:后端需要Python 3.12 + Poetry安装依赖,前端需要Node.js 18+和npm/pnpm安装依赖。最关键的是需要本地安装Chrome/Chromium浏览器,且要配置好Playwright的系统依赖(字体、媒体库等)。
没有GPU也能运行——这是一套纯CPU友好的应用,所有LLM推理实际上是通过API调用远程完成的(支持GPT-4o、o3-mini、Claude-3.5-Sonnet等),本地只承担浏览器控制和状态管理职责。
WebRover并非没有短板。首先,它对外部API的强依赖意味着使用成本不低——一个完整的Deep Research任务可能涉及数十次LLM API调用。其次,没有容器化部署使得环境配置成为实际使用中的最大门槛,很多用户在README指导下仍难以完成安装。第三,Playwright控制的真实浏览器在某些网站(特别是银行、政府类高安全站点)会触发反自动化检测。
此外,代码库中有大量IPython/Jupyter相关的import和display调用,说明项目最初在Notebook环境中开发,虽然不影响功能,但Clean Code层面有优化空间。
WebRover代表了2024-2025年AI Agent发展的一个重要方向:语言模型不再是孤立的"大脑",而是有了能够操控真实世界的"手"。它与BrowserGPT、Openai-Browser、AutoGPT等同类项目相比,在多Agent协作(RAG+状态机+流式UI)层面做得更为完整。其Deep Research Agent的思路——用Agent自动化整个学术研究流程——也为知识工作自动化提供了可参考的范式。
在AI从"对话"向"行动"演进的大趋势下,WebRover展示了一种可行路径:LangGraph做决策引擎、Playwright做执行器、RAG做记忆增强——这三驾马车的组合值得后来者借鉴。