🧬 Capability Evolver 的 PHP 实现版本,支持 MCP 服务,部署简单,数据私有化。
- MCP stdio 服务器 — JSON-RPC 2.0 协议通过 stdin/stdout 通信,零平台依赖
- GEP 协议 — 标准化的演化流程,包含 5 个必需对象(Mutation → PersonalityState → EvolutionEvent → Gene → Capsule)
- 信号驱动 — 从日志/上下文提取信号,去除重复,检测修复循环
- Gene/Capsule 双轨制 — Genes = 可复用策略模板,Capsules = 成功结果快照
- SQLite 存储 — WAL 模式 + mmap 优化,完全本地化/私有化
- 内置 Genes — 首次运行自动初始化 5 个默认 genes(repair、optimize、innovate、SQLite、security)
- 安全模型 — 爆炸半径限制(60 文件/20000 行)、验证命令白名单、禁止路径保护
- 自动初始化 — 自动创建目录、数据库健康检查、自动迁移
- PHP 8.3+
sqlite3PHP 扩展(默认已启用)pdo_sqlitePHP 扩展(默认已启用)
git clone https://github.com/linkerlin/Evolver.php.git
cd Evolver.php
composer install
php evolver.php --validate编辑 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):
{
"mcpServers": {
"evolver": {
"command": "php",
"args": ["/path/to/Evolver.php/evolver.php"],
"env": {
"EVOLVER_DB_PATH": "/path/to/your/evolver.db",
"EVOLVE_ALLOW_SELF_MODIFY": "review"
}
}
}
}编辑 ~/.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"
}
}
}
}注意:Kimi Code CLI 完整支持 MCP,是 Evolver.php 的推荐客户端。
编辑 ~/.gemini/config.json:
{
"mcpServers": {
"evolver": {
"command": "php",
"args": ["/path/to/Evolver.php/evolver.php"],
"env": {
"EVOLVER_DB_PATH": "~/.evolver/evolver.db",
"EVOLVE_ALLOW_SELF_MODIFY": "review"
}
}
}
}警告:Gemini CLI 的 MCP 实现存在已知兼容性问题。建议使用 Kimi Code CLI。
如果未指定 EVOLVER_DB_PATH,默认值为 ~/.evolver/evolver.db。
首次运行时会自动创建目录和数据库文件。
为保证每次演化都有可复现的后馈,请严格按以下顺序执行:
- evolver_run — 根据 signals 选 Gene/Capsule,生成 GEP 提示
- 执行 Mutation — 人类或代理按提示真实修改代码/配置
- 运行 validation — 执行 Gene 中声明的验证命令(如
composer test、php -l) - evolver_solidify — 固化结果:引擎根据 violations + 验证结果 + canary 计算 outcome,写入 EvolutionEvent(成功与失败都会记录)
每次演化结束都应调用 evolver_solidify,并传入本次 evolver_run 返回的 run_id 与 selector_mode,这样数据库里才会有带 outcome.status 的 EvolutionEvent,且 run→solidify 闭环覆盖率(D1)与 反事实/ A/B 按 mode 分组(F2/E2)才可统计。默认 Genes 已配置至少一条 validation;若自建 Gene,可配置分层验证(Level 0/1/2),遇败即停(见方案 D2)。
| 工具 | 说明 |
|---|---|
evolver_run |
运行演化周期:提取信号、选择 Gene/Capsule、生成 GEP 提示 |
evolver_solidify |
固化结果:验证、记录 EvolutionEvent、更新 Gene、存储 Capsule |
evolver_extract_signals |
从日志内容提取演化信号 |
evolver_list_genes |
列出可用 Genes(支持按分类筛选) |
evolver_list_capsules |
列出可用 Capsules |
evolver_list_events |
查看最近演化事件 |
evolver_metrics |
后馈演化核心指标与周报(闭环覆盖率、成功率、代价、归因等) |
evolver_upsert_gene |
创建或更新 Gene |
evolver_delete_gene |
删除 Gene |
evolver_stats |
获取存储统计信息 |
evolver_safety_status |
获取当前安全状态 |
evolver_cleanup |
执行清理操作 |
evolver_sync_to_hub |
同步资产到 EvoMap Hub |
{
"name": "evolver_run",
"arguments": {
"context": "[ERROR] TypeError in module: null pointer dereference",
"strategy": "balanced"
}
}{
"name": "evolver_solidify",
"arguments": {
"intent": "repair",
"summary": "Fixed null pointer by adding null check in module",
"signals": ["log_error"],
"blastRadius": {"files": 1, "lines": 5}
}
}{
"name": "evolver_extract_signals",
"arguments": {
"logContent": "2024-01-01 [ERROR] Connection timeout after 30s"
}
}| 策略 | 说明 |
|---|---|
balanced |
默认 — 按比例处理错误和机会 |
innovate |
最大化新功能和能力扩展 |
harden |
聚焦稳定性、安全性和鲁棒性 |
repair-only |
紧急模式 — 仅修复错误,无创新 |
通过 EVOLVE_ALLOW_SELF_MODIFY 环境变量设置:
| 模式 | 说明 |
|---|---|
never |
完全禁用自修改,仅诊断 |
review |
所有修改需要人工确认(推荐) |
always |
完全自动化(谨慎使用) |
当 evolver_run 生成 GEP 提示时,LLM 必须按顺序输出恰好 5 个 JSON 对象(原始格式,无 markdown):
- Mutation — 变更触发器,包含风险等级和理由
- PersonalityState — 演化心态(rigor、creativity、verbosity、risk_tolerance、obedience)
- EvolutionEvent — 可审计记录,包含父链、信号、爆炸半径
- Gene — 可复用策略模板(创建新的或更新现有的)
- Capsule — 成功快照,供未来复用
┌─────────────────────────────────────────┐
│ MCP stdio (evolver.php) │
│ - JSON-RPC 2.0 over stdin/stdout │
├─────────────────────────────────────────┤
│ McpServer.php │
│ - Tool dispatch, protocol handling │
├─────────────────────────────────────────┤
│ Core Engines │
│ - SignalExtractor (signal detection) │
│ - GeneSelector (gene/capsule matching) │
│ - PromptBuilder (GEP prompt assembly) │
│ - SolidifyEngine (validation + record) │
├─────────────────────────────────────────┤
│ Storage Layer │
│ - GepAssetStore (genes/capsules/events) │
│ - Database (SQLite WAL + mmap) │
│ - Auto-migration & health check │
└─────────────────────────────────────────┘
composer test| 变量 | 默认值 | 说明 |
|---|---|---|
EVOLVER_DB_PATH |
~/.evolver/evolver.db |
SQLite 数据库文件路径 |
EVOLVE_ALLOW_SELF_MODIFY |
always |
安全模式:never/review/always |
A2A_HUB_URL |
- | EvoMap Hub 同步地址 |
A2A_NODE_SECRET |
- | 节点认证密钥 |
- 验证命令白名单:仅允许
php、composer、phpunit、phpcs、phpstan命令 - 禁止 shell 操作符:
;、&&、||、|、>、<、$()都会被拒绝 - 爆炸半径限制:每次演化的硬限制为 60 个文件和 20,000 行
- Gene 约束强制执行:每个 gene 指定自己的
max_files和forbidden_paths - 源文件保护:核心引擎文件受保护,防止自修改
MIT