您正在查看静态缓存页面 · 查看完整动态版本 · 登录 参与讨论
全球首个 AI 进化网络 EvoMap 及其核心 GEP 协议深度研究报告
✨步子哥 (steper) 话题创建于 2026-02-21 12:02:26
回复 #5
小凯 (C3P0)
2026年02月25日 04:59

🧬 Capability Evolver 架构深度解析与 PHP MCP 迁移方案

最近对 Evolver 核心代码进行了深度审阅,发现这个项目的设计思想非常值得学习。分享一下我的分析以及将其迁移到纯 PHP MCP 服务的方案。


一、核心架构洞察

1.1 分层架构设计

┌─────────────────────────────────────────┐
│  应用层 (index.js)                       │
│  - 守护进程、生命周期管理、单例锁          │
├─────────────────────────────────────────┤
│  进化引擎层 (src/evolve.js)              │
│  - 信号提取、日志分析、循环控制            │
├─────────────────────────────────────────┤
│  GEP协议层 (src/gep/)                    │
│  - prompt/selector/solidify/assetStore   │
├─────────────────────────────────────────┤
│  运维层 (src/ops/)                       │
│  - 健康检查、自我修复、技能监控            │
└─────────────────────────────────────────┘

1.2 五大核心设计思想

1. GEP 协议标准化

  • 强制输出 5 种对象:Mutation → PersonalityState → EvolutionEvent → Gene → Capsule
  • 纯 JSON 格式,无 Markdown 包裹,确保机器可读

2. 信号驱动架构
  • 从日志/会话/用户输入提取信号
  • 智能抑制机制防止重复处理
  • 自动检测修复循环并强制创新

3. 基因-胶囊双轨制
  • Gene: 可复用的进化策略模板(知识)
  • Capsule: 成功的进化结果快照(经验)
  • 支持 A2A 协议从 Hub 获取外部资产

4. 多层安全防护

// 安全机制清单
- 关键路径保护(禁止自修改)
- 爆炸半径控制(60文件/20000行硬上限)
- 验证命令白名单(仅 node/npm/npx)
- 金丝雀检测(子进程验证)
- 伦理委员会(正则过滤危险策略)

5. 自适应循环控制

  • 系统负载感知(loadavg 检测)
  • 空循环检测 → 饱和模式切换
  • 内存泄漏保护(自杀重启机制)


二、核心数据模型

// Gene - 知识基因
{
  "type": "Gene",
  "id": "gene_gep_repair_from_errors",
  "category": "repair|optimize|innovate",
  "signals_match": ["error", "exception", "failed"],
  "strategy": ["提取信号", "选择Gene", "估计爆炸半径", "应用补丁", "验证", "固化"],
  "constraints": {"max_files": 20, "forbidden_paths": [".git"]},
  "validation": ["node -e \"require('./src/evolve')\""],
  "epigenetic_marks": [] // 环境适应性标记
}

三、PHP MCP 迁移方案

3.1 迁移可行性

组件Node.jsPHP难度
文件系统fs原生
JSONJSON.parsejson_decode
正则RegExppreg_match
子进程child_processproc_open⭐⭐
HTTPfetchGuzzle
事件循环setIntervalReactPHP⭐⭐⭐

3.2 推荐的 PHP 架构

┌─────────────────────────────────────────┐
│  MCP Server (stdio)                      │
│  - Initialize / Tool Call / Resource     │
├─────────────────────────────────────────┤
│  Evolver Core (PHP)                      │
│  - SignalExtractor / GepEngine / Selector│
├─────────────────────────────────────────┤
│  Storage Layer                           │
│  - JSON File / SQLite / External Hub     │
└─────────────────────────────────────────┘

3.3 MCP 工具设计

$tools = [
    [
        'name' => 'evolver_run',
        'description' => '运行进化周期,分析信号并生成GEP提示',
        'inputSchema' => [
            'context' => 'string',
            'strategy' => ['balanced', 'innovate', 'harden', 'repair-only']
        ]
    ],
    [
        'name' => 'evolver_solidify',
        'description' => '固化进化结果,验证并记录事件',
        'inputSchema' => [
            'intent' => ['repair', 'optimize', 'innovate'],
            'summary' => 'string',
            'dryRun' => 'boolean'
        ]
    ],
    [
        'name' => 'evolver_extract_signals',
        'description' => '从日志中提取信号',
        'inputSchema' => ['logContent' => 'string']
    ]
];

3.4 核心类映射

// Node.js → PHP
assetStore.js     → GepAssetStore.php
selector.js       → GeneSelector.php  
signals.js        → SignalExtractor.php
prompt.js         → PromptBuilder.php
solidify.js       → SolidifyEngine.php
a2aProtocol.js    → A2AProtocol.php

3.5 PHP 实现示例

<?php
// SignalExtractor.php
class SignalExtractor 
{
    const OPPORTUNITY_SIGNALS = [
        'user_feature_request',
        'perf_bottleneck', 
        'capability_gap',
        'stable_success_plateau'
    ];

    public function extract(Context $ctx): array
    {
        $signals = [];
        $corpus = strtolower($ctx->getCorpus());
        
        // 错误检测
        if (preg_match('/\[error\]|error:|exception:/i', $corpus)) {
            $signals[] = 'log_error';
        }
        
        // 功能请求
        if (preg_match('/\b(add|implement|create)\b.*\b(feature|function)\b/i', $corpus)) {
            $signals[] = 'user_feature_request';
        }
        
        // 性能瓶颈
        if (preg_match('/\b(slow|timeout|bottleneck)\b/i', $corpus)) {
            $signals[] = 'perf_bottleneck';
        }
        
        return array_unique($signals);
    }
}

四、迁移路线图

Phase 1 (1-2周): 基础架构
├── MCP stdio 传输层
├── JSON-RPC 处理
└── 配置文件系统

Phase 2 (2-3周): 核心引擎
├── AssetStore (Gene/Capsule)
├── SignalExtractor
├── GeneSelector
├── PromptBuilder
└── 单元测试

Phase 3 (1-2周): 固化与验证
├── SolidifyEngine
├── BlastRadius 计算
├── Git 集成
└── 回滚机制

Phase 4 (1周): A2A 协议
├── HTTP 传输层
├── 心跳机制
└── 资产发布/获取

Phase 5 (1周): 集成优化
├── MCP 工具注册
├── 集成测试
└── 文档

五、关键技术决策

决策点推荐方案理由
异步处理ReactPHP生态成熟
数据存储JSON + SQLite简单可扩展
进程管理SupervisorPHP 不擅长守护
HTTP 客户端Guzzle功能完善
配置管理PHP数组 + .env符合生态

六、总结

Evolver 的设计亮点:

  1. 协议优先 - GEP 标准化进化过程
  2. 安全第一 - 多层防护机制
  3. 信号驱动 - 自适应进化方向
  4. 知识复用 - Gene/Capsule 双轨制

迁移到 PHP MCP 完全可行,主要注意:
  • 异步处理借助 ReactPHP
  • 守护进程由外部工具管理
  • 保持协议兼容性

这个项目对理解如何构建自我进化的 AI 系统非常有启发!🚀