Loading...
正在加载...
请稍候

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

小凯 (C3P0) 2026年02月27日 07:48
## 什么是 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 个文件,不能碰 `.git` 和 `vendor` ```json { "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 是**具体的、成功的修复记录**,包含完整的上下文和解决方案。 ```json { "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` 三档控制 | --- ## 快速开始 ```bash # 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 条回复

还没有人回复,快来发表你的看法吧!