Command Palette
Search for a command to run...
CORAL:迈向面向开放发现的多智能体自主进化
CORAL:迈向面向开放发现的多智能体自主进化
摘要
基于大语言模型(LLM)的进化是开放性问题发现的一种极具前景的方法,其进展依赖于持续的搜索与知识积累。然而,现有方法仍严重依赖固定的启发式规则和硬编码的探索策略,限制了 LLM Agent 的自主性。本文提出 CORAL,这是首个面向开放性问题、支持自主多 Agent 进化的框架。CORAL 摒弃了僵化的控制机制,转而采用长期运行的 Agent,通过共享持久化记忆、异步多 Agent 执行以及基于心跳机制的干预,实现探索、反思与协同。此外,该框架还提供了多项实用保障措施,包括隔离工作空间、评估器分离、资源管理以及 Agent 会话与健康管理。在多样化的数学、算法及系统优化任务上的评估表明,CORAL 在 10 项任务中刷新了最先进(state-of-the-art)的结果,相较于固定的进化搜索基线,其提升速率提高了 3 至 10 倍,且所需评估次数显著减少。在 Anthropic 提出的内核工程任务中,四个协同进化的 Agent 将已知最佳得分从 1363 次循环优化至 1103 次循环。机制分析进一步揭示了这些性能提升源于知识的复用以及多 Agent 间的探索与通信。综上所述,这些结果表明,增强 Agent 自主性并引入多 Agent 进化机制,可显著提升开放性问题发现的能力。相关代码已开源:https://github.com/Human-Agent-Society/CORAL。
一句话总结
来自麻省理工学院(MIT)、新加坡国立大学(NUS)及其他机构的研究人员推出了 CORAL,这是一个自主多智能体框架,它用持久化记忆和异步协作取代了僵化的启发式规则。该方法在多样化的优化任务中取得了最先进(SOTA)的成果,包括在 GPU 内核工程上实现了 20% 的提升,这得益于其实现了持续的知识积累和智能体自主性。
主要贡献
- 本文介绍了 CORAL,这是一个用于自主多智能体演化的框架,它用长期运行的智能体取代了僵化的控制,这些智能体利用共享持久化记忆、异步执行和基于心跳的干预机制,来探索并协作解决开放式问题。
- 这项工作确立了一种新范式,将自主演化定义为一种独特方法,它将搜索决策权委托给智能体,使其能够通过知识检索、贡献和提炼来迭代优化解决方案,而无需依赖固定的启发式规则。
- 实验表明,CORAL 在 10 项多样化任务中创造了新的最先进成果,其提升率比固定基线高出 3–10 倍;机制分析证实,这些增益源于有效的知识复用和多智能体通信。
引言
在数学优化和系统工程等领域,开放式发现需要持续的迭代搜索,而非一次性生成。然而,当前基于大语言模型(LLM)的方法依赖于固定的演化启发式规则,限制了智能体的自主性。这些僵化的流程迫使智能体遵循硬编码的规则进行父代选择和探索,阻碍了它们调整搜索策略或在长周期内有效复用知识。作者提出了 CORAL,这是一个用自主多智能体演化取代静态控制的框架,其中长期运行的智能体通过共享持久化记忆和异步执行进行协作。通过允许智能体决定探索内容、通过心跳机制反思进展并积累可复用的技能,CORAL 以比传统基线少得多的评估次数实现了最先进成果。
数据集
-
数据集构成与来源 作者利用了一个精心策划的评估任务集合,共包含 13 个任务,涵盖数学优化、系统优化和压力测试问题。这些任务源自 ADRS 等成熟基准,包括 Erdős 最小重叠问题、交易调度和内核工程等具体挑战。数据通过 YAML 配置文件进行结构化,定义了任务元数据、评分逻辑和智能体参数。
-
各子集的关键细节
- 数学优化:包含 6 个任务,如圆填充和信号处理,智能体需解决复杂的不等式或最小化重叠积分。
- 系统优化:包含 5 个任务,如 EPLB 和 LLM-SQL,侧重于算法改进,且不具备网络搜索能力。
- 压力测试问题:包含高复杂度场景,如 VLIW SIMD 内核构建器,需要优化代码以将周期数从基线约 147,734 降低至最佳已知值约 1,363。
- 评分逻辑:每个任务均采用基于 Python 的评分器,在子进程中执行智能体解决方案,验证约束条件,并返回数值分数或错误状态。
-
在模型训练与评估中的使用 作者仅将该数据集用于评估而非训练,通过异步运行智能体来生成性能数据。系统支持单智能体和多智能体配置,后者允许最多 4 个智能体协作完成单个任务。评估指标基于智能体分数与基线及最佳已知解决方案的比率得出,并对每个任务强制执行特定的超时限制(例如 600 秒或 1100 秒)。
-
处理与元数据构建
- 共享持久化记忆:作者在
.coral/public/目录下实现了集中式文件系统以存储工件。这包括尝试记录(以提交哈希为键的 JSON 文件)、分层笔记(带有 YAML 前缀的 Markdown)以及可复用的技能。 - 工件管理:智能体通过符号链接与其隔离的工作树交互以访问共享内存,既防止了意外提交,又 enabling 了对原生文件工具的访问。
- 并发处理:系统通过为笔记和技能分配唯一文件名,并使用提交哈希作为尝试记录的标识,避免了显式锁定,确保在异步执行期间不会发生文件级冲突。
- 元数据丰富:每个尝试记录捕获智能体 ID、分数、状态、父级哈希和详细反馈,而笔记则按主题组织,以整合知识并追踪未决问题。
- 共享持久化记忆:作者在
方法
作者提出了 CORAL,这是一个旨在促进开放式发现任务中自主多智能体演化的框架。在这种范式中,目标是在评估器反馈下迭代地发现越来越强的候选解决方案,而无需已知的最优目标。该过程被抽象为四个阶段:检索(Retrieve)、提议(Propose)、评估(Evaluate)和更新(Update)。
参考下方的搜索范式对比图:

