Our take
- Activity
- 32
- Community
- 38
- Issues
- 47
- Pull requests
- 21
+6 stars in the last 8 days
- Fewer contributors than 82% of the projects we track
Overview
ROMA is a framework for building multi-agent systems that recursively break complex goals into smaller tasks, execute those tasks, and combine their results. Its modular workflow uses an atomizer, planner, executor, and aggregator, with an optional verifier to check the final response.
It is aimed at developers who need a structured, inspectable way to coordinate LLMs, tools, and subtasks rather than implementing orchestration from scratch. The project is marked Beta, and offers a lightweight package installation as well as a Docker-based setup with additional services.
Key Features
- Recursively classifies tasks as directly executable or requiring decomposition.
- Plans subtasks with task types and optional dependencies.
- Runs execution modules with configurable DSPy prediction strategies and callable tools.
- Aggregates subtask results into an answer to the original goal, with optional verification.
- Supports synchronous and asynchronous module calls and configurable language models.
- Includes toolkits for files, calculations, code execution, search, crypto data, and MCP connections.
- Provides optional REST API, CLI, persistence, storage, and observability components.
Use Cases
- AI application developers can decompose research or planning requests into smaller tasks and aggregate the results.
- Teams building tool-using assistants can route atomic tasks to executors equipped with functions or toolkits.
- Developers evaluating orchestration designs can swap models and prediction strategies across modules.
- Production teams can add an API server, execution persistence, and observability through the Docker setup when those services are needed.
Getting Started
Install the package and set an LLM provider key:
pip install roma-dspy
export OPENROUTER_API_KEY="your-api-key"
See the README for provider configuration, Docker setup, API and CLI usage, and module examples.
Alternatives
- autogen: AutoGen offers Python multi-agent orchestration and human-in-the-loop workflows, but is in maintenance mode.
- lagent: Lagent composes agents, tools, and memory with synchronous and asynchronous interfaces, rather than centering on recursive planning.
- griptape: Griptape focuses on modular tasks, pipelines, and workflows alongside agents, tools, memory, and retrieval.
| Project | Language | License | Stars | Status |
|---|---|---|---|---|
| ROMA | Python | – | 5.2k | Not checked yet |
| autogen | Python | CC-BY-4.0 | 61.3k | Quiet |
| lagent | Python | Apache-2.0 | 2.3k | Quiet |
| griptape | Python | Apache-2.0 | 2.6k | Active |
Considerations
- ROMA is identified as Beta, so APIs and behavior may change.
- Running tasks requires credentials for an LLM provider. The README describes OpenRouter, OpenAI, and Anthropic configuration options.
- The minimal installation does not include optional services such as PostgreSQL persistence, MLflow observability, the REST API, or S3 storage. These require extras or the Docker setup.
- Results depend on the configured models, tools, and task decomposition. The README presents benchmark evaluations but does not provide numerical results in the supplied text.
Found this useful?
Share it with someone who would like ROMA.