OpenAlpha_Evolve

GitHub
996 147 中等 2 次阅读 昨天MIT开发框架语言模型Agent
AI 解读 由 AI 自动生成,仅供参考

OpenAlpha_Evolve 是一款基于 Python 的开源框架,致力于利用大语言模型实现算法的自动化演进。受 DeepMind AlphaEvolve 研究启发,它模拟自然选择机制,通过“生成 - 测试 - 改进”的循环,自主发现并持续优化代码解决方案。

针对传统编程中人工调试效率低、复杂算法探索成本高的问题,OpenAlpha_Evolve 提供了一套完整的自动化流程。用户只需定义任务目标与测试用例,系统便会调度多个智能体协作,从初始代码生成到变异修复,再到性能评估,最终筛选出最优解。

OpenAlpha_Evolve 特别适合希望探索 AI 驱动编程、自动化问题解决的研究人员和开发者。其核心亮点在于模块化代理架构,涵盖提示词设计、代码生成、评估及选择控制器,并支持基于差异(diff)的代码迭代更新。这不仅降低了算法创新的门槛,也为构建更智能的自主编码系统提供了可扩展的基础设施,让 AI 真正参与到代码进化的过程中。

使用场景

某金融风控团队正在攻坚一个实时交易数据清洗模块,要求在毫秒级高并发下将处理延迟降低 50%。

没有 OpenAlpha_Evolve 时

  • 资深工程师需反复手写不同策略,人工排查 Bug 效率低下且易疲劳出错。
  • 传统单元测试难以覆盖所有极端输入,导致线上偶尔出现未预见的异常。
  • 算法调优依赖直觉,缺乏量化指标来科学衡量每次改进的实际 fitness 值。
  • 跨团队协作中,优化逻辑难以复现,新人接手维护成本极高。

使用 OpenAlpha_Evolve 后

  • OpenAlpha_Evolve 根据任务定义自动生成多组候选代码并并行执行沙箱测试。
  • 评估代理自动计算正确率与运行时间,精准淘汰低效方案并保留优质基因。
  • 进化循环持续引入变异,逐步逼近最优解,大幅减少人为干预带来的盲区。
  • 数据库完整保存演化谱系,确保任何阶段的代码变更都可解释且可回溯。

它将复杂的算法寻优工作转化为自动化、可量化的智能进化流程,显著提升研发效率。

运行环境要求

操作系统
  • Windows
  • macOS
  • Linux
GPU

未说明

内存

未说明

依赖
notes必须安装 Docker 用于代码沙箱测试;需配置 LLM API 密钥(如 Google Gemini、OpenAI 等)到.env 文件;支持通过 Gradio 启动 Web 界面交互。
python3.10+
litellm
gradio
pyyaml
docker
OpenAlpha_Evolve hero image

快速开始

OpenAlpha_Evolve:贡献以改进此项目

openalpha_evolve_workflow

OpenAlpha_Evolve 是一个开源 Python 框架,灵感来源于 DeepMind 的 AlphaEvolve 等自主编码智能体(autonomous coding agents)的前沿研究。它是对核心思想的再生:一个智能系统,通过 LiteLLM 利用大语言模型(Large Language Models,简称 LLMs),在进化原则的指导下,迭代地编写、测试和改进代码。

我们的使命是为研究人员、开发者和爱好者提供一个易于访问、理解且可扩展的平台,以探索人工智能、代码生成和自动化问题解决之间迷人的交叉领域。

License: MIT

目录


image image

✨ 愿景:AI 驱动的算法创新

想象一个能够:

  • 理解复杂的问题描述。
  • 生成初始算法解决方案。
  • 严格测试其自身代码。
  • 从失败和成功中学习。
  • 随时间进化出越来越复杂和高效的算法。

OpenAlpha_Evolve 是迈向这一愿景的一步。这不仅仅是关于生成代码;而是关于创建一个能够自主发现优化解决方案的系统。


