sentient-agi

ROMA: Build Hierarchical Multi-Agent Systems

ROMA is a Python framework for solving complex tasks through recursive planning and coordinated agents. It suits developers building extensible multi-agent workflows with LLMs, tools, and optional persistence or API services.

Stars
5.2k
Forks
775
Stars, last 8 days
+6

Our take

Health score

35/100

How it is scored
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.
ProjectLanguageLicenseStarsStatus
ROMAPython–5.2kNot checked yet
autogenPythonCC-BY-4.061.3kQuiet
lagentPythonApache-2.02.3kQuiet
griptapePythonApache-2.02.6kActive

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.

Comparisons