OpenAgents
综合介绍
OpenAgents 是一个由香港大学 XLang 实验室开发的开源平台,旨在让普通用户和开发者能够轻松地在日常生活中使用和托管语言智能体。 这个平台不仅仅是一个技术概念验证工具,它更注重于实际应用和用户体验,提供了一个功能齐全的网络界面,让不具备专业技术背景的用户也能与强大的智能体进行交互。 OpenAgents 的核心是三个针对不同应用场景的智能体:数据智能体(Data Agent)、插件智能体(Plugins Agent)和网页智能体(Web Agent)。 它们分别专注于数据分析、集成日常工具和自动化网页浏览,可以像 ChatGPT Plus 一样分析数据、调用插件和控制浏览器,但其代码是完全开源的,支持用户进行本地化部署。 该项目致力于解决当前语言智能体框架中存在的普通用户难以接触和应用层面设计不足的问题,为未来真实世界语言智能体的研究和开发奠定基础。
功能列表
- 数据智能体 (Data Agent): 一个为高效数据操作设计的综合工具。
- 数据搜索与处理: 能够使用 Python/SQL 和其他数据工具快速查找、获取和处理数据。
- 数据操作与可视化: 可以根据需求修改数据,并将数据以清晰直观的图表形式展示。
- 代码生成与执行: 具备编写和执行代码的能力,可以自动化完成复杂的数据分析任务,例如分析股票价格并生成交互式图表。
- 插件智能体 (Plugins Agent): 集成了超过200种第三方日常工具,极大地丰富了其应用场景。
- 多功能插件集成: 支持包括购物(如 Klarna Shopping)、天气查询(如 XWeather)和科学计算(如 Wolfram Alpha)在内的多种插件。
- 插件协同工作: 能够同时调用多个插件来完成一个复杂任务,例如在计划旅行时,可以整合Klook、货币转换器和天气插件。
- 智能插件推荐: 具备插件自动选择功能,可以根据用户的需求智能搜索并推荐最合适的插件组合。
- 网页智能体 (Web Agent): 利用 Chrome 扩展程序来自动执行网络浏览任务。
- 自动化网页操作: 能够根据指令自主浏览网页、查找信息。
- 表单自动填写: 可以帮助用户自动填写 Google Form 等在线表单。
- 社交媒体互动: 能够在用户授权下,在Twitter等社交媒体上发布内容。
- 开放与可扩展性:
- 开源架构: 项目代码完全开源,包括前端、后端和智能体实现,方便开发者进行二次开发和研究。
- 本地化部署: 支持通过源代码或 Docker 进行本地部署,让用户可以搭建自己的智能体平台。
- 轻松扩展: 提供了清晰的扩展指南,开发者可以方便地集成新的大型语言模型(LLM)、开发新的工具或构建全新的智能体。
使用帮助
OpenAgents 作为一个开源平台,提供了灵活的本地部署选项,让开发者可以完全控制自己的智能体应用。以下是详细的安装和使用流程。
环境准备
在开始部署之前,你需要确保你的系统已经安装了必要的软件,主要包括 Git 用于克隆代码库,以及 Docker 和 Docker Compose 用于容器化部署。如果你选择从源码部署,则还需要安装 Python 和 Node.js。
部署方式一:使用 Docker (推荐)
Docker 部署是官方推荐的快速且稳定的方式,它可以将前后端服务打包在容器中运行,避免了繁琐的环境配置。
- 克隆代码库:首先,打开你的终端,使用 git 命令克隆 OpenAgents 的 GitHub 仓库到你的本地电脑。
git clone https://github.com/xlang-ai/OpenAgents.git cd OpenAgents
- 配置环境变量:在项目根目录下,有一个名为
docker-compose.yml
的文件。你需要用文本编辑器打开它,并配置一些关键信息。- OpenAI API 密钥: 找到
OPENAI_API_KEY
字段,并填入你自己的 OpenAI API 密钥。这是驱动智能体背后语言模型所必需的。environment: - OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- Kaggle API (可选): 如果你想使用数据智能体的 Kaggle 数据集搜索功能,你需要配置 Kaggle 的用户名和密钥。在
Dockerfile
中找到相应部分并填入你的信息。ENV KAGGLE_USER="your_kaggle_username" \ KAGGLE_KEY="your_kaggle_api_key"
- 后端服务地址 (非本地部署): 如果你的后端服务不是运行在本地
localhost
,你需要修改frontend/Dockerfile
文件中的NEXT_PUBLIC_BACKEND_ENDPOINT
,将其指向你后端服务的 IP 地址和端口。ENV NEXT_PUBLIC_BACKEND_ENDPOINT http://your_server_ip:8000
- OpenAI API 密钥: 找到
- 构建并启动服务:完成配置后,在项目根目录运行以下命令来构建和启动 Docker 容器。
-d
参数会让容器在后台运行。docker compose build docker compose up -d
- 访问平台:当所有服务成功启动后,打开你的浏览器并访问
http://localhost:3000
,你就可以看到 OpenAgents 的网页界面了。
部署方式二:从源代码部署
这种方式更适合需要对代码进行深度修改和定制的开发者。
- 后端部署:
- 进入
backend
目录:cd backend
- 安装依赖: 推荐创建一个 Python 虚拟环境,然后通过
pip
安装所有必需的库。pip install -r requirements.txt
- 启动后端服务: 运行
main.py
文件。python main.py
后端服务默认会运行在
http://localhost:8000
。 - 进入
- 前端部署:
- 打开一个新的终端窗口,进入
frontend
目录:cd frontend
- 安装依赖: 使用
npm
或yarn
安装前端项目所需的依赖包。npm install
- 启动前端开发服务器:
npm run dev
前端服务默认会运行在
http://localhost:3000
。启动成功后,会自动打开浏览器。 - 打开一个新的终端窗口,进入
核心功能操作流程
- 使用数据智能体:
- 在主界面选择 "Data Agent"。
- 在聊天框中输入你的数据分析需求。例如,你可以输入:“帮我找一些关于特斯拉股票价格的数据集”。
- 数据智能体会利用 Kaggle 搜索工具找到相关数据集并展示给你。
- 选择一个数据集后,你可以继续提出指令,比如:“请画出从2022年开始的开盘价和收盘价的交互式折线图”。
- 智能体会编写并执行代码,最终在界面上生成一个可交互的图表。
- 使用插件智能体:
- 在主界面选择 "Plugins Agent"。
- 你可以直接告诉智能体你要做什么,比如“明天去东京的天气怎么样?”。智能体会自动选择并调用天气插件。
- 你也可以手动从 200 多个可用插件列表中选择一个或多个插件,然后向智能体发出指令。
- 使用网页智能体:
- 使用网页智能体需要安装配套的 Chrome 扩展
WeBot
。扩展文件webot_extension.zip
可以在frontend
目录下找到。 - 安装扩展后,在主界面选择 "Web Agent"。
- 在聊天框中输入你的任务,例如:“帮我打开谷歌地图,并查找从北京到上海的驾车路线”。
- 智能体将自动控制浏览器打开新标签页,访问谷歌地图并执行你的指令。
- 使用网页智能体需要安装配套的 Chrome 扩展
应用场景
- 数据科学家和分析师用户无需编写复杂的脚本,只需通过自然语言下达指令,数据智能体就能自动完成数据清洗、分析、建模和可视化等一系列任务。例如,市场分析师可以快速地要求智能体分析销售数据,找出最畅销的产品类别并以图表形式展示。
- 普通用户的日常生活助手插件智能体可以连接各种生活服务。用户可以用它来规划旅行(查询航班、酒店和天气)、购物比价、或者获取最新的新闻资讯。 它将多个APP的功能整合到一个聊天界面中,大大简化了操作。
- 研究人员和学生网页智能体可以自动浏览和搜集学术网站、数据库和论坛上的信息,帮助研究人员快速完成文献综述和资料整理工作。同时,数据智能体也能辅助进行科研数据的初步分析。
- 软件开发者开发者可以利用 OpenAgents 的开源特性,将其作为构建更复杂智能应用的基础框架。他们可以轻松地扩展新工具、集成自定义的语言模型,或者开发出针对特定领域的全新智能体,例如一个专门用于代码调试的智能体。
QA
- OpenAgents 与其他智能体平台(如 Auto-GPT)有何不同?OpenAgents 更侧重于为非专业用户提供一个稳定、易用的交互界面,并注重在真实生活场景中的应用。 它不仅仅是一个自主运行的代理,而是一个由数据、插件和网页三个功能明确的智能体组成的平台,旨在解决用户的日常问题,并且代码开源,易于部署和扩展。
- 使用 OpenAgents 是否需要付费?OpenAgents 项目本身是开源免费的。 但是,其背后的语言模型(如 GPT-4)依赖于 OpenAI 提供的 API,这部分服务是需要付费的。因此,在本地部署时,你需要提供自己的 OpenAI API 密钥,并承担相应的使用费用。
- 我不是开发者,也能使用 OpenAgents 吗?是的。OpenAgents 的一个核心设计理念就是让普通用户也能使用。 官方提供了在线的演示站点,用户可以直接在网站上与智能体进行交互。对于本地部署,虽然需要一些技术操作,但官方提供了详细的 Docker 部署指南,大大降低了门槛。
- 我是否可以添加自己的工具到插件智能体中?可以。OpenAgents 提供了扩展新工具的教程。开发者可以按照指定的格式创建自己的工具,并将其注册到平台中,从而增强插件智能体的功能。