Screenshot 2025-05-19 at 12 17 58 AM

🧠 工作原理:进化循环

OpenAlpha_Evolve 采用模块化、基于智能体(agent-based)的架构来编排进化过程:

  1. 任务定义(Task Definition):您,即用户,定义算法“任务”——要解决的问题,包括输入和预期输出的示例。
  2. 提示词工程(Prompt Engineering)(PromptDesignerAgent:此智能体为 LLM 制作智能提示词。它设计:
    • 初始提示词(Initial Prompts):用于生成第一组候选解决方案。
    • 变异提示词(Mutation Prompts):用于引入现有解决方案的变体和改进,通常要求以“差异(diff)”格式提出更改。
    • 错误修复提示词(Bug-Fix Prompts):引导 LLM 纠正先前尝试中的错误,通常也期望返回“差异”。
  3. 代码生成(Code Generation)(CodeGeneratorAgent:由 LLM 驱动(当前配置为 Gemini),此智能体接收提示词并生成 Python 代码。如果请求并收到“差异”,它会尝试将更改应用到父代码中。
  4. 评估(Evaluation)(EvaluatorAgent:生成的代码接受测试!
    • 语法检查(Syntax Check):代码是否为有效的 Python?
    • 执行(Execution):代码在临时隔离环境中运行,针对任务中定义的输入/输出示例进行测试。
    • 适应度评分(Fitness Scoring):程序根据正确性(通过多少测试用例)、效率(运行时间)和其他潜在指标进行评分。
  5. 数据库(Database)(DatabaseAgent:所有程序(代码、适应度评分、生成记录、谱系)都被存储,创建进化历史记录(目前为内存中)。
  6. 选择(Selection)(SelectionControllerAgent:“适者生存”原则的体现。此智能体选择:
    • 父代(Parents):来自当前世代有前途的程序,用于产生子代。
    • 幸存者(Survivors):来自当前种群和新子代中最好的程序,以进入下一代。
  7. 迭代(Iteration):此循环重复定义的代数,每一代都旨在产生比上一代更好的解决方案。
  8. 编排(Orchestration)(TaskManagerAgent:操作的大师,协调所有其他智能体并管理整体进化循环。

🚀 关键特性

  • LLM 驱动的代码生成:利用最先进的 LLMs,通过 LiteLLM,支持多个提供商(OpenAI, Anthropic, Google 等)。
  • 进化算法核心:通过选择、LLM 驱动的变异/错误修复(使用 diff)和生存来实现迭代改进。
  • 模块化智能体架构:轻松扩展或替换各个组件(例如,使用不同的 LLM、数据库或评估策略)。
  • 自动化程序评估:语法检查和针对用户提供的示例的功能测试。代码执行使用 Docker 容器进行沙箱化,以提高安全性和依赖管理,并配备可配置的超时机制。
  • 配置管理:通过 config/settings.py.env 轻松调整参数,如种群大小、代数、LLM 模型、API 设置和 Docker 配置。
  • 详细日志:全面的日志提供对进化过程每一步的洞察。
  • 基于差异的变异:系统设计为使用差异进行变异和错误修复,允许 LLM 进行更有针对性的代码修改。
  • 开源与可扩展:使用 Python 构建,专为实验和社区贡献而设计。

📂 项目结构

./
├── code_generator/      # Agent responsible for generating code using LLMs.
├── database_agent/      # Agent for managing the storage and retrieval of programs and their metadata.
├── evaluator_agent/     # Agent that evaluates the generated code for syntax, execution, and fitness.
├── prompt_designer/     # Agent that crafts prompts for the LLM for initial generation, mutation, and bug fixing.
├── selection_controller/  # Agent that implements the selection strategy for parent and survivor programs.
├── task_manager/        # Agent that orchestrates the overall evolutionary loop and coordinates other agents.
├── config/                  # Holds configuration files, primarily `settings.py` for system parameters and API keys.
├── core/                    # Defines core data structures and interfaces, like `Program` and `TaskDefinition`.
├── tests/                   # Includes unit and integration tests to ensure code quality and correctness.
├── main.py                  # The main entry point to run the OpenAlpha_Evolve system and start an evolutionary run.
├── requirements.txt         # Lists all Python package dependencies required to run the project.
├── .env.example             # An example file showing the environment variables needed, such as API keys. Copy this to `.env` and fill in your values.
├── .gitignore               # Specifies intentionally untracked files that Git should ignore (e.g., `.env`, `__pycache__/`).
├── LICENSE.md               # Contains the full text of the MIT License under which the project is distributed.
└── README.md                # This file! Provides an overview of the project, setup instructions, and documentation.

🏁 入门指南

  1. 前置条件

    • Python 3.10+
    • pip (包管理工具)
    • git (版本控制工具)
    • Docker:用于沙箱代码评估。请确保已安装并运行 Docker Desktop(Windows/Mac)或 Docker Engine(Linux)。访问 docker.com 获取安装说明。
  2. 克隆仓库

    git clone https://github.com/shyamsaktawat/OpenAlpha_Evolve.git
    cd OpenAlpha_Evolve
    
  3. 设置虚拟环境(推荐):

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  4. 安装依赖项

    pip install -r requirements.txt
    
  5. 设置环境变量(对 API 密钥至关重要):

    • 此步骤对于应用程序正确使用您的 API 密钥至关重要.env 文件存储您的敏感凭据和配置,覆盖 config/settings.py 中的默认占位符。
    • 通过复制示例创建您的个人环境文件:
      cp .env_example .env
      

    LLM 配置

    Google Cloud 认证(例如,通过应用程序默认凭证 (ADC) 或由 GOOGLE_APPLICATION_CREDENTIALS 指向的服务账号密钥)是使用 Google 大语言模型 (LLM) 的一种支持方法。

    要为 Google Cloud 设置环境变量,您可以使用以下任一方法。这些应添加到您的 .env 文件中:

    # For Google Cloud (Vertex AI / AI Studio)
    # Option 1: Using Application Default Credentials (ADC)
    # Ensure you have authenticated via gcloud CLI:
    # gcloud auth application-default login
    # Or set the GOOGLE_APPLICATION_CREDENTIALS environment variable:
    # GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
    
    # Option 2: Directly using an API Key for specific Google services (e.g., Gemini API)
    # GEMINI_API_KEY="your_gemini_api_key"
    

    本项目使用 LiteLLM 来接口连接各种 LLM 提供商。对于 Google Cloud 以外的提供商(例如 OpenAI, Anthropic, Cohere),请参阅 LiteLLM 文档 以了解所需的具体环境变量。常见示例包括:

    # OPENAI_API_KEY="your_openai_api_key"
    # ANTHROPIC_API_KEY="your_anthropic_api_key"
    # COHERE_API_KEY="your_cohere_api_key"
    

    将您选择的 LLM 提供商所需的必要 API 密钥变量添加到您的 .env 文件中。

  6. 运行 OpenAlpha_Evolve! 使用以下命令运行示例任务(Dijkstra 算法):

    python -m main examples/shortest_path.yaml
    

    在终端中查看日志以观察进化过程的展开!日志文件也默认保存到 alpha_evolve.log

  7. 启动 Gradio Web 界面 通过 Web 用户界面 (Web UI) 与系统交互。要启动 Gradio 应用:

    python app.py
    

    Gradio 将显示一个本地 URL(例如 http://127.0.0.1:7860)以及如果启用了公共分享链接。在浏览器中打开它以定义自定义任务并交互式地运行进化过程。


💡 定义您自己的算法挑战!

想用新问题挑战 OpenAlpha_Evolve 吗?这很简单!您可以通过两种方式定义您的任务:

1. 使用 YAML 文件(推荐)

examples 目录中创建一个具有以下结构的 YAML 文件:

task_id: "your_task_id"
task_description: |
  Your detailed problem description here.
  Be specific about function names, expected behavior, and constraints.
function_name: "your_function_name"
allowed_imports: ["module1", "module2"]

tests:
  - description: "Test group description" # Describes a group of related tests
    name: "Test group name" # A name for this test group
    test_cases: # This should be a list of individual test cases
      - input: [arg1, arg2]  # First test case
        output: expected_output # Expected result for this input
        # Each test case uses either 'output' for direct comparison
        # or 'validation_func' for more complex validation.
      - input: [arg_for_validation_func_1, arg_for_validation_func_2] # Second test case
        validation_func: |
          def validate(output_from_function):
              # Custom validation logic for this specific test case's output
              # For example, check if output is within a certain range,
              # or if it has specific properties.
              return isinstance(output_from_function, bool) and output_from_function is True

参见 examples/shortest_path.yaml 中的示例

2. 使用 Python 代码(旧版)

您仍然可以使用 TaskDefinition 类以编程方式定义任务:

from core.task_definition import TaskDefinition

task = TaskDefinition(
    id="your_task_id",
    description="Your detailed problem description",
    function_name_to_evolve="your_function_name",
    input_output_examples=[
        {"input": [arg1, arg2], "output": expected_output},
        # More examples...
    ],
    allowed_imports=["module1", "module2"]
)

任务定义的最佳实践

制定有效的任务定义是成功引导 OpenAlpha_Evolve 的关键。请考虑以下建议:

  • 清晰且无歧义:撰写任务描述时,仿佛向另一位开发者解释问题一样。尽量避免行话,或者清晰地解释它们。
  • 提供多样且全面的示例:测试用例是智能体 (Agent) 验证其生成代码的主要方式。
    • 包含典型用例
    • 覆盖边界情况(空输入、边界值等)
    • 包含测试不同逻辑路径的示例
    • 对于复杂检查使用验证函数
  • 从简单开始,然后增加复杂度:首先将复杂问题分解为更简单的版本。
  • 指定约束和边界情况:在描述中提及具体的约束和边界情况。
  • 定义预期的函数签名 (Function Signature):清楚地说明预期的函数名称和参数。
  • 迭代与优化:根据智能体 (Agent) 的表现审查并优化你的任务定义。

🔮 展望:未来演进


🤝 加入演进:贡献指南

这是一个开放的协作邀请!无论你是 AI 研究人员、Python 开发者,还是仅仅是一个爱好者,都欢迎你的贡献。

  • 报告 Bug (缺陷):发现问题了吗?请在 GitHub 上创建一个 Issue (问题)!
  • 建议功能:有让 OpenAlpha_Evolve 变得更好的想法吗?打开一个 Issue (问题) 来讨论它!
  • 提交拉取请求 (Pull Requests)
    • Fork (分叉) 仓库。
    • 为你的功能或修复创建新分支(git checkout -b feature/your-feature-name)。
    • 编写清晰、文档完善的代码。
    • 如果适用,为你的更改添加测试。
    • 确保你的更改不会破坏现有功能。
    • 提交一个带有清晰更改描述的拉取请求 (Pull Request)!

让我们一起进化这个智能体 (Agent)!


📜 许可证

本项目采用 MIT 许可证 授权。详细信息请参阅 LICENSE.md 文件。


🙏 致谢

OpenAlpha_Evolve 自豪地受到 Google DeepMind 团队在 AlphaEvolve 以及其他基于大语言模型 (LLM) 的代码生成和自动发现相关研究的开创性工作的启发。本项目旨在使核心概念更容易被广泛实验和学习。我们站在巨人的肩膀上。


免责声明:这是一个实验性项目。生成的代码可能并不总是最优、正确或安全的。请务必彻底审查和测试代码,特别是在将其用于生产环境之前。

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架