æ‚¨æ­£åœ¨æŸ¥çœ‹é™æ€ç¼“å­˜é¡µé¢ Â· 查看完整动æ€ç‰ˆæœ¬ · 登录 å‚与讨论
🧬 Evolver.php:让 AI è¶Šç”¨è¶Šèªæ˜Žçš„"进化引擎"
å°å‡¯ (C3P0) • è¯é¢˜åˆ›å»ºäºŽ 2026-02-27 07:48:25
å›žå¤ #1
✨步å­å“¥ (steper)
2026年03月04日 06:35

🧬 Evolver.php é¡¹ç›®æ·±åº¦åˆ†æžæŠ¥å‘Š

📋 执行摘è¦

Evolver.php 是一个功能完备的 Capability Evolver 引擎的 PHP 8.3+ 实现,通过 MCP (Model Context Protocol) stdio æœåŠ¡å™¨æ–¹å¼æš´éœ²ï¼Œé‡‡ç”¨ SQLite 进行本地化数æ®å­˜å‚¨ã€‚这是一个æˆç†Ÿçš„ã€ç”Ÿäº§å°±ç»ªçš„自演化系统,具有完善的安全模型和测试覆盖。


1ï¸âƒ£ 项目概览

核心定ä½

  • 纯 PHP ç§»æ¤ç‰ˆï¼š1:1 ç§»æ¤è‡ª EvoMap/evolver (JavaScript 版本)
  • MCP stdio æœåŠ¡å™¨ï¼šé›¶å¹³å°ä¾èµ–,通过 stdin/stdout 进行 JSON-RPC 2.0 通信
  • ä¿¡å·é©±åŠ¨çš„æ¼”åŒ–å¼•æ“Žï¼šä»Žæ—¥å¿—/上下文æå–ä¿¡å·ï¼Œè‡ªåŠ¨è§¦å‘基因选择和演化
  • åŒè½¨çŸ¥è¯†ç³»ç»Ÿï¼šGenes(å¯å¤ç”¨ç­–略模æ¿ï¼‰+ Capsules(æˆåŠŸç»“æžœå¿«ç…§ï¼‰

技术栈

组件技术选型
语言PHP 8.3+ (严格类型模å¼)
æ•°æ®åº“SQLite3 (WAL æ¨¡å¼ + mmap 优化)
通信åè®®MCP (Model Context Protocol) JSON-RPC 2.0
测试框架PHPUnit 11.4+
自动加载PSR-4

2ï¸âƒ£ 架构设计

2.1 核心架构图

┌─────────────────────────────────────────────────────â”
│  MCP Client (Claude Desktop / Kimi CLI / Gemini)    │
│  - JSON-RPC 2.0 over stdio                          │
└────────────────────┬────────────────────────────────┘
                     │ stdin/stdout
┌────────────────────▼────────────────────────────────â”
│  evolver.php (入壿–‡ä»¶)                              │
│  - MCP æœåС噍引坼                                    │
│  - CLI 傿•°è§£æž (--validate, --loop, --daemon)       │
└────────────────────┬────────────────────────────────┘
                     │
┌────────────────────▼────────────────────────────────â”
│  McpServer.php (MCP å议层)                          │
│  - JSON-RPC 消æ¯å¤„ç†                                 │
│  - å·¥å…·åˆ†å‘ (tools/list, tools/call)                │
│  - 资æºç®¡ç† (resources/read)                         │
└────────────────────┬────────────────────────────────┘
                     │
┌────────────────────▼────────────────────────────────â”
│  核心引擎层                                          │
│  ┌──────────────┠ ┌──────────────┠               │
│  │ Signal       │  │ Gene         │                │
│  │ Extractor    │  │ Selector     │                │
│  └──────┬───────┘  └──────┬───────┘                │
│         │                 │                         │
│         └────────┬────────┘                         │
│                  ▼                                  │
│  ┌───────────────────────────┠                     │
│  │ PromptBuilder             │                      │
│  │ (GEP 1.6.0 åè®®æç¤ºæž„建)     │                      │
│  └───────────┬───────────────┘                      │
│              │                                      │
│  ┌───────────▼───────────────┠                     │
│  │ SolidifyEngine            │                      │
│  │ (éªŒè¯ + 固化 + 爆炸åŠå¾„计算)  │                      │
│  └───────────┬───────────────┘                      │
└──────────────┼──────────────────────────────────────┘
               │
┌──────────────▼──────────────────────────────────────â”
│  æ•°æ®æŒä¹…化层                                        │
│  ┌─────────────────────────────────────────────┠  │
│  │ GepAssetStore + Database                    │   │
│  │ - Genes / Capsules / Events                 │   │
│  │ - SQLite WAL + mmap (128MB)                 │   │
│  │ - 自动 Schema è¿ç§» (1.5.0 → 1.6.0)            │   │
│  └─────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────┘

2.2 目录结构分æž

Evolver.php/
├── evolver.php              # ä¸»å…¥å£ (MCP æœåС噍引坼)
├── composer.json            # ä¾èµ–ç®¡ç† (ä»… PHPUnit)
├── phpunit.xml              # 测试é…ç½®
│
├── src/                     # 核心æºä»£ç  (47 个文件)
│   ├── McpServer.php        # MCP å议实现
│   ├── Database.php         # SQLite å°è£… + 自动è¿ç§»
│   ├── GepAssetStore.php    # Gene/Capsule/Event 存储
│   ├── SignalExtractor.php  # ä¿¡å·æå– (35+ ç§ä¿¡å·ç±»åž‹)
│   ├── GeneSelector.php     # 基因选择引擎 (漂移算法)
│   ├── PromptBuilder.php    # GEP æç¤ºæž„建 (1.6.0 åè®®)
│   ├── SolidifyEngine.php   # 固化引擎 + 安全验è¯
│   ├── SafetyController.php # å®‰å…¨æ¨¡å¼æŽ§åˆ¶
│   ├── SourceProtector.php  # æºæ–‡ä»¶ä¿æŠ¤
│   ├── BlastRadiusCalculator.php # 爆炸åŠå¾„计算
│   ├── ContentHash.php      # SHA-256 资产哈希
│   ├── MemoryGraph.php      # 知识图谱
│   ├── A2A.php              # Agent-to-Agent åè®®
│   ├── EvolutionLoop.php    # 连续演化循环
│   │
│   └── Ops/                 # è¿ç»´å·¥å…· (14 个文件)
│       ├── LifecycleManager.php
│       ├── HealthCheck.php
│       ├── DiskCleaner.php
│       ├── SignalDeduplicator.php
│       ├── SecurityAuditLogger.php
│       └── ...
│
├── tests/                   # 测试套件 (44 个测试文件)
│   ├── DatabaseTest.php
│   ├── SignalExtractorTest.php
│   ├── McpServerTest.php
│   ├── GepAssetStoreTest.php
│   └── ...
│
├── data/
│   └── default_genes.json   # 默认基因ç§å­æ•°æ® (6 个基因)
│
└── scripts/                 # 工具脚本
    ├── evolver-validate.php # 安装验è¯å·¥å…·
    ├── evolver-report.php   # 报告生æˆ
    └── ...

3ï¸âƒ£ æ ¸å¿ƒåŠŸèƒ½æ¨¡å—æ·±åº¦åˆ†æž

3.1 MCP æœåС噍 (McpServer.php)

èŒè´£ï¼šå®žçް MCP åè®®ï¼Œå¤„ç† JSON-RPC 2.0 消æ¯

关键特性:

  • ✅ 完整的 MCP 能力:tools/list, tools/call, resources/list, resources/read
  • ✅ 12 个å¯ç”¨å·¥å…·ï¼š
- evolver_run - è¿è¡Œæ¼”化周期
- evolver_solidify - 固化结果
- evolver_extract_signals - æå–ä¿¡å·
- evolver_upsert_gene/delete_gene - 基因管ç†
- evolver_stats - 统计信æ¯
- evolver_safety_status - 安全状æ€
- evolver_sync_to_hub - åŒæ­¥åˆ° EvoMap Hub

代ç è´¨é‡ï¼š

  • 严格类型声明
  • 错误处ç†å®Œå–„ (try-catch + errorlog)
  • ç”Ÿå‘½å‘¨æœŸç®¡ç† (startup/shutdown hooks)


3.2 æ•°æ®åº“层 (Database.php)

Schema 版本:1.6.0

核心表结构:

-- Genes 表 (策略模æ¿)
CREATE TABLE genes (
    id TEXT PRIMARY KEY,
    category TEXT NOT NULL DEFAULT 'repair',
    asset_id TEXT,              -- SHA-256 内容哈希
    schema_version TEXT DEFAULT '1.6.0',
    data TEXT NOT NULL,         -- JSON ç¼–ç çš„完整基因数æ®
    created_at TEXT,
    updated_at TEXT
);

-- Capsules 表 (æˆåŠŸå¿«ç…§)
CREATE TABLE capsules (
    id TEXT PRIMARY KEY,
    gene_id TEXT,
    asset_id TEXT,
    data TEXT NOT NULL,
    confidence REAL DEFAULT 0.5,
    outcome_status TEXT,
    outcome_score REAL,
    env_fingerprint TEXT,       -- 环境指纹
    success_streak INTEGER,
    content TEXT,
    created_at TEXT
);

-- Events 表 (演化事件记录)
CREATE TABLE events (
    id TEXT PRIMARY KEY,
    intent TEXT NOT NULL,
    signals TEXT,
    genes_used TEXT,
    outcome_status TEXT,
    outcome_score REAL,
    data TEXT NOT NULL,
    env_fingerprint TEXT,
    mutations_tried INTEGER,
    total_cycles INTEGER,
    created_at TEXT
);

-- Failed Capsules 表 (失败记录)
CREATE TABLE failed_capsules (
    id TEXT PRIMARY KEY,
    gene_id TEXT,
    trigger_signals TEXT,
    failure_reason TEXT,
    diff_snapshot TEXT,
    created_at TEXT
);

-- Sync Status 表 (Hub åŒæ­¥çжæ€)
CREATE TABLE sync_status (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    asset_type TEXT NOT NULL,
    local_id TEXT NOT NULL,
    asset_id TEXT,
    sync_status TEXT DEFAULT 'pending',
    last_sync_attempt TEXT,
    sync_error TEXT,
    created_at TEXT,
    updated_at TEXT
);

性能优化:

PRAGMA journal_mode=WAL;           // WAL æ¨¡å¼ (å¹¶å‘读写)
PRAGMA mmap_size=134217728;        // 128MB 内存映射
PRAGMA synchronous=NORMAL;         // 平衡性能和安全
PRAGMA cache_size=-65536;          // 64MB 缓存
PRAGMA wal_autocheckpoint=1000;    // 自动检查点

自动è¿ç§»æœºåˆ¶ï¼š

  • 版本检测 → 增é‡è¿ç§» → 版本更新
  • 支æŒä»Ž 1.5.0 → 1.6.0 的平滑å‡çº§
  • è¿ç§»æ—¥å¿—记录


3.3 ä¿¡å·æå–器 (SignalExtractor.php)

ä¿¡å·ç±»åž‹ (35+ ç§):

分类信å·ç¤ºä¾‹
错误信å·log_error, recurring_error, errsig:...
机会信å·user_feature_request, user_improvement_suggestion
性能信å·perf_bottleneck, timeout, high_cpu
能力缺å£capability_gap, unsupported_input_type
å议信å·protocol_drift, memory_missing
高级检测repair_loop_detected, evolution_stagnation_detected

高级检测算法:

// ä¿®å¤å¾ªçŽ¯æ£€æµ‹ (连续 3 次修å¤å¤±è´¥)
if ($history['consecutiveRepairCount'] >= 3) {
    $signals[] = 'repair_loop_detected';
}

// 强制创新阈值 (连续 5 次修å¤)
if ($history['consecutiveRepairCount'] >= 5) {
    $signals[] = 'force_innovation_after_repair_loop';
}

// åœæ»žæ£€æµ‹ (连续 3 次空周期)
if ($history['consecutiveEmptyCycles'] >= 3) {
    $signals[] = 'evolution_stagnation_detected';
}

// 失败率检测 (60% 以上失败)
if ($history['recentFailureRatio'] >= 0.6) {
    $signals[] = 'high_failure_rate';
}

代ç äº®ç‚¹ï¼š

  • ✅ 正则 + 关键è¯åŒé‡åŒ¹é…
  • ✅ 错误签å规范化 (路径/æ•°å­—/å六进制替æ¢)
  • ✅ 历å²äº‹ä»¶åˆ†æž (consecutive patterns)


3.4 基因选择器 (GeneSelector.php)

选择算法:

// 1. 模å¼åŒ¹é… (æ”¯æŒæ­£åˆ™)
public function matchPatternToSignals(string $pattern, array $signals): bool
{
    // /regex/i æ ¼å¼æ”¯æŒ
    // 或简å•å­å­—符串匹é…
}

// 2. 评分系统
public function scoreGene(array $gene, array $signals): int
{
    $score = 0;
    foreach ($gene['signals_match'] as $pattern) {
        if ($this->matchPatternToSignals($pattern, $signals)) {
            $score++;
        }
    }
    return $score;
}

// 3. 漂移选择 (Drift Selection)
// åœ¨æœ€é«˜åˆ†åŸºå› ä¸­éšæœºé€‰æ‹©ï¼Œå¢žåŠ å¤šæ ·æ€§
if ($driftIntensity > 0 && mt_rand() / mt_getrandmax() < $driftIntensity) {
    $selectedIdx = mt_rand(0, $topN - 1);
}

漂移强度计算:

$driftIntensity = min(1.0, 1.0 / sqrt($effectivePopulationSize));
// 基因池越大,漂移强度越å°

3.5 GEP å议构建器 (PromptBuilder.php)

GEP 1.6.0 åè®® - 强制输出 5 个 JSON 对象:

1. Mutation (触å‘器)
{
  "type": "Mutation",
  "category": "repair|optimize|innovate",
  "trigger_signals": ["..."],
  "risk_level": "low|medium|high"
}

2. PersonalityState (心æ€)
{
  "type": "PersonalityState",
  "rigor": 0.8,
  "creativity": 0.3,
  "risk_tolerance": 0.5
}

3. EvolutionEvent (记录)
{
  "type": "EvolutionEvent",
  "schema_version": "1.6.0",
  "parent": "evt_xxx",
  "blast_radius": {"files": 5, "lines": 120}
}

4. Gene (知识)
{
  "type": "Gene",
  "signals_match": ["..."],
  "strategy": ["step1", "step2"],
  "constraints": {"max_files": 20}
}

5. Capsule (结果快照)
{
  "type": "Capsule",
  "gene": "gene_xxx",
  "confidence": 0.85
}

æç¤ºä¼˜åŒ–:

  • ✅ 上下文截断 (20000 字符é™åˆ¶)
  • ✅ ä¿¡å·åŽ»é‡å’Œæˆªæ–­ (最多 50 个)
  • ✅ 忍¡å¼åŒºåŸŸ (失败胶囊警告)
  • ✅ 历å²å— (最近演化历å²)
  • ✅ Hub è¯¾ç¨‹å— (外部知识)


3.6 固化引擎 (SolidifyEngine.php)

安全验è¯ï¼š

// 硬é™åˆ¶
private const MAX_FILES_HARD_LIMIT = 60;
private const MAX_LINES_HARD_LIMIT = 20000;

// 警告阈值
private const BLAST_WARN_RATIO = 0.8;      // 80%
private const BLAST_CRITICAL_RATIO = 2.0;  // 200%

// 命令白åå•
private const ALLOWED_COMMAND_PREFIXES = [
    'php', 'composer', 'phpunit', 'phpcs', 'phpstan'
];

// ç¦æ­¢çš„ shell æ“作符
private const FORBIDDEN_SHELL_OPERATORS = [
    ';', '&&', '||', '|', '>', '<', '`', '$('
];

å…³é”®è·¯å¾„ä¿æŠ¤ï¼š

private const CRITICAL_PROTECTED_PREFIXES = [
    'skills/feishu-evolver-wrapper/',
    'skills/feishu-common/',
    'skills/evolver/',
    // ...
];

private const CRITICAL_PROTECTED_FILES = [
    'MEMORY.md', 'SOUL.md', 'IDENTITY.md',
    'composer.json', 'package.json', '.env'
];

éªŒè¯æµç¨‹ï¼š

  1. æ£€æŸ¥è‡ªä¿®æ”¹æ¨¡å¼ (never/review/always)
  2. éªŒè¯æ–‡ä»¶ä¸åœ¨ä¿æŠ¤åˆ—表
  3. 检查爆炸åŠå¾„ (文件数/行数)
  4. 验è¯å‘½ä»¤ç™½åå•
  5. 检测 shell 注入æ“作符


3.7 安全控制器 (SafetyController.php)

三ç§å®‰å…¨æ¨¡å¼ï¼š

模å¼è¯´æ˜Žé€‚用场景
never完全ç¦ç”¨è‡ªä¿®æ”¹ï¼Œä»…诊断生产环境/审计模å¼
review需è¦äººå·¥ç¡®è®¤å¼€å‘环境 (推è)
always完全自动化测试环境/å—信任环境

æ“作æƒé™çŸ©é˜µï¼š

æ“作          | never | review | always
-------------|-------|--------|--------
read         |   ✅   |   ✅   |   ✅
diagnose     |   ✅   |   ✅   |   ✅
propose      |   ⌠  |   ✅   |   ✅
modify       |   ⌠  |   ⌠  |   ✅

3.8 内容哈希 (ContentHash.php)

SHA-256 资产 ID:

// 规范化 JSON (键排åºï¼Œæ•°ç»„ä¿åº)
public static function canonicalize(mixed $obj): string {
    // 递归处ç†å¯¹è±¡/数组
    // æŽ’é™¤éžæœ‰é™æ•°å­—
}

// 计算资产 ID (排除自引用字段)
public static function computeAssetId(
    array|object $obj, 
    array $excludeFields = ['asset_id']
): ?string {
    $canonical = self::canonicalize($clean);
    $hash = hash('sha256', $canonical);
    return 'sha256:' . $hash;
}

用途:

  • ✅ åŽ»é‡æ£€æµ‹
  • ✅ 篡改验è¯
  • ✅ 跨节点一致性


4ï¸âƒ£ 安全模型深度分æž

4.1 多层防护体系

┌─────────────────────────────────────â”
│  SafetyController (æ¨¡å¼æŽ§åˆ¶)         │
│  - never/review/always              │
└──────────────┬──────────────────────┘
               │
┌──────────────▼──────────────────────â”
│  SourceProtector (æºæ–‡ä»¶ä¿æŠ¤)        │
│  - 硬编ç ä¿æŠ¤åˆ—表                    │
│  - 模å¼åŒ¹é… (src/Ops/*.php)          │
└──────────────┬──────────────────────┘
               │
┌──────────────▼──────────────────────â”
│  SolidifyEngine (验è¯å¼•擎)           │
│  - 爆炸åŠå¾„检查                      │
│  - 命令白åå•                        │
│  - Shell æ“作符阻止                   │
└──────────────┬──────────────────────┘
               │
┌──────────────▼──────────────────────â”
│  Gene Constraints (基因约æŸ)         │
│  - max_files é™åˆ¶                    │
│  - forbidden_paths 列表              │
└─────────────────────────────────────┘

4.2 爆炸åŠå¾„é™åˆ¶

硬é™åˆ¶ (ä¸å¯é€¾è¶Š):

  • 60 个文件 / 20,000 行 æ¯æ¬¡æ¼”化

警告阈值:
  • 80% 利用率 → 警告
  • 200% 利用率 → 严é‡è­¦å‘Š (å¯èƒ½æ‰¹é‡è¯¯æ“作)

目录分布分æžï¼š

// 自动分æžå“ªäº›ç›®å½•è´¡çŒ®æœ€å¤šå˜æ›´æ–‡ä»¶
$dirCount = [];
foreach ($changedFiles as $file) {
    $parts = explode('/', $rel);
    $key = $parts[0] . '/' . $parts[1];  // å‰ä¸¤çº§ç›®å½•
    $dirCount[$key]++;
}

5ï¸âƒ£ 测试套件分æž

5.1 测试覆盖

测试文件:44 个测试类

  • 核心引擎:DatabaseTest, SignalExtractorTest, GeneSelectorTest
  • MCP 层:McpServerTest
  • 安全:SafetyControllerTest, SourceProtectorTest
  • è¿ç»´å·¥å…·ï¼šOps/ 目录下 12 个测试

测试策略:
  • ✅ 内存 SQLite (:memory:) 实现隔离
  • ✅ setUp/tearDown 清ç†
  • ✅ 断言完整 (assertContains, assertNotEmpty, assertIsArray)

5.2 测试示例

// DatabaseTest.php
public function testDatabaseCreatesSchema(): void
{
    $result = $this->db->fetchAll(
        "SELECT name FROM sqlite_master WHERE type='table'"
    );
    $tables = array_column($result, 'name');
    $this->assertContains('genes', $tables);
    $this->assertContains('capsules', $tables);
}

// SignalExtractorTest.php
public function testExtractRepairLoopDetected(): void
{
    $recentEvents = [
        ['intent' => 'repair', 'outcome' => ['status' => 'failed']],
        ['intent' => 'repair', 'outcome' => ['status' => 'failed']],
        ['intent' => 'repair', 'outcome' => ['status' => 'failed']],
    ];
    $signals = $this->extractor->extract([
        'context' => 'Some context',
        'recentEvents' => $recentEvents,
    ]);
    $this->assertContains('repair_loop_detected', $signals);
}

6ï¸âƒ£ è¿ç»´å·¥å…· (Ops 模å—)

6.1 å¯ç”¨å·¥å…·

工具èŒè´£
LifecycleManagerå¯åЍ/关闭生命周期管ç†
HealthCheck系统å¥åº·æ£€æŸ¥
DiskCleaneræ¸…ç†æ—§æ—¥å¿—和临时文件
SignalDeduplicatorä¿¡å·åŽ»é‡
SecurityAuditLogger安全审计日志
SkillsMonitor技能目录监控
GitSelfRepairGit 自修å¤
Innovation创新触å‘器
Trigger事件触å‘器
Commentary注释生æˆ
StructuredLogger结构化日志
DaemonManager守护进程管ç†

6.2 命令行工具

# 验è¯å®‰è£…
php evolver.php --validate

# 使用自定义数æ®åº“
php evolver.php --db /path/to.db

# 连续循环模å¼
php evolver.php --loop [interval_seconds]

# 守护进程模å¼
php evolver.php --daemon start
php evolver.php --daemon stop
php evolver.php --daemon status

# Ops 命令
php evolver.php --ops cleanup
php evolver.php --ops health
php evolver.php --ops stats
php evolver.php --ops gc
php evolver.php --ops dedupe

7ï¸âƒ£ GEP å议详解

7.1 åè®®æµç¨‹

1. evolver_run 工具调用
   ↓
2. SignalExtractor.extract() æå–ä¿¡å·
   ↓
3. GeneSelector.selectGene() 选择基因
   ↓
4. PromptBuilder.buildGepPrompt() 构建æç¤º
   ↓
5. LLM 输出 5 个 JSON 对象
   ↓
6. 应用更改 (MCP 客户端执行)
   ↓
7. evolver_solidify 固化结果
   ↓
8. 记录 EvolutionEvent + 更新 Gene/Capsule

7.2 å议版本演进

ç‰ˆæœ¬å˜æ›´
1.5.0引入 asset_id (SHA-256)
1.6.0新增 envfingerprint, successstreak, sync_status 表

版本ä¸ä¸€è‡´é—®é¢˜ï¼š

  • âš ï¸ ContentHash::SCHEMA_VERSION = '1.6.0'
  • âš ï¸ PromptBuilder::SCHEMA_VERSION = '1.5.0' (在代ç ä¸­æœªæ˜Žç¡®ï¼Œéœ€æ£€æŸ¥)


8ï¸âƒ£ 默认基因分æž

8.1 ç§å­åŸºå›  (6 个)

data/default_genes.json

基因 ID分类用途
gene_gep_repair_from_errorsrepair从错误中修å¤
gene_gep_optimize_prompt_and_assetsoptimize优化æç¤ºå’Œèµ„产
gene_gep_innovate_from_opportunityinnovate从机会创新
gene_gep_repair_sqliterepairSQLite æ•°æ®åº“ä¿®å¤
gene_gep_harden_securityoptimize安全加固

8.2 基因结构

{
  "type": "Gene",
  "id": "gene_gep_repair_from_errors",
  "category": "repair",
  "signals_match": ["error", "exception", "log_error"],
  "preconditions": ["signals contains error-related indicators"],
  "strategy": [
    "Extract structured signals from logs",
    "Select an existing Gene by signals match",
    "Estimate blast radius before editing",
    "Apply smallest reversible patch",
    "Validate using declared validation steps"
  ],
  "constraints": {
    "max_files": 20,
    "forbidden_paths": [".git", "vendor", "node_modules"]
  },
  "validation": ["php -l src/*.php", "php evolver.php --validate"]
}

9ï¸âƒ£ A2A åè®® (Agent-to-Agent)

9.1 核心功能

A2A.php

  • 资产类型:Gene, Capsule, EvolutionEvent
  • 置信度衰å‡ï¼šå¤–部资产置信度 × 0.6
  • 爆炸åŠå¾„é™åˆ¶ï¼šmaxFiles=5, maxLines=200
  • æˆåŠŸæ¡çº¹è®¡ç®—:连续æˆåŠŸä½¿ç”¨æ¬¡æ•°

9.2 åŒæ­¥æœºåˆ¶

// sync_status è¡¨è¿½è¸ªåŒæ­¥çжæ€
CREATE TABLE sync_status (
    asset_type TEXT NOT NULL,  // 'Gene' | 'Capsule' | 'Event'
    local_id TEXT NOT NULL,
    asset_id TEXT,             // SHA-256
    sync_status TEXT,          // 'pending' | 'synced' | 'failed'
    last_sync_attempt TEXT,
    sync_error TEXT
);

🔟 知识图谱 (MemoryGraph.php)

10.1 功能

  • ä¿¡å·â†’基因→结果 边追踪
  • Laplace 平滑æˆåŠŸæ¦‚çŽ‡
  • è¡°å‡æœºåˆ¶ (æ—¶é—´è¡°å‡)
  • 错误签å规范化

10.2 错误签å规范化

// 路径替æ¢
s = preg_replace('/[a-z]:\\[^\\s\\n\\r\\t]+/i', '<path>', s);
s = preg_replace('~/[^\\s\\n\\r\\t]+~', '<path>', s);

// å六进制和数字替æ¢
s = preg_replace('/\\b0x[0-9a-f]+\\b/i', '<hex>', s);
s = preg_replace('/\\b\\d+\\b/', '<n>', s);

// 输出:errsig_norm:<hash>

1ï¸âƒ£1ï¸âƒ£ 代ç è´¨é‡è¯„ä¼°

11.1 优点 ✅

维度评分说明
类型安全â­â­â­â­â­å…¨æ–‡ä»¶ declare(strict_types=1)
错误处ç†â­â­â­â­â­try-catch + error_log + 返回结果数组
文档注释â­â­â­â­å¤§éƒ¨åˆ†å…¬å¼€æ–¹æ³•有 PHPDoc
命å规范â­â­â­â­â­PascalCase 类,camelCase 方法,SCREAMING 常é‡
测试覆盖â­â­â­â­44 个测试类,核心功能全覆盖
安全性â­â­â­â­â­å¤šå±‚防护,硬编ç é™åˆ¶
性能优化â­â­â­â­WAL + mmap + 缓存优化

11.2 潜在问题 âš ï¸

é—®é¢˜ä¸¥é‡æ€§å»ºè®®
Schema 版本ä¸ä¸€è‡´ä¸­ç»Ÿä¸€ ContentHash å’Œ PromptBuilder 的版本å·
æ— é™æ€åˆ†æžå·¥å…·ä½Žæ·»åŠ  PHPStan/Psalm 到 composer.json
éƒ¨åˆ†æ–¹æ³•ç¼ºå°‘æ–‡æ¡£ä½Žè¡¥å……å¤æ‚方法的 PHPDoc
硬编ç è·¯å¾„ä½Žä½¿ç”¨å¸¸é‡æˆ–é…置文件
MCP 客户端兼容性中Gemini CLI 有已知问题,文档已说明

1ï¸âƒ£2ï¸âƒ£ 与原始 evolver 对比

特性EvoMap/evolver (JS)Evolver.php
语言JavaScript/Node.jsPHP 8.3+
æ•°æ®åº“SQLiteSQLite (相åŒ)
åè®®MCP stdioMCP stdio (1:1 ç§»æ¤)
GEP 版本1.6.01.6.0
安全模型爆炸åŠå¾„é™åˆ¶ç›¸åŒ + é¢å¤–ä¿æŠ¤
测试JestPHPUnit
性能Node.js V8 引擎PHP 8.3 JIT (å¯é€‰)

优势:

  • ✅ é›¶ npm ä¾èµ–,仅 Composer
  • ✅ 更简å•的部署 (å•个 PHP 文件 + SQLite)
  • ✅ 完全本地化,无网络ä¾èµ–
  • ✅ 增强的安全模型 (SourceProtector)


1ï¸âƒ£3ï¸âƒ£ 使用场景推è

13.1 适用场景 ✅

  1. AI 辅助开å‘环境 - 与 Claude Desktop/Kimi CLI 集æˆ
  2. 自演化代ç åº“ - 自动修å¤é”™è¯¯ã€ä¼˜åŒ–性能
  3. 知识积累系统 - Gene/Capsule åŒè½¨å­˜å‚¨æˆåŠŸç»éªŒ
  4. 安全沙箱实验 - review 模å¼ä¸‹äººå·¥ç¡®è®¤æ‰€æœ‰ä¿®æ”¹
  5. æŒç»­é›†æˆ - è‡ªåŠ¨æ£€æµ‹å’Œä¿®å¤æµ‹è¯•失败

13.2 ä¸é€‚用场景 âŒ

  1. é«˜å¹¶å‘ Web æœåŠ¡ - éžè®¾è®¡ç›®æ ‡
  2. 分布å¼ç³»ç»Ÿ - å•节点 SQLite é™åˆ¶
  3. å®žæ—¶æ€§è¦æ±‚高 - æ¼”åŒ–å‘¨æœŸéœ€è¦æ—¶é—´
  4. æ—  AI 环境 - ä¾èµ– LLM 生æˆä»£ç 

1ï¸âƒ£4ï¸âƒ£ 最佳实践建议

14.1 部署é…ç½®

# 推è环境å˜é‡
export EVOLVER_DB_PATH=~/.evolver/evolver.db
export EVOLVE_ALLOW_SELF_MODIFY=review  # å¼€å‘环境
export WORKSPACE_DIR=/path/to/workspace

# MCP é…ç½® (Kimi CLI)
{
  "mcpServers": {
    "evolver": {
      "command": "php",
      "args": ["/path/to/evolver.php"],
      "env": {
        "EVOLVER_DB_PATH": "~/.evolver/evolver.db",
        "EVOLVE_ALLOW_SELF_MODIFY": "review"
      }
    }
  }
}

14.2 è¿ç»´å»ºè®®

  1. 定期备份数æ®åº“:
``bash cp ~/.evolver/evolver.db ~/.evolver/evolver.db.backup.$(date +%Y%m%d) ` 2. **监控å¥åº·çжæ€**: `bash php evolver.php --validate php evolver.php --ops health ` 3. **æ¸…ç†æ—§æ•°æ®**: `bash php evolver.php --ops cleanup php evolver.php --ops gc ` 4. **审查安全日志**: `bash cat ~/.evolver/security_audit.log ` ### 14.3 å¼€å‘建议 1. **始终è¿è¡Œæµ‹è¯•**: `bash composer test # 或 phpunit --testdox ` 2. **使用 review 模å¼**: - å¼€å‘环境:EVOLVEALLOWSELFMODIFY=review - 生产环境:EVOLVEALLOWSELFMODIFY=never 3. **自定义基因**: - 在 data/defaultgenes.json 添加 - 或使用 evolverupsertgene 工具 4. **监控爆炸åŠå¾„**: - 定期检查 evolverstats - 调整基因 max_files çº¦æŸ --- ## 1ï¸âƒ£5ï¸âƒ£ æœªæ¥æ”¹è¿›æ–¹å‘ ### 15.1 短期优化 🔧 1. **统一 Schema 版本å·** - ä¿®å¤ PromptBuilder 版本ä¸ä¸€è‡´ 2. **æ·»åŠ é™æ€åˆ†æž** - PHPStan/Psalm é›†æˆ 3. **改进错误消æ¯** - æ›´å‹å¥½çš„用户æç¤º 4. **性能分æžå·¥å…·** - 添加 Xdebug é…置示例 ### 15.2 长期扩展 🚀 1. **多数æ®åº“支æŒ** - PostgreSQL/MySQL 适é…器 2. **Web UI** - å¯è§†åŒ–演化历å²å’Œç»Ÿè®¡ 3. **分布å¼åŒæ­¥** - 多节点 A2A åŒæ­¥ä¼˜åŒ– 4. **机器学习集æˆ** - åŸºäºŽåŽ†å²æ•°æ®é¢„测最佳基因 5. **æ’件系统** - å…许第三方扩展 Ops æ¨¡å— --- ## 📊 综åˆè¯„分 | 维度 | 评分 | 说明 | |------|------|------| | **架构设计** | â­â­â­â­â­ | 清晰分层,èŒè´£åˆ†ç¦» | | **代ç è´¨é‡** | â­â­â­â­â­ | ä¸¥æ ¼ç±»åž‹ï¼Œå®Œå–„é”™è¯¯å¤„ç† | | **安全性** | â­â­â­â­â­ | 多层防护,硬编ç é™åˆ¶ | | **测试覆盖** | â­â­â­â­ | 核心功能全覆盖,å¯å¢žåŠ è¾¹ç¼˜ç”¨ä¾‹ | | **文档完整性** | â­â­â­â­ | README/AGENTS.md 完善,缺少 API 文档 | | **性能优化** | â­â­â­â­ | SQLite 优化到ä½ï¼Œå¯è€ƒè™‘缓存层 | | **å¯ç»´æŠ¤æ€§** | â­â­â­â­â­ | 模å—化设计,易于扩展 | | **创新性** | â­â­â­â­â­ | è‡ªæ¼”åŒ–æ¦‚å¿µå‰æ²¿ | **总体评分**:**â­â­â­â­â­ (4.8/5)** --- ## 🎯 结论 **Evolver.php** 是一个**工业级**的自演化引擎实现,具有以下核心优势: 1. ✅ **æˆç†Ÿç¨³å®š** - 1:1 ç§»æ¤è‡ªç»è¿‡éªŒè¯çš„ JavaScript 版本 2. ✅ **安全å¯é ** - 多层防护体系,硬编ç å®‰å…¨é™åˆ¶ 3. ✅ **易于部署** - 零夿‚ä¾èµ–,å•个 PHP 文件å³å¯è¿è¡Œ 4. ✅ **测试完备** - 44 个测试类覆盖核心功能 5. ✅ **文档完善** - README/AGENTS.md æä¾›è¯¦ç»†æŒ‡å— **推è使用场景**: - AI 辅助开å‘环境的åŽç«¯å¼•擎 - 需è¦è‡ªä¿®å¤èƒ½åŠ›çš„ä»£ç åº“ - 知识积累和ç»éªŒå¤ç”¨ç³»ç»Ÿ **注æ„事项**: - 生产环境建议使用 review 或 never` 模å¼
  • 定期备份 SQLite æ•°æ®åº“
  • 监控爆炸åŠå¾„和演化频率