ROMA
基于 DSPy 的递归层级多智能体框架,让 AI 自动分解复杂任务为原子子任务并行求解,再智能聚合结果
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于 DSPy 的递归层级多智能体框架,让 AI 自动分解复杂任务为原子子任务并行求解,再智能聚合结果
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:ROMA 项目概览
想象一下:你要让 AI 完成一个需要多步推理的复杂任务,比如让 AI 系统自动阅读一篇论文、提取关键方法、和同类工作做对比,最后生成一份对比报告。传统做法是手动设计一套 prompt chain,把每个步骤串起来——但一旦某个环节出错,整个链条就得重新调试。ROMA 想解决的就是这个问题:让 AI 系统自己决定任务怎么拆解、怎么组织多个子智能体协作,而不是靠人工预设流程。
单智能体(Single Agent)在简单任务上表现不错,但当任务涉及多个知识领域、需要并行调研、或要求在推理过程中动态调整策略时,单 agent 的局限性就显现出来了。2023至2024年,AutoGPT、BabyAGI 等项目掀起了一股 AI Agent 浪潮,它们尝试用自主规划加工具调用的模式让 AI 自主完成任务。但这些项目大多是线性思维——把任务分解成固定顺序的步骤,一旦遇到分支或回退就容易卡壳。
ROMA 的核心理念来自一个朴素的问题:如果让 AI 自己来设计任务分解策略,而不是人类预设,会怎样?这就是 Recursive Open Meta-Agent 中 Recursive 和 Meta 的含义——系统具备自我审视和递归分解的能力,能够根据任务复杂度动态调整 agent 的层次结构。ROMA 基于 DSPy 框架构建,将语言模型视为可优化的模块,通过声明式编程方式定义多智能体协作流程。
ROMA 的标志性特性是递归任务图(Recursive Task Graph)。当用户提出一个高层目标时,ROMA 的元智能体会分析任务复杂度:
这种递归分解的好处在于:不需要人工预先定义完整流程,系统会根据任务特征自动选择最合适的分解深度。

图2:ROMA 运行过程——智能体动态协作
ROMA 原生支持 MCP 协议,可以连接各种外部工具和数据源:文件操作、代码执行、API 调用、数据库查询等。与传统工具调用不同,MCP 提供标准化的工具发现与动态加载机制——智能体可以在运行时发现自己可用的工具集合,并自主决定调用哪些工具。
ROMA 的 MCP 集成通过 fastmcp 库实现,核心文件在 src/roma_dspy/ 目录下,架构上采用插件化设计,新增工具只需实现标准接口即可接入系统。
用户可以通过 YAML 配置文件自定义 agent 的角色、指令模板和工具集。ROMA 内置了 DAG 可视化功能,使用 matplotlib 生成任务执行图,直观展示各智能体之间的调用关系和依赖链。

图3:ROMA Agent 自定义与配置界面
ROMA 通过 DSPy 模块与各类 LLM 后端对接,官方支持 OpenAI GPT-4 系列、Anthropic Claude 系列以及开源模型(如通过 vLLM 部署的模型)。核心依赖非常精简——只需要 dspy>=3.0.3,不需要额外的 agent 编排框架。
从代码结构来看,ROMA 的架构分为三层:
第一层:CLI/TUI 交互层
cli/ 和 tui_commands/ 提供命令行和文本界面入口typer 构建 CLI,textual 构建 TUI,支持交互式任务配置第二层:核心 DSPy 编排层
src/roma_dspy/ 是项目主体,包含智能体定义、任务分解、工具调用等核心逻辑prompt_optimization/ 提供 prompt 自动优化功能——系统根据执行结果反馈调整 prompt 模板benchmarks/ 包含基准测试,包括 FRAMES 数据集(多跳问答)和 SimpleQA 等第三层:基础设施层
alembic 管理数据库迁移ROMA 的架构理念是保持核心精简、扩展按需加载——最小安装只需要 minimal 依赖(几十 MB),完整功能(API 服务、TUI、持久化、可观测性)则通过可选依赖分组安装。
ROMA 提供了完整的 Docker 部署方案。克隆仓库后,只需要:
cp .env.example .env # 填写 API Keys
docker-compose up -d # 一键启动
docker-compose 会自动启动四个服务:PostgreSQL(数据库)、MinIO(对象存储)、MinIO Setup(初始化存储桶)、ROMA API Server(主服务)。API 服务默认运行在 8000 端口,提供 REST 接口提交任务和查询状态。
Dockerfile 采用多阶段构建,最终镜像基于 ghcr.io/astral-sh/uv:python3.12-bookworm-slim,使用 uv 作为包管理工具,镜像体积控制得当。
硬件需求方面,ROMA 不需要 GPU——它是纯 Python 的 agent 编排框架,不直接跑模型推理。实际资源消耗取决于所调用的 LLM 后端(本地模型需要 GPU,API 模式则仅需要 CPU 加网络)。
ROMA 作为一个 Beta 版本项目,仍有一些需要注意的地方:
1. 任务分解的稳定性 递归分解虽然灵活,但在某些边界情况下可能导致过度分解(把简单任务拆成太多子步骤,效率下降)或分解不足(高估了某个子任务的复杂度)。项目文档中提到这仍是活跃研究方向。
2. 调试成本 当多智能体系统出错时,定位根因往往比单 agent 系统更困难。ROMA 提供了执行日志和 DAG 可视化,但生产级调试工具仍在完善中。
3. 依赖链较新 项目核心依赖 DSPy v3,这是一个快速迭代的框架,API 可能随版本变化而调整。生产环境使用前建议锁定版本。
ROMA 代表了 AI Agent 领域的一个重要方向:从预设流程到自适应分解的范式转变。如果说 AutoGPT 解决的是让 AI 自主行动的问题,ROMA 则在探索让 AI 自主设计行动策略。
这种递归 meta-agent 的思路在学术界也有呼应——DeepMind 的 AlphaCode、Anthropic 的 Claude 对复杂任务的 Chain-of-Thought 推理,都在不同层面体现了让模型自主组织多步推理的思想。ROMA 的开源实现让这种思路有了可实验的工程载体。
从 Stars 增长趋势来看,ROMA 在发布短时间内获得 5000+ stars,说明社区对多智能体协作框架有强烈需求。随着 DSPy 生态的成熟,类似的项目会越来越多,ROMA 有望成为这一方向的重要基础设施之一。
图4:ROMA GitHub 仓库封面