
XAgent 是一个开源的基于大型语言模型(LLM)的自主智能体,可以自动解决各种任务。它被设计为一个通用的智能体,可以应用于各种任务。
特性
XAgent 具有以下特点:
-
自主性:XAgent 可以在没有人类参与的情况下自动解决各种任务。 -
安全性:XAgent 被设计为安全运行。所有的行为都被限制在一个 docker 容器内。不用担心你的主机环境受到影响 -
可扩展性:XAgent 被设计为可扩展的。您可以轻松地添加新的工具来增强智能体的能力,甚至是新的智能体! -
GUI:XAgent 为用户提供了友好的 GUI 来与智能体交互。您也可以使用命令行界面与智能体交互。 -
与人类的合作:XAgent 可以与您合作解决任务。它不仅有能力在行进中遵循您的指导来解决复杂的任务,而且在遇到挑战时还可以寻求您的帮助。
XAgent 由三部分组成:
-
🤖 调度器 负责动态实例化和分派任务给不同的智能体。它允许我们添加新的智能体和改进智能体的能力。 -
🧐 规划器 负责为任务生成和校正计划。它将任务分解为子任务,并为它们生成里程碑,使智能体能够逐步解决任务。 -
🦾 行动者 负责采取行动实现目标和完成子任务。行动者利用各种工具来解决子任务,它也可以与人类合作来解决任务。
工具服务器
工具服务器是为 XAgent 提供强大和安全的工具来解决任务的服务器。它是一个 docker 容器,为 XAgent 提供一个安全的运行环境。目前,工具服务器提供以下工具:
-
📝 文件编辑器 提供一个文本编辑工具,可以写入、读取和修改文件。 -
📘 Python 笔记本 提供一个交互式的 Python 笔记本,可以运行 Python 代码来验证想法、绘制图形等。 -
🌏 网页浏览器 提供一个网页浏览器,可以搜索和访问网页。 -
🖥️ Shell 提供一个 bash shell 工具,可以执行任何 shell 命令,甚至安装程序和托管服务。 -
🧩 Rapid API 提供一个从 Rapid API 检索 API 并调用它们的工具,为 XAgent 提供了广泛的 API。
有关 Rapid API 集合的更多信息,请参见 ToolBench。
https://github.com/OpenBMB/ToolBench
快速开始
🛠️ 构建和设置工具服务器
工具服务器是 XAgent 的行动发生的地方。它是一个 docker 容器,为 XAgent 提供一个安全的运行环境。因此,您应该首先安装docker
和docker-compose
。然后,您需要构建工具服务器的镜像。在ToolServer
目录下,运行以下命令:
docker-compose up
这将构建工具服务器的镜像并启动工具服务器的容器。如果您想在后台运行容器,请使用docker-compose up -d
。如果需要更新工具服务器或您想重新构建工具服务器的镜像,请使用以下命令:
docker compose build
配置并运行 XAgent
在启动 ToolServer 后,您可以配置并运行 XAgent。
-
安装依赖项:(需要 Python 版本 >= 3.10)
pip install -r requirements.txt
-
配置 XAgent 您需要使用
config.yml
配置 XAgent 才能运行。请提供至少一个 OpenAI key,用于访问 OpenAI API。我们建议您配置使用gpt-4-32k
来使用 XAgent,gpt-4
也可以用于大多数简单的任务。并且,在任何情况下,至少需要提供一个gpt-3.5-turbo-16k
API key 作为备用模型。我们不建议您使用gpt-3.5-turbo
来运行 XAgent,因为它的上下文长度非常有限,您不应该尝试在上面运行 XAgent。 -
使用 GUI 运行 XAgent
# 在ToolServer docker 时已经开启web ui docker了
# 只需新开一个命令行,开启docker中的 nginx
docker exec XAgent-Server systemctl start nginx
构建 XAgent-Server 的 docker 镜像并启动 docker 容器。您将看到 XAgent Server 在端口8090
上监听。您可以在浏览器中打开http://localhost:5173
来访问 XAgent 的 GUI。
案例
案例 1. 数据分析:展示双环机制的有效性
在这个案例中,我们将展示 XAgent 如何使用双环机制来解决数据分析任务。我们将使用一个简单的数据集 iris.zip 上传到 XAgent,然后让 XAgent 分析数据集并生成一个报告。XAgent 将任务分解为 4 个子任务:(1)数据理解,(2)验证 Python 环境,(3)编写数据分析代码,(4)编写报告。这里是 XAgent 绘制的一张图:
案例 2. 推荐:展示与人类的合作
XAgent 拥有独特的能力,可以积极寻求人类协助并共同解决问题,持续重新定义着人类与智能体人合作的界限。如下方截图所示,用户寻求了 XAgent 的帮助,以推荐一些适合友好聚会的优秀餐厅,但未提供具体细节。识别到提供的信息不足,XAgent 利用了“请求人类帮助”工具,促使人类介入以获取用户的偏好位置、预算限制、烹饪偏好以及任何饮食限制。凭借这宝贵的反馈信息,XAgent 轻松地生成了定制的餐厅推荐,确保用户及其朋友们获得了个性化和令人满意的体验。
案例 3. 训练模型:高级工具使用者
XAgent 不仅能处理琐碎任务,还可以在复杂任务中提供宝贵的帮助,比如模型训练。在这里,我们展示了一个用户希望分析电影评论并评估特定电影周围公众情感的情景。作为回应,XAgent 迅速启动了下载 IMDB 数据集的过程,以训练一款先进的 BERT 模型(见下方截图),利用深度学习的强大能力。拥有了这个训练有素的 BERT 模型,XAgent 能够轻松地应对电影评论的复杂细节,提供关于公众对各种电影看法的见解性预测。
传送门
GitHub:https://github.com/OpenBMB/XAgent
原文始发于微信公众号(开源技术专栏):基于大型语言模型的自主智能体,可以自动解决各种任务!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/170878.html