ROMA:开源元代理的支柱
Published on
October 13, 2025
Read time:
6 mins
ROMA:开源元代理的支柱

介绍 ROMA(递归开放元代理):用于构建高性能多代理系统的开源元代理框架。ROMA 编排了更简单的代理和工具来解决复杂的问题。从本质上讲, ROMA 为多代理系统提供了结构:一种分层的递归任务树,其中的父节点将复杂的目标分解成子任务,将其作为上下文传递给子节点,然后在结果返回时在上下文中聚合其解决方案。通过规定这种上下文流结构,ROMA 可以直接构建能够可靠地处理需要许多步骤的中长期任务的代理。

例如,你可能希望代理给你写一份关于洛杉矶和纽约之间气候差异的报告。父节点可以将其分解为特定的子任务:子任务 1 研究洛杉矶的气候,子任务 2 使用人工智能搜索模型或天气 API 等专业代理和工具研究纽约的气候。两个子任务完成后,父节点将创建最终的比较任务,分析两个城市之间的气候差异,然后将这些结果汇总为一份综合报告。

ROMA 使构建高性能多代理系统变得简单。借助结构化的 Pydantic 输入和输出, 上下文流程透明且完全可追踪。构建者可以确切地看到推理是如何展开的,从而可以轻松进行调试、即时改进和代理交换。与黑箱系统不同,这种透明度可以实现上下文工程中的快速迭代。此外,ROMA 的模块化设计意味着 你可以插入任何代理、工具或型号 在节点级别,从基于 LLM 的专业代理到人员在环检查点。此外,基于树的结构自然会鼓励并行化,为要求苛刻的大型问题提供灵活性和高性能。

为了证明该框架的功效,我们构建了ROMA Search,这是一款互联网搜索代理,它利用了ROMA的架构,而不是使用特定域的优化。 在SEALQA基准测试中名为Seal-0(测试复杂的多源推理)的具有挑战性的子集上,ROMA Search的准确率达到45.6%,使其成为最先进的系统。这超过了之前表现最好的Kimi Researcher,准确率为36%,是Gemini 2.5 Pro的两倍多,为19.8%。在开源模型中,ROMA Search的表现明显优于第二好的系统Open Deep Search(同样由Sentient创建),后者的准确率为8.9%。

ROMA 搜索实现了最先进水平 性能开启 框架 (多步推理)和近乎最先进的SimpleQA(事实知识检索)结果,证明了该系统在应对不同类型搜索挑战方面的有效性。

最重要的是, ROMA 是开源的,可通过设计进行扩展。搜索只是开始:任何人都可以加入新的代理,使用自定义工具扩展框架,或者将其调整到从财务分析到创意内容生成等领域。ROMA 提供了支柱——真正的突破将来自社区在其基础上构建的内容。

为什么长视野任务会破坏代理

人工智能在单步任务上取得了令人印象深刻的进步。要求模型总结一篇文章、写一封简短的电子邮件或解决数学问题,它通常会成功。但是,建立能够在长远任务中表现良好的代理人仍然面临挑战,这些任务需要许多步骤、推理或行动才能实现目标。

问题在于错误复杂。人工智能在任何一个步骤中的可靠性都可能达到 99%,但是将十个步骤串联在一起,成功的机会就会急剧下降。一次幻觉、错误应用的指令或丢失的背景信息都可能使整个过程脱轨。这种脆弱性使代理特别难以处理跨越多个子任务且需要跨源推理的任务。

解决这种脆弱性需要解决两个紧密结合的挑战:

  1. 元挑战(架构): 我们如何设计这样的代理系统 可靠 尽管存在复合错误,但还是执行长远推理?
  2. 特定任务挑战(实例化): 给定一个具体的目标,哪些分解、工具、模型、提示和验证步骤使这种特定的代理既强大又准确?

搜索是一个很好的案例研究,因为它同时强调了这两个挑战。它本质上是多步的(检索 → 读取 → 提取 → 交叉检查 → 合成),与最新的现实世界知识紧密结合。考虑一下这个问题:“估计净预算在3.5亿美元或以上的电影有多少部 他们上映年票房最高的电影?”要回答这个问题,代理必须:

  • 将查询分成几个部分(查找昂贵的电影,找到多年来票房最高的电影)。
  • 从多个来源收集新数据。
  • 有关满足查询逻辑的结果的原因。
  • 合成一个干净的最终答案。

