An open-source framework by OpenBMB for collaborative AI agents, enabling heterogeneous agents to team up autonomously through internet-like architecture with async task execution.
Overview#
IoA (Internet of Agents) is an open-source collaborative AI agent framework developed by the OpenBMB team. Inspired by internet architecture, it connects heterogeneous, distributed AI agents, enabling them to autonomously form teams and collaborate on complex tasks.
Key Features#
Architecture Capabilities#
- Internet-like Connectivity: Architecture design supporting cross-device, cross-environment agent interconnection
- Heterogeneous Agent Integration: Supports integration of agents from different sources and architectures (verified support for AutoGPT, Open Interpreter, ReAct Agent)
- Asynchronous Task Execution: Async processing mechanism for improved system concurrency and efficiency
Collaboration Mechanism#
- Autonomous Nested Team Collaboration: Agents can autonomously form teams and sub-teams based on task requirements
- Adaptive Dialogue Flow: Automatically manages dialogue structure between agents, dynamically adjusting interaction flow based on task progress
Extensibility#
- Architecture design allows developers to easily add new types of agents
- Instant messaging-style architecture ensures clear agent communication structure
Architecture Components#
| Component | Description |
|---|---|
| IoA Server | Core server handling scheduling, communication management, and state maintenance |
| IoA Client | Client encapsulating specific Agent logic, connecting to Server |
| Server Frontend | Web UI for monitoring and interaction |
| Milvus | Vector database for semantic retrieval and memory functions |
Installation & Deployment#
Requirements#
- Docker (Required)
- Docker Compose (Recommended)
Quick Start#
- Clone repository
git clone git@github.com:OpenBMB/IoA.git
cd IoA
- Pull core component images
docker pull weize/ioa-server:latest
docker pull weize/ioa-client:latest
docker pull weize/ioa-server-frontend:latest
- Pull agent images (as needed)
docker pull weize/react-agent:latest
docker pull weize/autogpt:latest
docker pull weize/open-interpreter:latest
- Start Milvus service
docker network create agent_network
docker-compose -f dockerfiles/compose/milvus.yaml up -d
- Configure environment and start
cd dockerfiles/compose/
cp .env_template .env
# Edit .env file with OPENAI_API_KEY and other required values
docker-compose -f dockerfiles/compose/open_instruction.yaml up
Usage Example#
HTTP Request#
import requests
goal = "I want to know the annual revenue of Microsoft from 2014 to 2020..."
response = requests.post(
"http://127.0.0.1:5050/launch_goal",
json={
"goal": goal,
"max_turns": 20,
"team_member_names": ["AutoGPT", "Open Interpreter"],
},
)
API Interface#
POST /launch_goal: Core endpoint for launching collaborative tasksgoal(string): Task descriptionmax_turns(int): Maximum turnsteam_member_names(list[string]): Team member names
Use Cases#
- Complex data analysis tasks (cross-timeframe data retrieval and visualization)
- Multi-tool tasks (code writing + execution and debugging)
- Distributed AI collaboration research and development