I plan to build a multi-agent project with carefully designed Context Engineering and LLM-friendly communication protocols. Given structured inputs and outputs, the project will be able to handle complex multi-agent scenarios.
Rather than building monolithic agents that try to do everything, build small, focused agents that do one thing well. Each agent will have its own context and its own set of tools.
Let's construct the following agents.
| Agent | Core Capability | LLM Model Name |
|---|---|---|
| Planner | SequentialThinking | google/gemini-2.5-pro |
| Think | DeepSeek-R1 | deepseek/deepseek-r1-0528:free |
| Search | Google Search API | google/gemini-2.5-pro |
| Browser | Browser-Use | google/gemini-2.5-pro |
| Document | Marker | google/gemini-2.5-pro |
| Audio | Music Analysis | google/gemini-2.5-pro |
| Image | Gemini Image Understanding | gemini-2.5-pro |
| Video | Gemini Video Understanding | gemini-2.5-pro |
| Coder | E2B Code Sandbox | anthropic/claude-sonnet-4 |
We use OpenRouter as provider and Gemini-2.5-pro as the LLM model. You could reference Gemini API for the standard implementation.
Notice: use native google genai api for image and video agents. Gemini API quickstart.
This project uses:
- Language/Framework: Python3.13
- Build Tool: uv
- Format:
uv run ruff format . - Linting:
uv run ruff check . - Testing:
uv run pytest - Core packages:
- pydantic
- aworld
./
├── prompts
│ ├── browser.md
│ ├── other agents' prompts
├── models
│ ├── __init__.py
│ ├── necessary dataclasses
├── agents
│ ├── __init__.py
│ ├── base.py (accept natural language input)
│ ├── browser_agent.py
│ ├── agents inheriting from base class that utilize tools
├── tools
│ ├── __init__.py
│ ├── audio
│ │ ├── views.py # define pydantic models
│ │ ├── service.py # implement core logic
│ ├── other tools...
├── utils
│ ├── __init__.py
│ ├── logging_util.py
│ ├── necessary utils
├── examples
│ ├── __init__.py
├── README.md
├── DESIGN.md
├── __init__.py
├── main.py
├── cli.py
├── config.py
├── exceptions.py