即使使用这个相对简单的查询,也存在许多失败点:模型可能会产生幻觉、季节不对齐或循环效率低下。更糟糕的是,传统的代理框架通常会隐藏其内部推理,使其难以改进或调整。

如果我们使用坚实的元代理架构来解决元挑战,则特定任务的挑战将简化为做出明智的实例化选择:选择正确的工具和代理、制作有效的提示以及添加有针对性的人工检查。当架构还能透明地显示各个步骤之间的上下文流动时,这些选择就会变得更容易完善和改进。这正是 ROMA 所扮演的角色。

ROMA 的架构:从目标到成果

ROMA 通过为代理系统提供递归的分层结构来应对长远挑战。每个任务都表示为一个节点,该节点可以直接执行,也可以将自身分解为子任务,也可以汇总其子任务的结果。这种树状结构使上下文流明确、可追溯且易于完善。有了这个支柱,构建强大的代理就变成了为每个节点选择正确的工具、提示或验证策略的问题。

让我们来看看 ROMA Search 将如何处理上述示例。请注意,每种节点类型(原子化器、规划器、执行器、聚合器)都在 ROMA 之间共享。每个步骤的提示、代理和工具都是特定于 ROMA Search 的。

节点如何在节点类型之间前进。ROMA 是递归的,因为每个节点都经过相同的决策逻辑,可能会在流程中创建更多节点(作为规划者)。

1: 雾化器 — 评估任务

该过程从主目标节点开始。罗马的 雾化器 步骤确定任务是否足够简单,可以由单个代理完成,或者是否需要对其进行分解。

2: 规划器 — 分解成子任务

在这里,目标很复杂,所以节点变成 策划师。它将目标分成更简单的部分:

  1. 搜索估计净制作预算至少为3.5亿美元的电影,并记录其标题、预算和上映年份。
  2. 搜索预算最高的电影清单(2000年至今)所涵盖的每个上映年度全球票房最高的电影,并捕捉标题和总收入。
  3. 分析收集的数据以编制所需电影的列表。

每个子任务都变成一个子任务 雾化器 节点。请注意,这些孩子是 按顺序依赖 (后来的子任务依赖于较早的输出)。ROMA 生成任务树和兄弟姐妹 可能是依赖的也可以是独立的,为情境工程提供了清晰的结构,同时保持了灵活性。

3:执行者 — 执行子任务

一旦原子化器确定子任务足够简单,可以直接执行,该节点就会变成 执行者。执行者调用相应的工具/代理(例如搜索 API、提取模型),然后将其输出传递给下一个依赖子任务。最后一个子任务将其结果返回给父级。

4:聚合器-合并结果。

所有执行器完成后,父节点变成 聚合器。它收集子输出,验证一致性,并综合最终答案——在本例中,是满足查询限制的电影的简短清单。

人形在圈和舞台追踪

在任何节点,人类都可以验证事实或添加背景——对于可能出现幻觉或空白的超长视野任务尤其有用。计划完成后,ROMA 还可以要求用户确认子任务,尽早发现误会。即使没有人为干预, 舞台追踪 (查看每个节点的输入/输出)提供了诊断错误和快速迭代所需的透明度和控制力。

进一步扩展

我们保留了这个例子 单个子任务层 以显示节点的行为。实际上,ROMA 可以扩展到 很多层 对复杂目标进行递归,形成深度任务树。当兄弟节点是 独立,ROMA 处决了他们 同时, 工作量太大了 数百或数千个节点 保持快速。

准备好构建 AI 代理的未来了吗?

ROMA 搜索仅仅是个开始。我们已将其开源和可扩展,因此您可以突破可能的界限。

  • 对于建筑商来说: 开始在 ROMA 中尝试建筑代理。交换不同的代理,测试多模式功能,或自定义提示以创建代理,这些代理可以创建从漫画和播客等创意内容到研究报告等分析工作等任何内容。
  • 对于研究人员: 在ROMA的基础上再接再厉,推动该领域的发展。我们的透明阶段追踪可让您深入了解代理相互作用和上下文流程,非常适合开发下一代元代理架构。

尽管专有系统以单一公司的速度发展,但ROMA会随着整个社区的集体努力而发展。 立即开始使用 ROMA:

-GitHub 存储库: https://github.com/sentient-agi/ROMA

-视频演示: https://youtu.be/ghoYOq1bSE4?feature=shared

参考文献

¹ https://arxiv.org/pdf/2506.01062
² https://moonshotai.github.io/Kimi-Researcher/
³ https://arxiv.org/pdf/2409.12941
https://openai.com/index/introducing-simpleqa/