XAgent
介绍
XAgent是一个开源的基于大型语言模型(LLM)的自主智能体,可以自动解决各种任务。 它被设计为一个通用的智能体,可以应用于各种任务。目前,XAgent仍处于早期阶段,我们正在努力改进它。
我们的目标是创建一个可以解决任何给定任务的超级智能智能体!
我们欢迎各种形式的合作,包括全职、兼职等。如果您对智能体的前沿感兴趣,并希望加入我们实现真正的自主智能体,请通过 xagentteam@gmail.com 与我们联系。
XAgent
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。 您也可以轻松地向工具服务器添加新的工具,以增强XAgent的能力。
快速开始
构建和设置工具服务器
工具服务器是XAgent的行动发生的地方。它是一个docker容器,为XAgent提供一个安全的运行环境。 因此,您应该首先安装docker和docker-compose。 然后,您需要构建工具服务器的镜像,参考以下任一方式构建:
从docker hub拉取镜像构建docker网络
docker compose up
从本地源代码构建镜像:
docker compose build
docker compose up
这将构建工具服务器的镜像并启动工具服务器的容器。如果您想在后台运行容器,请相应使用docker compose up -d。 参考ToolServer获取更多信息。
如果需要更新工具服务器或您想重新构建工具服务器的镜像,请使用以下命令:
docker compose pull
或者
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-16kAPI key作为备用模型。 我们不建议您使用gpt-3.5-turbo来运行XAgent,因为它的上下文长度非常有限,您不应该尝试在上面运行XAgent。 - 运行XAgent
python run.py --task "put your task here" --config-file "assets/config.yml"
您可以使用参数--upload-files来指定提交给XAgent的文件。 您的XAgent的本地工作空间在local_workspace中,您可以在运行过程中找到XAgent生成的所有文件。 此外,在running_records中,您可以找到所有的中间步骤信息,例如任务状态、LLM的输入输出对、使用的工具等。 在运行结束后,ToolServerNode中的完整worksapce也将被打包下载到其中。
- 使用GUI运行XAgent 容器
XAgent-Server内包含一个监听5173端口的网页服务器,用于提供XAgent的GUI。 您可以在浏览器中打开http://localhost:5173来访问XAgent的GUI。 默认账号和密码是guest和xagent。