Evolver.php 使用指南补充
接上一条回复,这里提供更详细的使用教程和实际案例。
🚀 快速开始(5分钟上手)
步骤 1: 安装
git clone https://github.com/linkerlin/Evolver.php.git
cd Evolver.php
composer install
php evolver.php --validate
步骤 2: 配置 Claude Desktop
编辑配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"evolver": {
"command": "php",
"args": ["/path/to/Evolver.php/evolver.php"],
"env": {
"EVOLVER_DB_PATH": "/path/to/evolver.db",
"EVOLVE_ALLOW_SELF_MODIFY": "review"
}
}
}
}
重启 Claude Desktop,你应该能看到 🔧 工具图标。
📖 实战案例
案例 1: 修复 PHP 语法错误
场景: 你的 PHP 脚本报错了
操作流程:
1️⃣ 提取错误信号
调用: evolver_extract_signals
参数: {
"logContent": "PHP Parse error: syntax error, unexpected '}' in /app/src/User.php on line 45"
}
返回: {
"signals": ["log_error", "errsig:PHP Parse error..."],
"hasErrorSignal": true
}
2️⃣ 运行进化分析
调用: evolver_run
参数: {
"context": "PHP Parse error: syntax error, unexpected '}' in /app/src/User.php on line 45. The file contains a User class with methods for authentication.",
"strategy": "repair-only"
}
返回: {
"signals": [...],
"selectedGene": {
"id": "gene_gep_repair_from_errors",
"category": "repair"
},
"prompt": "GEP -- EVOLUTION PROTOCOL..." // 给 LLM 的完整提示词
}
3️⃣ 应用修复后固化
调用: evolver_solidify
参数: {
"intent": "repair",
"summary": "Fixed syntax error by removing extra closing brace",
"signals": ["log_error", "errsig:PHP Parse error..."],
"blastRadius": {"files": 1, "lines": 1},
"modifiedFiles": ["src/User.php"]
}
案例 2: 添加新功能(JWT 认证)
场景: 需要为用户系统添加 JWT 认证
操作流程:
1️⃣ 运行创新策略
调用: evolver_run
参数: {
"context": "Add JWT authentication to the UserController. Need login endpoint that returns token, and middleware to validate tokens.",
"strategy": "innovate"
}
2️⃣ 获取实现方案
系统会返回:
- 选中的创新 Gene
- 完整的 GEP 提示词(包含 5 个必需对象)
- 可复用的 Capsule 建议
3️⃣
实现后记录
调用: evolver_solidify
参数: {
"intent": "innovate",
"summary": "Implemented JWT authentication with login endpoint and middleware",
"signals": ["user_feature_request"],
"blastRadius": {"files": 3, "lines": 150}
}
案例 3: 性能优化
场景: API 响应太慢
调用: evolver_run
参数: {
"context": "API endpoint /api/users is very slow, taking 3-5 seconds to respond. Database query seems to be the bottleneck.",
"strategy": "harden"
}
🛡️ 安全模式实战
开发环境(review 模式)
export EVOLVE_ALLOW_SELF_MODIFY=review
效果:
- Evolver 会生成修改建议
- 不会自动应用修改
- 你需要人工审查后决定
生产环境(never 模式)
export EVOLVE_ALLOW_SELF_MODIFY=never
效果:
CI/CD 环境(always 模式)
export EVOLVE_ALLOW_SELF_MODIFY=always
效果:
🔍 查看系统状态
查看统计信息
调用: evolver_stats
返回: {
"genes": 5,
"capsules": 12,
"events": 45,
"failed_capsules": 2,
"pending_sync": 3
}
查看安全状态
调用: evolver_safety_status
返回: {
"safety_mode": "review",
"self_modify_allowed": true,
"review_required": true,
"source_protection": {
"protected_paths": ["src/McpServer.php", "evolver.php"]
}
}
查看可用策略(Genes)
调用: evolver_list_genes
返回: [
{
"id": "gene_gep_repair_from_errors",
"category": "repair",
"signals_match": ["error", "exception", "failed"]
},
...
]
查看成功案例(Capsules)
调用: evolver_list_capsules
参数: {"limit": 5}
返回: [
{
"id": "capsule_1234567890_abc123",
"gene": "gene_gep_repair_from_errors",
"summary": "Fixed null pointer by adding null check",
"confidence": 0.95,
"success_streak": 3
}
]
🧹 运维操作
清理旧数据
调用: evolver_cleanup
返回: {
"logs_cleaned": 5,
"temp_files_removed": 12,
"space_freed_bytes": 1048576,
"disk_space_ok": true
}
同步到 EvoMap Hub
调用: evolver_sync_to_hub
返回: {
"ok": true,
"synced": {
"genes": 2,
"capsules": 5,
"errors": []
}
}
💡 最佳实践
1. 从小处开始
- 先在小项目上试用
- 熟悉后再用于核心项目
- 始终从
review 模式开始
2. 信号命名规范
- 使用描述性名称:
api_timeout, db_connection_error - 避免过于笼统的信号
- 保持信号一致性
3. 固化最佳实践
- 每次成功修复后立即固化
- 写清晰的 summary
- 准确记录 blast_radius
4. 定期维护
# 每周运行一次清理
php evolver.php --cleanup
# 检查磁盘空间
php evolver.php --stats
❓ 常见问题
Q: 支持哪些 PHP 版本?
A: PHP 8.3+,使用了强类型和最新特性。
Q: 数据库文件在哪里?
A: 默认 ./data/evolver.db,可通过 EVOLVER_DB_PATH 自定义。
Q: 可以和其他 MCP 服务器一起用吗?
A: 可以,Evolver 是标准的 MCP stdio 服务器。
Q: 网络同步是必需的吗?
A: 不是,完全支持离线使用。网络同步是可选功能。
Q: 如何备份我的进化数据?
A: 直接备份 SQLite 数据库文件即可。
📚 更多资源
- GitHub: https://github.com/linkerlin/Evolver.php
- Issues: https://github.com/linkerlin/Evolver.php/issues
- GEP 协议: 参考本话题的深度研究报告
欢迎试用并反馈问题!🎉