摘要:在 LLM Agent 从“可用”迈向“好用”的进程中,“自我进化”成为了新的技术高地。百度百舸团队近期开源的 LoongFlow 框架,摒弃了传统进化算法中的盲目随机性,提出了一种基于 PES(Plan-Execute-Summarize) 的新型进化范式。本文将从设计理念、核心架构、代码实现及实战案例四个维度,深入解读 LoongFlow 如何实现 Agent 的“龙场悟道”。


1. 背景:当 Agent 遇到进化瓶颈

目前的 AI Agent 开发中,我们常常面临一个困境:Prompt 工程和 Workflow 的优化极度依赖人工经验

虽然学术界存在基于进化的算法(Evolutionary Algorithms, EA),试图让 Agent 自动迭代代码或 Prompt,但传统 EA 往往存在致命缺陷:

  • 盲目性:依赖随机突变(Mutation),像“无限猴子打字机”,效率极低。

  • 无记忆:每一代变异往往忽略了上一代的“失败教训”,导致重复错误。

LoongFlow 的诞生正是为了解决这个问题。它的核心哲学源自王阳明的“龙场悟道”(Enlightenment at Longchang),主张 “知行合一” —— 即利用大模型的认知能力(Thinking/Planning)来指导行动(Executing),再通过行动结果反哺认知,实现定向进化(Directed Evolution)

2. 核心架构:PES 范式解析

LoongFlow 没有采用复杂的黑盒优化,而是构建了一个清晰的 PES(Plan-Execute-Summarize) 闭环。

2.1 架构图解

在这个架构中,Agent 不再是一个单向执行流,而是一个包含长短期记忆的动态系统。

  • P (Planner - 规划者)

    • 角色:系统的“大脑”。

    • 职责:它不直接写代码,而是观察当前的进化状态(State)和进化记忆(Memory)。它会分析历史的最佳实践和失败路径,制定下一步的改进方向(Direction)。

    • 差异点:相比传统 ReAct 中的 Planner,这里的 Planner 具备跨周期的记忆能力。

  • E (Executor - 执行者)

    • 角色:系统的“手”和“工匠”。

    • 职责:接收 Planner 的指导,进行具体的代码编写、参数调整或 Prompt 优化。

    • 能力:内置了 Evaluate(评估)和 Debug(调试)机制,确保持续输出可运行的解。

  • S (Summarizer - 总结者)

    • 角色:系统的“复盘者”。

    • 职责:在 Executor 执行完毕后,Summarizer 会对比预期与结果,提取“知识”,并将其更新到进化记忆中,供下一轮 Planner 使用。

2.2 底层支撑:ReAct 与 Hook 机制

在代码实现上,LoongFlow 具有高度的工程化水准。其底层基于模块化的 ReAct 引擎:

# 伪代码展示模块化设计
class EvolveAgent(BaseAgent):
    def __init__(self, config):
        # 核心组件可插拔
        self.planner = PlannerWorker(...)
        self.executor = ExecutorWorker(...)
        self.summarizer = SummarizerWorker(...)
    
    async def run(self):
        while not converged:
            plan = await self.planner.think()
            result = await self.executor.act(plan)
            knowledge = await self.summarizer.reflect(result)
            self.memory.update(knowledge)

框架提供了丰富的 Hook 插桩,允许开发者在 pre_plan, post_execute 等环节注入自定义逻辑,非常适合科研实验和二次开发。

3. 应用场景与 SOTA 表现

LoongFlow 目前提供了两套成熟的进化策略实现:

3.1 General-Evolve(通用算法进化)

针对数学问题、算法竞赛等场景。

  • 亮点:在数学家陶哲轩提出的 Open Problems 中,LoongFlow 在 11 个问题上打破了已知最佳结果。

  • 原理:通过不断重写算法逻辑,寻找更优的数学解构。

3.2 ML-Evolve(机器学习自动进化)

针对 Kaggle、AutoML 场景。

  • 亮点:在 OpenAI 发布的 MLE-Bench 基准测试中,LoongFlow 赢得了 14 枚金牌(共 20 个 Kaggle 竞赛)。

  • 能力:它可以像一个数据科学家一样,自动进行 EDA(探索性数据分析)、特征工程构造、模型融合调优。

4. 开发者实战:从零启动一个进化任务

环境要求:Python 3.12+ (推荐使用 uv 管理依赖)

步骤一:环境配置

git clone https://github.com/baidu-baige/LoongFlow.git
cd LoongFlow
# 创建虚拟环境
uv venv .venv --python 3.12
source .venv/bin/activate
# 安装开发模式
uv pip install -e .

步骤二:配置任务

以经典的 “单位正方形圆堆积问题” 为例。我们需要关注 agents/general_evolve/examples/packing_circle_in_unit_square 目录。

  1. 修改 task_config.yaml:配置你的 LLM 后端。

llm_config:
  model: "gpt-4o" # 建议使用强推理模型,如 GPT-4o 或 DeepSeek-R1
  api_key: "sk-your-key"
  url: "https://api.openai.com/v1"

evolution:
  max_iterations: 20 # 进化代数
  beam_width: 2      # 搜索宽度
  1. 定义评估函数 (eval_program.py):这是进化的“指挥棒”。

# 这是一个简化示例,LoongFlow 会尝试优化这个函数生成的圆的坐标
def evaluate(circles):
    # 计算圆是否重叠、是否在正方形内
    # 返回分数:放入圆的数量 or 圆的半径大小
    return score

步骤三:启动进化

# 安装该任务所需的特定依赖
uv pip install -r agents/general_evolve/examples/packing_circle_in_unit_square/requirements.txt

# 运行脚本
./run_task.sh packing_circle_in_unit_square

运行后,你会在日志中看到惊人的一幕:Agent 开始尝试不同的数学排列算法,最初可能报错,但随着 PES 循环的进行,代码越来越健壮,计算出的圆排列密度越来越高。

5. 总结与展望

LoongFlow 的开源,为 AI Agent 领域提供了一个高质量的 “自进化”基座。它证明了:结构化的认知流程(PES)比盲目的算力堆砌(Random Mutation)更有效。

对于广大开发者和研究人员,LoongFlow 是一个极佳的实验平台:

  1. 对于算法工程师:可以利用 ML-Evolve 自动化处理繁琐的特征工程。

  2. 对于 Agent 研究者:可以基于其 ReAct 框架研究新的记忆机制或规划算法。

  3. 对于业务开发者:可以尝试用它来进化业务逻辑代码或复杂 Prompt。

项目地址https://github.com/baidu-baige/LoongFlow


欢迎关注我的 CSDN 博客,获取更多 AI 前沿技术解析。如果觉得本文有用,请点赞收藏!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