XAgent 是一个开源的实验性大型语言模型(LLM)驱动的自主智能体,能够自动解决各种任务。
它被设计为一个通用智能体,可应用于广泛的任务场景。XAgent 仍处于早期开发阶段,我们正在努力改进它。
🏆 我们的目标是创建一个能够解决任何给定任务的超级智能体!
我们欢迎各种形式的合作,包括全职和兼职角色等。如果您对智能体的前沿技术感兴趣,并希望加入我们,共同实现真正的自主智能体,请通过 xagentteam@gmail.com 联系我们。
XAgent 设计具有以下特点:
- 自主性:XAgent 可以在无需人工参与的情况下自动解决各种任务。
- 安全性:XAgent 设计为安全运行。所有操作都被限制在 Docker 容器内。放心运行!
- 可扩展性:XAgent 设计为易于扩展。您可以轻松添加新工具以增强智能体的能力,甚至可以添加新的智能体!
- 图形界面:XAgent 提供了一个友好的图形用户界面,供用户与智能体交互。您也可以使用命令行界面与智能体交互。
- 人机协作:XAgent 可以与您协作处理任务。它不仅具备在执行中遵循您的指导来解决复杂任务的能力,还能在遇到挑战时主动寻求您的帮助。
XAgent 由三个部分组成:
- 🤖 调度器:负责动态实例化任务并将其分派给不同的智能体。它允许我们添加新的智能体并改进智能体的能力。
- 🧐 规划器:负责为任务生成和修正计划。它将任务分解为子任务并为其生成里程碑,使智能体能够逐步解决问题。
- 🦾 执行器:负责执行操作以实现目标并完成子任务。执行器利用各种工具解决子任务,也可以与人类协作解决问题。
工具服务器是为 XAgent 提供强大且安全工具以解决任务的服务器。它是一个 Docker 容器,为 XAgent 的运行提供了一个安全环境。
目前,工具服务器提供以下工具:
- 📝 文件编辑器:提供文本编辑工具,用于写入、读取和修改文件。
- 📘 Python 笔记本:提供一个交互式 Python 笔记本,可以运行 Python 代码来验证想法、绘制图表等。
- 🌏 网页浏览器:提供一个网页浏览器,用于搜索和访问网页。
- 🖥️ Shell:提供一个 bash shell 工具,可以执行任何 shell 命令,甚至可以安装程序和托管服务。
- 🧩 Rapid API:提供一个工具,用于从 Rapid API 检索 API 并调用它们,这为 XAgent 提供了广泛的 API 选择。有关 Rapid API 集合的更多信息,请参阅 ToolBench。
您也可以轻松地向工具服务器添加新工具,以增强 XAgent 的能力。
工具服务器是 XAgent 执行操作的地方。它是一个 Docker 容器,为 XAgent 的运行提供了一个安全环境。
因此,您需要先安装 docker 和 docker-compose。
然后,您需要构建工具服务器镜像。请参照以下任一方法进行构建:
docker compose up
docker compose build
docker compose up
这将构建工具服务器的镜像并启动工具服务器的容器。
如果您想在后台运行容器,请使用 docker compose up -d。
有关我们工具服务器的详细信息,请参阅此处。
如果工具服务器有更新,您需要重新拉取/重建镜像:
docker compose pull
或
docker compose build
设置好工具服务器后,您可以开始运行 XAgent。
- 安装依赖(要求 Python >= 3.10)
pip install -r requirements.txt
assets/config.yml 中配置它。assets/config.yml 中至少提供一个 OpenAI API 密钥,用于访问 OpenAI API。gpt-4-32k 来运行 XAgent;对于大多数简单任务,gpt-4 也可以。gpt-3.5-turbo-16k API 密钥作为备用模型。gpt-3.5-turbo 运行 XAgent;您不应尝试在该模型上运行 XAgent。XAgentServer 的配置文件路径,应修改 .env 文件中的 CONFIG_FILE 值并重启 Docker 容器。python run.py --task "在此处输入您的任务" --config-file "assets/config.yml"
您可以使用参数 --upload-files 来选择要提交给 XAgent 的初始文件。
XAgent 的本地工作空间位于 local_workspace 中,您可以在其中找到 XAgent 在整个运行过程中生成的所有文件。
执行结束后,ToolServerNode 中的整个 workspace 将被复制到 running_records 中,以便您查看。
此外,在 running_records 中,您可以找到所有中间步骤的信息,例如任务状态、LLM 的输入输出对、使用的工具等。
您可以通过在配置中设置 record_dir(默认为 Null)来加载记录以复现之前的运行。记录是与 XAgent 代码版本绑定的系统级记录。所有运行配置、查询、代码执行状态(包括错误)、服务器行为都将被记录。
我们已经从记录中移除了所有敏感信息(包括 API 密钥),因此您可以安全地与他人共享。在不久的将来,我们将引入更细粒度的共享选项,突出显示执行过程中人类的贡献。
XAgent-Server 启动时附带 nginx 和一个监听端口 5173 的 Web 服务器。http://localhost:5173 通过 Web UI 与 XAgent 交互。guest 和 xagent。在此,我们也展示一些 XAgent 解决任务的案例:
您可以在 XAgent 官方网站 上查看我们的实时演示。我们还在此提供了使用 XAgent 的视频演示和案例展示:

