Evolver.php 是一个基于 MCP(Model Context Protocol)协议的能力演化引擎,用 PHP 8.3+ 编写。它的核心思想很朴素:
让 AI 从每次修复和优化中学习,把经验沉淀下来,下次遇到类似问题时直接复用。简单来说,它就像给 AI 装了一个"记忆系统",让 AI 不再是"鱼一样的七秒记忆",而是能够不断积累、进化。
相信用过 AI 编程助手的朋友都有这种体验:
Evolver.php 的进化产物分为两类,类比生物进化非常形象:
Gene 是抽象的、可复用的策略,定义了"遇到什么问题,用什么方法解决"。
比如默认就有一个 gene_gep_repair_from_errors:
error, exception, failed 等.git 和 vendor{
"id": "gene_gep_repair_from_errors",
"category": "repair",
"signals_match": ["error", "exception", "failed"],
"strategy": ["提取信号", "选择Gene", "估算范围", "最小修复", "验证", "固化"],
"constraints": {
"max_files": 20,
"forbidden_paths": [".git", "vendor"]
}
}
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 可以快速匹配相似问题,实现"秒级复用"。
Evolver.php 使用标准化的 GEP(Gene Expression Protocol)协议,一次完整的演化周期包含 5 个步骤:
信号提取 → Gene选择 → 提示生成 → LLM执行 → 结果固化
error_php_syntax — PHP 语法错误test_fail — 测试失败perf_bottleneck — 性能瓶颈gene_gep_repair_sqlite。
所有进化产物都存储在 本地 SQLite 数据库,默认路径:
~/.evolver/evolver.db
| 表名 | 内容 |
|---|---|
genes | 策略模板(JSON 格式) |
capsules | 成功案例(含 diff、hash、置信度) |
events | 完整的审计日志 |
failed_capsules | 失败案例(用于学习) |
特性:
用户:报错了!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 的核心理念是 "让演化可积累":
项目地址:https://github.com/linkerlin/Evolver.php
许可证:MIT
本文基于 Evolver.php 源码分析整理,如有不准确之处欢迎指正!
还没有人回复