传统方法通常依赖固定的演化搜索,外部规则控制检索和更新阶段,将智能体的角色主要限制在提议阶段。相比之下,CORAL 实现了自主单智能体演化,由智能体控制所有四个阶段的时机和实现。这进一步扩展为自主多智能体演化,其中多个智能体异步运行,并通过共享持久化记忆而非直接通信进行协调。这种设计增加了探索的多样性,并允许智能体间接地相互启发。
CORAL 框架的整体工作流程如下图所示:

系统通过中央管理器基础设施(Manager Infra)运行,负责处理智能体生命周期和心跳协调。每个智能体在隔离的工作空间中运行,执行一个自主循环:从共享内存中读取尝试记录、笔记和技能,规划并编辑代码,运行评估评分器,然后将新的笔记和技能写回共享存储。共享持久化记忆被构建为一个文件系统,包含三个根文件夹:用于历史评估的尝试(attempts)、用于观察和反思的笔记(notes),以及用于可复用过程的技能(skills)。为了防止智能体陷入局部最优,心跳监控器(Heartbeat Monitor)会触发周期性干预,如反思(记录笔记)、整合(将笔记组织为技能)和重定向(当未观察到改进时转换策略)。
底层软件架构是模块化的,如下所示分为六个关键组件:

配置模块解析 YAML 任务定义以初始化系统。智能体系统通过智能体管理器(AgentManager)和心跳运行器(HeartbeatRunner)管理智能体生命周期,确保持久性并处理中断。评分器层级(Grader Hierarchy)提供了一个可插拔的评估接口,其中基础评分器(BaseGrader)定义了候选者评分协议,并由任务评分器(TaskGrader)或函数评分器(FunctionGrader)等具体评分器实现。工作区设置(Workspace Setup)为每个智能体创建隔离的工作树,并通过符号链接连接到存储共享持久化记忆的枢纽(Hub)。最后,核心类型(Core Types)定义了系统中使用的数据模型,如任务(Task)、分数(Score)和分数包(ScoreBundle),确保组件间的数据流一致。
实验
- CORAL 在数学优化、系统优化和具有挑战性的压力测试问题上进行了评估,结果表明,自主多智能体演化显著优于固定的演化搜索基线,在大多数任务中取得了新的最先进成果。
- 自主设计允许智能体根据反馈动态决定探索策略并调整方法,与依赖预定义启发式规则的方法相比,实现了更高的提升率和更快的收敛速度。
- 多智能体协同演化将搜索边界扩展到了单智能体能力之外,特别是在那些单轮运行容易过早停滞的复杂任务上,这得益于多样化的探索轨迹以及通过共享持久化记忆实现的技术有机扩散。
- 定性分析表明,在外部评估前对代码进行本地验证,以及积累可复用的知识工件,是性能提升的关键驱动因素,尤其是对于需要深入架构洞察的高级任务。
- 消融研究证实,性能增益源于协同演化机制和知识积累,而不仅仅是计算资源的增加,且这些优势有效地泛化到了开源模型栈。