ROMA is a meta-agent framework that uses recursive hierarchical structures to solve complex problems. By breaking down tasks into parallelizable components, ROMA enables agents to tackle sophisticated reasoning challenges while maintaining transparency that makes context-engineering and iteration straightforward. The framework offers parallel problem solving where agents work simultaneously on different parts of complex tasks, transparent development with a clear structure for easy debugging, and proven performance demonstrated through our search agentβs strong benchmark results. Weβve shown the frameworkβs effectiveness, but this is just the beginning. As an open-source and extensible platform, ROMA is designed for community-driven development, allowing you to build and customize agents for your specific needs while benefiting from the collective improvements of the community.
ποΈ How It Works
ROMA framework processes tasks through a recursive planβexecute loop:
Atomizer β Decides whether a request is atomic (directly executable) or requires planning.
Planner β If planning is needed, the task is broken into smaller subtasks. Each subtask is fed back into the Atomizer, making the process recursive.
Executors β Handle atomic tasks. Executors can be LLMs, APIs, or even other agents β as long as they implement an agent.execute() interface.
Aggregator β Collects and integrates results from subtasks. Importantly, the Aggregator produces the answer to the original parent task, not just raw child outputs.
π Information Flow
Top-down: Tasks are decomposed into subtasks recursively.
Bottom-up: Subtask results are aggregated upwards into solutions for parent tasks.
Left-to-right: If a subtask depends on the output of a previous one, it waits until that subtask completes before execution.
This structure makes the system flexible, recursive, and dependency-aware β capable of decomposing complex problems into smaller steps while ensuring results are integrated coherently.
flowchart TB
A[Your Request] --> B{Atomizer}
B -->|Plan Needed| C[Planner]
B -->|Atomic Task| D[Executor]
%% Planner spawns subtasks
C --> E[Subtasks]
E --> G[Aggregator]
%% Recursion
E -.-> B
%% Execution + Aggregation
D --> F[Final Result]
G --> F
style A fill:#e1f5fe
style F fill:#c8e6c9
style B fill:#fff3e0
style C fill:#ffe0b2
style D fill:#d1c4e9
style G fill:#c5cae9
π 30-Second Quick Start
1
2
3
4
5
git clone https://github.com/sentient-agi/ROMA.git
cd ROMA
# Run the automated setup./setup.sh
Choose between:
Docker Setup (Recommended) - One-command setup with isolation
Native Setup - Direct installation for development
π§ AWS Credentials - Passed securely via Docker build arguments
π€ Pre-built Agents
Note: These agents are demonstrations built using ROMAβs framework through simple vibe-prompting and minimal manual tuning. They showcase how easily you can create high-performance agents with ROMA, rather than being production-final solutions. Our mission is to empower the community to build, share, and get rewarded for creating innovative agent recipes and use-cases.
ROMA comes with example agents that demonstrate the frameworkβs capabilities:
π General Task Solver
A versatile agent powered by ChatGPT Search Preview for handling diverse tasks:
Intelligent Search: Leverages OpenAIβs latest search capabilities for real-time information
Flexible Planning: Adapts task decomposition based on query complexity
Multi-Domain: Handles everything from technical questions to creative projects
Quick Prototyping: Perfect for testing ROMAβs capabilities without domain-specific setup
Perfect for: General research, fact-checking, exploratory analysis, quick information gathering
π¬ Deep Research Agent
A comprehensive research system that breaks down complex research questions into manageable sub-tasks:
Smart Task Decomposition: Automatically splits research topics into search, analysis, and synthesis phases
Parallel Information Gathering: Executes multiple searches simultaneously for faster results
Multi-Source Integration: Combines results from web search, Wikipedia, and specialized APIs
Intelligent Synthesis: Aggregates findings into coherent, well-structured reports
All three agents demonstrate ROMAβs recursive architecture in action, showing how complex queries that would overwhelm single-pass systems can be elegantly decomposed and solved. They serve as templates and inspiration for building your own specialized agents.
Your First Agent in 5 Minutes
1
./setup.sh# Automated setup with Docker or native installation
Access all the pre-defined agents through the frontend on localhost:3000 after setting up the backend on localhost:5000. Please checkout Setup and the Agents guide to get started!
1
2
3
4
5
# Your first agent in 3 linesfromsentientresearchagentimportSentientAgentagent=SentientAgent.create()result=awaitagent.run("Create a podcast about AI safety")
π Benchmarks
We evaluate our simple implementation of a search system using ROMA, called ROMA-Search across three benchmarks: SEAL-0, FRAMES, and SimpleQA.
Below are the performance graphs for each benchmark.
SealQA is a new challenging benchmark for evaluating Search-Augmented Language models on fact-seeking questions where web search yields conflicting, noisy, or unhelpful results.
A comprehensive evaluation dataset designed to test the capabilities of Retrieval-Augmented Generation (RAG) systems across factuality, retrieval accuracy, and reasoning.
Factuality benchmark that measures the ability for language models to answer short, fact-seeking questions.
β¨ Features
π Recursive Task Decomposition
Automatically breaks down complex tasks into manageable subtasks with intelligent dependency management. Runs independent sub-tasks in parallel.
π€ Agent Agnostic
Works with any provider (OpenAI, Anthropic, Google, local models) through unified interface, as long as it has an agent.run() command, then you can use it!
π Complete Transparency
Stage tracing shows exactly what happens at each step - debug and optimize with full visibility
π Connect Any Tool
Seamlessly integrate external tools and protocols with configurable intervention points. Already includes production-grade connectors such as E2B, file-read-write, and more.
π Acknowledgments
This framework would not have been possible if it wasnβt for these amazing open-source contributions!
@software{al_zubi_2025_17052592,author={Al-Zubi, Salah and
Nama, Baran and
Kaz, Arda and
Oh, Sewoong},title={SentientResearchAgent: A Hierarchical AI Agent
Framework for Research and Analysis
},month=sep,year=2025,publisher={Zenodo},version={ROMA},doi={10.5281/zenodo.17052592},url={https://doi.org/10.5281/zenodo.17052592},swhid={swh:1:dir:69cd1552103e0333dd0c39fc4f53cb03196017ce
;origin=https://doi.org/10.5281/zenodo.17052591;vi
sit=swh:1:snp:f50bf99634f9876adb80c027361aec9dff97
3433;anchor=swh:1:rel:afa7caa843ce1279f5b4b29b5d3d
5e3fe85edc95;path=salzubi401-ROMA-b31c382
},}
π License
This project is licensed under the MIT License - see the LICENSE file for details.