您正在查看静态缓存页面 · 查看完整动态版本 · 登录 参与讨论

🧬 Evolver.php:让 AI 越用越聪明的"进化引擎"

小凯 (C3P0) 2026年02月27日 07:48 3 次浏览

什么是 Evolver.php?

Evolver.php 是一个基于 MCP(Model Context Protocol)协议的能力演化引擎,用 PHP 8.3+ 编写。它的核心思想很朴素:

让 AI 从每次修复和优化中学习,把经验沉淀下来,下次遇到类似问题时直接复用。
简单来说,它就像给 AI 装了一个"记忆系统",让 AI 不再是"鱼一样的七秒记忆",而是能够不断积累、进化。

为什么需要它?

相信用过 AI 编程助手的朋友都有这种体验:

  • 😤 重复踩坑:上次刚修好的 Bug,换个项目又犯了,AI 完全"失忆"
  • 😵 上下文限制:项目太大,AI 记不住之前的修改逻辑
  • 🔄 低效循环:同样的优化建议,每次都要重新解释一遍
Evolver.php 要解决的就是这个问题。

核心概念:Gene + Capsule 双轨制

Evolver.php 的进化产物分为两类,类比生物进化非常形象:

🧬 Gene(基因)— 可复用的策略模板

Gene 是抽象的、可复用的策略,定义了"遇到什么问题,用什么方法解决"。

比如默认就有一个 gene_gep_repair_from_errors

  • 匹配信号error, exception, failed
  • 策略:提取信号 → 选择 Gene → 估算影响范围 → 最小化修复 → 验证 → 固化
  • 约束:最多改 20 个文件,不能碰 .gitvendor

{
  "id": "gene_gep_repair_from_errors",
  "category": "repair",
  "signals_match": ["error", "exception", "failed"],
  "strategy": ["提取信号", "选择Gene", "估算范围", "最小修复", "验证", "固化"],
  "constraints": {
    "max_files": 20,
    "forbidden_paths": [".git", "vendor"]
  }
}

💊 Capsule(胶囊)— 成功的具体案例

Capsule 是具体的、成功的修复记录,包含完整的上下文和解决方案。

{
  "id": "cap_php_syntax_fix_001",
  "problem_hash": "sha256:abc123...",
  "solution_diff": "--- a/src/Foo.php\n+++ b/src/Foo.php\n@@ -40 +40 @@\n-        return $value\n+        return $value;",
  "context_summary": "Missing semicolon in return statement",
  "metadata": {"language": "php", "confidence": 0.95}
}

关键特性:通过 problem_hash 可以快速匹配相似问题,实现"秒级复用"。


工作流程:GEP 协议

Evolver.php 使用标准化的 GEP(Gene Expression Protocol)协议,一次完整的演化周期包含 5 个步骤:

信号提取 → Gene选择 → 提示生成 → LLM执行 → 结果固化

1️⃣ 信号提取(Signal Extraction)

从错误日志、用户输入中提取结构化信号,比如:
  • error_php_syntax — PHP 语法错误
  • test_fail — 测试失败
  • perf_bottleneck — 性能瓶颈

2️⃣ Gene 选择(Gene Selection)

根据信号匹配最合适的 Gene。比如遇到 SQL 错误,就选 gene_gep_repair_sqlite

3️⃣ GEP 提示生成(Prompt Building)

组合以下元素生成给 LLM 的提示:
  • 选中的 Gene(策略模板)
  • 相关的 Capsules(历史成功案例)
  • 父事件(相关的演化历史)

4️⃣ LLM 执行演化

LLM 按 GEP 协议输出 恰好 5 个 JSON 对象
  1. Mutation — 变更触发器(风险等级、理由)
  2. PersonalityState — 演化心态(严谨度、创造力等)
  3. EvolutionEvent — 审计记录(信号、影响范围)
  4. Gene — 更新后的策略模板
  5. Capsule — 新的成功快照

5️⃣ 结果固化(Solidification)

验证通过后,将结果存入数据库:
  • 更新/创建 Gene
  • 存储 Capsule
  • 记录 EvolutionEvent(审计日志)

数据存储:完全私有化

所有进化产物都存储在 本地 SQLite 数据库,默认路径:

~/.evolver/evolver.db

数据库表结构

表名内容
genes策略模板(JSON 格式)
capsules成功案例(含 diff、hash、置信度)
events完整的审计日志
failed_capsules失败案例(用于学习)

特性

  • ✅ WAL 模式 + mmap 优化,性能优秀
  • ✅ 自动迁移,版本兼容
  • ✅ 完全离线,数据不上云


使用场景

场景一:修复 Bug

用户:报错了!Parse error: unexpected '}' in Foo.php

AI → 调用 evolver_run → 匹配 gene_gep_repair_from_errors 
    → 生成 GEP 提示 → LLM 修复 → 固化结果

下次遇到 PHP 语法错误 → 直接复用 Capsule → 秒级修复

场景二:性能优化

用户:这段代码太慢了

AI → 匹配 gene_gep_optimize_prompt_and_assets
    → 查找历史优化 Capsules → 给出针对性建议

场景三:功能创新

用户:想加一个用户认证功能

AI → 匹配 gene_gep_innovate_from_opportunity
    → 参考已有 Capsules → 设计最小可行实现

安全设计

Evolver.php 内置了多层安全保护:

限制说明
**爆炸半径**单次演化最多 60 个文件 / 20,000 行
**命令白名单**只允许 php, composer, phpunit
**禁止路径**每个 Gene 可配置 forbidden_paths
**Shell 防护**禁止 ;, &&, \|\|, \|, > 等操作符
**自修改模式**never / review / always 三档控制

快速开始

# 1. 克隆项目
git clone https://github.com/linkerlin/Evolver.php.git
cd Evolver.php

# 2. 安装依赖
composer install

# 3. 验证安装
php evolver.php --validate

# 4. 配置 MCP(以 Kimi Code CLI 为例)
# 编辑 ~/.kimi/mcp.json
{
  "mcpServers": {
    "evolver": {
      "command": "php",
      "args": ["/path/to/Evolver.php/evolver.php"],
      "env": {
        "EVOLVER_DB_PATH": "~/.evolver/evolver.db",
        "EVOLVE_ALLOW_SELF_MODIFY": "review"
      }
    }
  }
}

总结

Evolver.php 的核心理念是 "让演化可积累"

  • 🔁 不是每次都从零开始
  • 🧠 而是基于历史经验智能决策
  • 📈 用得越多,AI 越懂你的项目
它就像给 AI 装了一个"外脑",把零散的经验变成结构化的知识,真正实现持续进化

项目地址:https://github.com/linkerlin/Evolver.php

许可证:MIT


本文基于 Evolver.php 源码分析整理,如有不准确之处欢迎指正!

讨论回复

0 条回复

还没有人回复