XAgent - Summary
XAgent is an innovative, open-source autonomous agent powered by Large Language Models (LLMs), designed to tackle a wide array of complex tasks. This general-purpose agent is engineered for autonomy, allowing it to solve diverse challenges without direct human intervention. XAgent prioritizes safety by confining all operations within a secure Docker container, ensuring a controlled environment. Its extensible architecture enables users to easily integrate new tools, enhancing its capabilities. XAgent also features a user-friendly GUI and command-line interface, fostering seamless interaction and collaboration with human users.
XAgent - Features
What is XAgent?
XAgent is an open-source, experimental Large Language Model (LLM) driven autonomous AI agent designed to automatically solve a wide range of complex tasks without human intervention. It aims to be a general-purpose agent capable of tackling various challenges.
What are the key features of XAgent?
XAgent boasts several key features:
-
Autonomy
Solves tasks automatically.
-
Safety
Operates within a secure Docker container environment.
-
Extensibility
Allows easy addition of new tools and agents.
-
GUI
Provides a user-friendly graphical interface for interaction.
-
Cooperation with Human
Can collaborate with users, follow guidance, and seek assistance when needed.
How does XAgent work?
XAgent is composed of three main parts:
-
Dispatcher
Dynamically instantiates and dispatches tasks to different agents.
-
Planner
Generates and rectifies plans for tasks, breaking them into subtasks and milestones.
-
Actor
Conducts actions to achieve goals and finish subtasks, utilizing various tools and collaborating with humans.
What is ToolServer and what tools does it provide?
ToolServer is a Docker container that provides a safe environment and a suite of powerful tools for XAgent to operate. Currently, it offers:
-
File Editor
For writing, reading, and modifying files.
-
Python Notebook
An interactive environment for running Python code.
-
Web Browser
For searching and visiting webpages.
-
Shell
A bash shell for executing commands, installing programs, and hosting services.
-
Rapid API
For retrieving and calling APIs from Rapid API.
Users can also easily add new tools to ToolServer.
How can I get started with XAgent?
To get started with XAgent, you need to:
-
Build and Setup ToolServer
Install Docker and Docker Compose, then pull the ToolServer image using docker compose up or build it from local sources using docker compose build followed by docker compose up.
-
Setup and Run XAgent
Install Python requirements (pip install -r requirements.txt), configure XAgent in assets/config.yml (providing at least one OpenAI API key, preferably gpt-4-32k or gpt-4, and a gpt-3.5-turbo-16k backup), and then run XAgent using python run.py --task "your task here" --config-file "assets/config.yml".
Can I use XAgent with a Graphical User Interface (GUI)?
Yes, XAgent provides a GUI. The XAgent-Server container starts with nginx and a web server listening on port 5173. You can visit http://localhost:5173 to interact with XAgent using the web UI. The default username is guest and the password is xagent.
Where can I find the files generated by XAgent?
The local workspace for XAgent is located in the local_workspace directory, where all generated files are stored. After execution, the entire workspace from ToolServerNode is copied to running_records for your convenience, along with intermediate step information, task statuses, LLM input/output pairs, and used tools.
Can I reproduce a previous XAgent run?
Yes, you can load from a record to reproduce a former run by setting record_dir in the configuration. These records are system-level recordings tied to the code version of XAgent and document running configurations, queries, code execution statuses (including errors), and server behavior. Sensitive information like API keys are removed from the records for safe sharing.
Where can I find more information or support for XAgent?
XAgent - Frequently Asked Questions
Overview
XAgent is an open-source, experimental Large Language Model (LLM) driven autonomous agent designed to solve a wide range of complex tasks without human intervention. It aims to be a general-purpose, super-intelligent agent capable of tackling any given task, with ongoing development to enhance its capabilities.
Main Purpose and Target User Group
- Main Purpose: To provide an autonomous LLM agent that can automatically solve complex tasks, offering a general-purpose solution for various applications.
- Target User Group: Developers, researchers, and organizations interested in leveraging autonomous AI agents for task automation, complex problem-solving, and exploring the frontiers of AI. This includes those in data analysis, software development, research, and any field requiring intelligent automation.
Function Details and Operations
- Autonomy: XAgent can independently solve diverse tasks, minimizing the need for human participation.
- Safety: Operations are constrained within a Docker container, ensuring a secure execution environment.
- Extensibility: Users can easily add new tools and even new agents to enhance XAgent's abilities.
- User Interfaces: Provides both a friendly Graphical User Interface (GUI) and a command-line interface (CLI) for interaction.
- Human-Agent Cooperation: XAgent can collaborate with users, following guidance for complex tasks and seeking assistance when challenges arise.
- Modular Architecture:
- Dispatcher: Dynamically instantiates and dispatches tasks to different agents.
- Planner: Generates and refines task plans, breaking them into subtasks with milestones.
- Actor: Executes actions to achieve goals and complete subtasks, utilizing various tools and collaborating with humans.
- ToolServer: A Docker-based server providing powerful and safe tools:
- File Editor: For writing, reading, and modifying files.
- Python Notebook: Interactive environment for running Python code, validating ideas, and drawing figures.
- Web Browser: For searching and visiting webpages.
- Shell: Executes shell commands, including program installation and service hosting.
- Rapid API Integration: Accesses and calls a wide range of APIs from Rapid API (ToolBench collections).
- Task Execution Workflow:
- Users submit tasks via CLI or GUI.
- XAgent processes tasks, generates plans, and executes actions.
- All generated files and intermediate steps are saved in a local workspace and running records.
- Records can be loaded to reproduce previous runs, with sensitive information removed for safe sharing.
User Benefits
- Increased Efficiency: Automates complex tasks, saving time and resources.
- Enhanced Problem-Solving: Capable of tackling intricate problems across various domains.
- Secure Operations: Docker containerization ensures a safe environment for executing actions.
- Flexibility and Customization: Easily extendable with new tools and agents to meet specific needs.
- Improved Collaboration: Facilitates seamless interaction between human users and the AI agent.
- Reproducibility: Detailed running records allow for easy reproduction and analysis of past executions.
Compatibility and Integration
- Operating System: Requires Docker and Docker Compose for ToolServer setup.
- Python Version: Requires Python >= 3.10.
- API Keys: Configurable with OpenAI API keys (gpt-4-32k recommended, gpt-4 and gpt-3.5-turbo-16k supported).
- Docker Integration: ToolServer runs as a Docker container, providing a self-contained environment.
- Web UI: Accessible via a web browser (http://localhost:5173) for GUI interaction.
Customer Feedback and Case Studies
- Data Analysis: Successfully aids users in intricate data analysis, including data inspection, environment verification, code generation, and report compilation (e.g., iris.zip analysis).
- Recommendation: Demonstrates human-agent cooperation by actively seeking human input when information is insufficient (e.g., restaurant recommendations).
- Model Training: Capable of complex tasks like training machine learning models (e.g., training a BERT model for movie review sentiment analysis).
- Evaluation: Outperforms AutoGPT in human preference evaluations across over 50 real-world complex tasks categorized into Search and Report, Coding and Developing, Data Analysis, Math, and Life Assistant.
Access and Activation Method
- Source Code: Available on GitHub (github.com/OpenBMB/XAgent).
- ToolServer Setup:
- Pull Docker image:
docker compose up
- Build from local sources:
docker compose build then docker compose up
- XAgent Setup:
- Install requirements:
pip install -r requirements.txt
- Configure API keys in
assets/config.yml.
- Run XAgent:
python run.py --task "put your task here" --config-file "assets/config.yml"
- GUI Access: Visit
http://localhost:5173 after starting the XAgent-Server container. Default credentials: username guest, password xagent.
XAgent - Company Information
Company Name: GitHub, Inc.
Company Email: [email protected]
XAgent Github Link: https://github.com/security