- Notifications
You must be signed in to change notification settings - Fork65
An open-source framework for collaborative AI agents, enabling diverse, distributed agents to team up and tackle complex tasks through internet-like connectivity.
License
OpenBMB/IoA
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Imagine if AI agents could collaborate like humans do on the internet. That's the idea behind Internet of Agents (IoA)! It's an open-source framework that aims to create a platform where diverse AI agents can team up to tackle complex tasks. For example, agents likeAutoGPT andOpen Interpreter can come together, share their unique skills, and work on problems that might be too tricky for a single agent to solve.
- 🌐Internet-Inspired Architecture: Just like how the internet connects people, IoA can connect different AI agents across different environments.
- 🤝Autonomous Nested Team Formation: Agents can form teams and sub-teams on their own, adapting to complex tasks.
- 🧩Heterogeneous Agent Integration: Brings together agents with different skills and backgrounds, kind of like assembling an all-star team.
- ⏳Asynchronous Task Execution: Agents can multitask, making the whole system more efficient.
- 🗣️Adaptive Conversation Flow: The conversation flow is autonomously managed to keep agent conversations structured but flexible.
- 🔄Scalable and Extensible: Easy to add new types of agents or tackle different kinds of tasks.
For more details, please refer toour paper.
A peek at IoA's layered architecture
Get IoA up and running in just a few steps:
- Ensure you haveDocker installed on your system.
git clone git@github.com:OpenBMB/IoA.gitcd IoA
You can directly pull the pre-built docker images from docker hub
# Serverdocker pull weize/ioa-server:latest# Clientdocker pull weize/ioa-client:latest# Server Frontenddocker pull weize/ioa-server-frontend:latest# Rename the imagesdocker tag weize/ioa-server:latest ioa-server:latestdocker tag weize/ioa-client:latest ioa-client:latestdocker tag weize/ioa-server-frontend:latest ioa-server-frontend:latest
Or you can build from source
# Serverdocker build -f dockerfiles/server.Dockerfile -t ioa-server:latest.# Clientdocker build -f dockerfiles/client.Dockerfile -t ioa-client:latest.# Server Frontenddocker build -f dockerfiles/server_frontend.Dockerfile -t ioa-server-frontend:latest.
# ReAct Agentdocker pull weize/react-agent:latestdocker tag weize/react-agent:latest react-agent:latest# AutoGPT (we have fixed some bugs in AutoGPT's original docker image)docker pull weize/autogpt:latestdocker tag weize/autogpt:latest autogpt:latest# Open Interpreterdocker pull weize/open-interpreter:latestdocker tag weize/open-interpreter:latest open-interpreter:latest
Or you can build from source
# ReAct Agentdocker build -f dockerfiles/tool_agents/react.Dockerfile -t react-agent:latest.# AutoGPT (we have fixed some bugs in AutoGPT's original docker image)docker build -f dockerfiles/tool_agents/autogpt.Dockerfile -t autogpt:latest.# Open Interpreterdocker build -f dockerfiles/tool_agents/open_interpreter.Dockerfile -t open-interpreter:latest.
docker network create agent_networkdocker-compose -f dockerfiles/compose/milvus.yaml up
cd dockerfiles/compose/cp .env_template .env
In.env
, fill in your OpenAI API key and other optional environment variables. Then for a quick demo with AutoGPT and Open Interpreter:
cd ../../docker-compose -f dockerfiles/compose/open_instruction.yaml up
And you will set up your own small-scale Internet of Agents with AutoGPT and Open Interpreter!
You can use the following script to test IoA on our Open Instruction dataset.
python scripts/open_instruction/test_open_instruction.py
Or simply send a post request like:
importrequestsgoal="I want to know the annual revenue of Microsoft from 2014 to 2020. Please generate a figure in text format showing the trend of the annual revenue, and give me an analysis report."response=requests.post("http://127.0.0.1:5050/launch_goal",json={"goal":goal,"max_turns":20,"team_member_names": ["AutoGPT","Open Interpreter"],# When it is left "None", the agent will decide whether to form a team autonomously },)print(response)
🤔 Want to run IoA across different devices?
Check out ourdistributed setup guide.We're continuously improving our documentation, so your feedback is valuable!
We're just getting started with IoA, and we'd love your help to make it even better! Got ideas for cool ways to use IoA, like connecting PC agents with mobile agents? We're all ears!
- 👾 Chat with us onDiscord
- ✉️ Drop us a line atioa.thunlp@gmail.com
Let's build the future of AI collaboration together! 🚀