declarative-agents vs ROMA
Configurable agent workflows compared
declarative-agents and ROMA both help developers build LLM agents that use tools. declarative-agents interprets YAML-defined workflows in a Go runtime, while ROMA coordinates agents through recursive task decomposition in Python.

declarative-agents: Define LLM Agents with YAML Profiles
Nokia Bell Labs' declarative-agents uses YAML profiles and a Go runtime to define and execute tool-augmented LLM agents. It suits teams that want to change agent workflows through configuration rather than rebuild a binary.

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.
| declarative-agents | ROMA | |
|---|---|---|
| Language | Go | Python |
| License | BSD-3-Clause | — |
| Stars | 5 | 5.2k |
| Forks | 2 | 775 |
| Last analyzed | Oct 24, 2026 | Oct 3, 2026 |
Key differences
- declarative-agents runs state machines defined by YAML profiles; ROMA recursively breaks goals into subtasks and coordinates planning, execution, and aggregation.
- declarative-agents is written in Go and ROMA is written in Python.
- declarative-agents includes reusable agent and tool blocks, application compositions, a DSL specification, and design-pattern guidance; ROMA includes execution toolkits and optional API, persistence, and observability components.
- declarative-agents is in maintenance mode and accepts bug fixes only; ROMA is marked Beta, so its APIs and behavior may change.
- declarative-agents is licensed under BSD-3-Clause; ROMA's supplied project details do not specify a license.
- declarative-agents quickstarts require Go and Mage, while ROMA task execution requires credentials for an LLM provider.
Choose declarative-agents if you…
- want to change agent states, transitions, or tool assignments through YAML profiles without changing the runtime binary.
- need reusable agent and tool blocks or want to start from a chatbot-mesh or coding-agent composition.
- want to study a documented application DSL and design patterns for declarative agents.
Choose ROMA if you…
- need recursive planning that decomposes complex goals into subtasks and aggregates their results.
- want to configure Python modules, models, prediction strategies, and callable tools for multi-agent workflows.
- need optional API, persistence, or observability components through extras or the Docker setup.
Compare the numbers side by side, or add more projects
This comparison is generated with AI from the OSRepos analyses of both projects. Always check each project's repository and documentation before choosing.