我们从帮助用户进行复杂数据分析的案例开始。在这里,我们的用户向 XAgent 提交了一个 iris.zip 文件,寻求数据分析的帮助。XAgent 迅速将任务分解为四个子任务:(1) 数据检查和理解,(2) 验证系统 Python 环境是否包含相关数据分析库,(3) 编写数据处理和分析的代码,(4) 根据 Python 代码的执行结果编写分析报告。
下图是 XAgent 绘制的图表。

凭借主动寻求人类帮助并协作解决问题的独特能力,XAgent 不断重新定义人机协作的边界。如下面的截图所示,一位用户寻求 XAgent 的帮助,为朋友聚会推荐一些很棒的餐厅,但未能提供具体细节。XAgent 认识到所提供信息不足,使用了 AskForHumanHelp 工具,提示人类介入以获取用户偏好的地点、预算限制、烹饪偏好和饮食限制。凭借这些宝贵的反馈,XAgent 无缝生成了量身定制的餐厅推荐,确保为用户及其朋友提供个性化和满意的体验。

XAgent 不仅处理日常任务,还在模型训练等复杂任务中提供宝贵的帮助。这里,我们展示了一个场景:用户希望分析电影评论并评估特定电影的公众情绪。作为回应,XAgent 立即启动流程,下载 IMDB 数据集以训练一个尖端的 BERT 模型(见下图),利用深度学习的力量。凭借这个训练好的 BERT 模型,XAgent 无缝地驾驭电影评论的复杂细微差别,就公众对各种电影的看法提供有洞察力的预测。



我们进行了人工偏好评估,以评估 XAgent 的性能。我们准备了超过 50 个真实世界的复杂任务进行评估,这些任务可以分为 5 类:搜索与报告、编码与开发、数据分析、数学和生活助手。
我们将 XAgent 的结果与 AutoGPT 进行了比较,结果显示 XAgent 总体上优于 AutoGPT。
所有运行记录可以参考此处。

我们报告了 XAgent 在人工偏好方面相对于 AutoGPT 的显著改进。
我们还在以下基准测试上评估了 XAgent:

我们的博客可在此处访问!
衷心感谢我们所有的贡献者。你们的努力让这个项目不断成长和繁荣。每一次贡献,无论大小,都是无价的。
如果您觉得我们的仓库有用,请考虑引用:
@misc{xagent2023,
title={XAgent: An Autonomous Agent for Complex Task Solving},
author={XAgent Team},
year={2023},
}