WebAgent
综合介绍
WebAgent是阿里巴巴通义实验室开发的一个AI智能体项目。它能像人一样理解指令,然后在真实的网站上自主执行任务。 比如,你可以让它去某个学术网站查找特定领域的最新研究报告,它会自己打开网站、筛选文献、整合信息,最后给你一份全面的报告。 这个项目不是一个简单的工具,而是一个包含多个部分的框架,主要有WebDancer、WebWalker和WebSailor这几个核心模块。 其中,WebDancer专注于训练智能体自主搜索和推理的能力;WebWalker是一个评估大语言模型网页操作能力的基准测试工具;而WebSailor则专门应对那些特别复杂、需要多步骤深度思考才能完成的网页任务。 这个项目的目标就是让AI能够更深入地理解和操作复杂的网络环境,完成传统自动化工具无法胜任的、需要像人一样思考和决策的网页任务。
功能列表
- 自主网页操作: 能模仿人类行为,在网页上执行点击、滚动、输入文字等操作。
- 复杂信息检索: 用户可以用自然语言提出一个复杂问题(例如,“查找关于人工智能在医疗领域应用的最新论文”),WebAgent能够自主规划步骤,访问多个网站,筛选并整合信息,最终生成一份综合性报告。
- 端到端自主学习: 项目包含一个完整的训练框架(WebDancer),通过数据构建、轨迹采样、监督微调和强化学习四个阶段,让智能体从零开始学习如何完成复杂的网页任务。
- 强大的推理能力: 结合了大型语言模型的推理能力和网页的实际操作,使其不仅能“看懂”网页内容,还能“思考”下一步该做什么。
- 基准测试与评估: 提供WebWalker基准,用于衡量和测试不同大型语言模型在网页遍历和信息获取任务上的表现。
- 处理超复杂任务: 最新的WebSailor模块专门为解决高难度和高不确定性的网页任务而设计,在多个困难的浏览基准测试中取得了顶尖水平。
- 支持中文环境: 该框架在中文网页环境下的测试中也表现出强大的处理能力。
使用帮助
WebAgent项目由多个组件构成,主要面向有一定开发能力的科研人员和开发者。下面以其核心组件之一的WebWalker
为例,说明基础的安装和使用流程。
第一步:环境准备
在开始之前,你需要准备一个合适的运行环境。官方推荐使用Linux或macOS系统,如果你是Windows用户,建议使用WSL(Windows Subsystem for Linux)。
- 创建并激活Conda虚拟环境:为了避免与其他项目的依赖库产生冲突,强烈建议创建一个独立的虚拟环境。打开你的终端,然后输入以下命令:
conda create -n webwalker python=3.10 conda activate webwalker
这个命令会创建一个名为
webwalker
,使用Python 3.10版本的环境,并激活该环境。 - 克隆项目代码:将WebAgent的源代码从GitHub克隆到你的本地电脑。
git clone https://github.com/Alibaba-NLP/WebAgent.git
- 安装依赖库:进入
WebWalker
目录,并安装其所需的全部依赖库。cd WebAgent/WebWalker pip install -r requirements.txt
这个过程可能会需要一些时间,因为它会下载并安装包括
crawl4ai
、qwen-agent
等在内的多个核心库。 - 初始化环境:
WebWalker
依赖一个名为Crawl4AI
的工具来抓取和解析网页。你需要运行它的设置命令来完成初始化,这一步会自动下载并安装所需的浏览器驱动。crawl4ai-setup
为了确保所有依赖都已正确安装,可以运行检查命令:
crawl4ai-doctor
第二步:配置环境变量
WebAgent需要调用大型语言模型(LLM)的能力来进行思考和决策。因此,你需要配置至少一个LLM的API密钥。
- 获取API密钥:你需要拥有一个或多个大模型服务的API密钥,例如OpenAI的GPT系列模型、阿里云通义千问模型或月之暗面(Moonshot)的模型。
- 设置环境变量:将你的API密钥设置为环境变量。最简单的方法是在终端中直接设置。例如,设置OpenAI的密钥:
export OPENAI_API_KEY="sk-xxxx"
为了方便,你也可以将这个命令添加到你的
~/.bashrc
或~/.zshrc
文件中,这样每次打开终端时就会自动加载。你也可以直接修改项目代码src/app.py
的第44到53行来配置更多的API密钥。
第三步:运行WebAgent
完成以上准备工作后,你就可以开始运行WebAgent了。项目提供了一个基于Streamlit
的交互式Web界面,让你可以直观地体验它的功能。
- 启动Web服务:在
WebWalker
目录下,运行app.py
文件。python src/app.py
- 开始使用:运行成功后,终端会显示一个本地网址(通常是
http://localhost:8501
)。在浏览器中打开这个地址,你就能看到WebAgent的操作界面。- 输入问题:在界面的输入框中,用自然语言描述你想要完成的任务。例如:“帮我查找一下GitHub上关于WebAgent这个项目的Star数量”。
- 提供起始网址:提供一个开始执行任务的网址,例如
https://github.com/
。 - 选择模型:在下拉菜单中选择一个你已经配置好API密钥的大语言模型作为“思考大脑”。
- 执行任务:点击“Submit”按钮,WebAgent就会开始自主工作。你会看到它模拟真人的操作步骤,例如打开网页、在搜索框输入文字、点击链接等,并实时显示它的思考过程和执行状态。
进阶使用:命令行模式
除了图形界面,你也可以直接通过命令行来执行任务,这更适合进行批量测试和自动化脚本集成。
- 执行单个任务:
python -m web_agent.agent.execute --task "your task description" --start_url "https://example.com"
- 你还可以通过添加其他参数来控制任务的执行,例如使用
--model
来指定模型,使用--max_steps
来限制最大操作步数。
这个使用帮助主要集中在WebWalker
组件的快速上手。WebAgent项目是一个持续更新的活跃项目,包含了更复杂的模型训练(WebDancer)和推理(WebSailor)部分,详细的使用方法和更深入的开发文档,请直接查阅其GitHub官方仓库。
应用场景
- 自动化市场研究研究人员或市场分析师可以指令WebAgent:“收集市场上所有关于AIGC产品的最新融资新闻和用户评论,并总结每个产品的优缺点”。WebAgent会自动浏览科技新闻网站、社交媒体和产品论坛,抓取相关信息并整合成一份结构化的分析报告。
- 复杂的在线购物用户可以下达一个模糊的指令,如:“帮我妈妈挑选一款适合她生日的礼物,她喜欢园艺,预算在500元以内,并且要在评价最好的几家店铺里选择”。WebAgent能够理解这个多条件的复杂需求,在电商网站上搜索“园艺工具”、“园艺装饰”等关键词,根据价格、用户评价等信息进行筛选和比较,最后给出几个最优选择。
- 软件和网站自动化测试开发者或测试工程师可以利用WebAgent来测试网站的核心功能流程。例如,指令可以是:“在我们的测试网站上走一遍完整的用户注册、登录、发布内容、然后登出的流程,并报告过程中是否出现错误”。这比传统的、需要编写固定脚本的自动化测试更加灵活。
- 学术研究资料整理研究生或科研人员在撰写论文时,可以命令WebAgent:“查找所有引用了‘Attention Is All You Need’这篇论文的后续研究,并按发表年份和引用次数排序,提取它们的摘要”。WebAgent可以访问Google Scholar、arXiv等学术数据库,执行搜索、排序和信息提取任务,极大地节省了文献调研的时间。
QA
- 什么是WebAgent?WebAgent是阿里巴巴通义实验室开发的一个开源AI项目,它是一个能够理解人类语言指令,并自主在真实网站上执行信息检索和复杂操作的智能体。
- WebAgent和传统的爬虫或RPA工具有什么不同?传统的爬虫或RPA工具通常依赖预先编写好的固定规则或脚本来执行任务,一旦网页结构发生变化就可能失效。而WebAgent由大型语言模型驱动,能够理解任务的“意图”,像人一样思考和决策,可以灵活应对不同的网页布局和动态内容,完成更加复杂的、非结构化的任务。
- 使用WebAgent需要具备什么条件?使用者需要有一定的Python编程基础,了解如何配置虚拟环境和安装依赖库。此外,由于WebAgent的核心能力来自大型语言模型,因此用户需要拥有并配置至少一个LLM的API密钥,例如OpenAI GPT、通义千问等。
- WebAgent项目主要包含哪些部分?该项目主要由三个核心组件构成:WebWalker、WebDancer和WebSailor。
- WebWalker: 一个用于评测大语言模型在网页遍历任务上表现的基准测试工具。
- WebDancer: 一个完整的端到端智能体训练框架,用于训练AI自主进行信息搜索和推理的能力。
- WebSailor: 一个专注于解决极高难度信息检索任务的模型,擅长处理充满不确定性的复杂场景。
- 这个项目对中文网页的支持好吗?是的,WebAgent的WebSailor模型在中文网页浏览基准测试(BrowseComp-zh)中取得了优异的成绩,表明它对中文环境有良好的支持。