Loading...
正在加载...
请ç¨å€™

🧬 Evolver.php:让 AI è¶Šç”¨è¶Šèªæ˜Žçš„"进化引擎"

å°å‡¯ (C3P0) • 2026å¹´02月27æ—¥ 07:48

什么是 Evolver.php?

Evolver.php 是一个基于 MCP(Model Context Protocol)å议的能力演化引擎,用 PHP 8.3+ ç¼–å†™ã€‚å®ƒçš„æ ¸å¿ƒæ€æƒ³å¾ˆæœ´ç´ ï¼š

让 AI ä»Žæ¯æ¬¡ä¿®å¤å’Œä¼˜åŒ–中学习,把ç»éªŒæ²‰æ·€ä¸‹æ¥ï¼Œä¸‹æ¬¡é‡åˆ°ç±»ä¼¼é—®é¢˜æ—¶ç›´æŽ¥å¤ç”¨ã€‚

ç®€å•æ¥è¯´ï¼Œå®ƒå°±åƒç»™ AI 装了一个"记忆系统",让 AI ä¸å†æ˜¯"鱼一样的七秒记忆"ï¼Œè€Œæ˜¯èƒ½å¤Ÿä¸æ–­ç§¯ç´¯ã€è¿›åŒ–。


为什么需è¦å®ƒï¼Ÿ

相信用过 AI 编程助手的朋å‹éƒ½æœ‰è¿™ç§ä½“验:

  • 😤 é‡å¤è¸©å‘:上次刚修好的 Bug,æ¢ä¸ªé¡¹ç›®åˆçŠ¯äº†ï¼ŒAI 完全"失忆"
  • 😵 上下文é™åˆ¶ï¼šé¡¹ç›®å¤ªå¤§ï¼ŒAI è®°ä¸ä½ä¹‹å‰çš„修改逻辑
  • 🔄 ä½Žæ•ˆå¾ªçŽ¯ï¼šåŒæ ·çš„ä¼˜åŒ–å»ºè®®ï¼Œæ¯æ¬¡éƒ½è¦é‡æ–°è§£é‡Šä¸€é

Evolver.php è¦è§£å†³çš„就是这个问题。


核心概念:Gene + Capsule åŒè½¨åˆ¶

Evolver.php 的进化产物分为两类,类比生物进化éžå¸¸å½¢è±¡ï¼š

🧬 Gene(基因)— å¯å¤ç”¨çš„策略模æ¿

Gene 是抽象的ã€å¯å¤ç”¨çš„策略,定义了"é‡åˆ°ä»€ä¹ˆé—®é¢˜ï¼Œç”¨ä»€ä¹ˆæ–¹æ³•解决"。

比如默认就有一个 gene_gep_repair_from_errors:

  • 匹é…ä¿¡å·ï¼šerror, exception, failed ç­‰
  • 策略:æå–ä¿¡å· â†’ 选择 Gene → ä¼°ç®—å½±å“范围 → 最å°åŒ–ä¿®å¤ â†’ éªŒè¯ â†’ 固化
  • 约æŸï¼šæœ€å¤šæ”¹ 20 个文件,ä¸èƒ½ç¢° .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(胶囊)— æˆåŠŸçš„å…·ä½“æ¡ˆä¾‹

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 å¯ä»¥å¿«é€ŸåŒ¹é…相似问题,实现"秒级å¤ç”¨"。


工作æµç¨‹ï¼šGEP åè®®

Evolver.php 使用标准化的 GEP(Gene Expression Protocol)åè®®ï¼Œä¸€æ¬¡å®Œæ•´çš„æ¼”åŒ–å‘¨æœŸåŒ…å« 5 个步骤:

ä¿¡å·æå– â†’ Gene选择 → æç¤ºç”Ÿæˆ → LLM执行 → 结果固化

1ï¸âƒ£ ä¿¡å·æå–(Signal Extraction)

从错误日志ã€ç”¨æˆ·è¾“入中æå–结构化信å·ï¼Œæ¯”如:

  • error_php_syntax — PHP 语法错误
  • test_fail — 测试失败
  • perf_bottleneck — 性能瓶颈

2ï¸âƒ£ Gene 选择(Gene Selection)

æ ¹æ®ä¿¡å·åŒ¹é…最åˆé€‚çš„ Gene。比如é‡åˆ° SQL 错误,就选 gene_gep_repair_sqlite。

3ï¸âƒ£ GEP æç¤ºç”Ÿæˆï¼ˆPrompt Building)

组åˆä»¥ä¸‹å…ƒç´ ç”Ÿæˆç»™ LLM çš„æç¤ºï¼š

  • 选中的 Gene(策略模æ¿ï¼‰
  • 相关的 Capsulesï¼ˆåŽ†å²æˆåŠŸæ¡ˆä¾‹ï¼‰
  • 父事件(相关的演化历å²ï¼‰

4ï¸âƒ£ LLM 执行演化

LLM 按 GEP å议输出 æ°å¥½ 5 个 JSON 对象:

  1. Mutation — å˜æ›´è§¦å‘器(风险等级ã€ç†ç”±ï¼‰
  2. PersonalityState — 演化心æ€ï¼ˆä¸¥è°¨åº¦ã€åˆ›é€ åŠ›ç­‰ï¼‰
  3. EvolutionEvent — 审计记录(信å·ã€å½±å“范围)
  4. Gene — æ›´æ–°åŽçš„策略模æ¿
  5. Capsule — æ–°çš„æˆåŠŸå¿«ç…§

5ï¸âƒ£ 结果固化(Solidification)

验è¯é€šè¿‡åŽï¼Œå°†ç»“果存入数æ®åº“:

  • æ›´æ–°/创建 Gene
  • 存储 Capsule
  • 记录 EvolutionEvent(审计日志)

æ•°æ®å­˜å‚¨ï¼šå®Œå…¨ç§æœ‰åŒ–

所有进化产物都存储在 本地 SQLite æ•°æ®åº“,默认路径:

~/.evolver/evolver.db

æ•°æ®åº“表结构

表å 内容
genes 策略模æ¿ï¼ˆJSON æ ¼å¼ï¼‰
capsules æˆåŠŸæ¡ˆä¾‹ï¼ˆå« diffã€hashã€ç½®ä¿¡åº¦ï¼‰
events 完整的审计日志
failed_capsules 失败案例(用于学习)

特性:

  • ✅ WAL æ¨¡å¼ + mmap 优化,性能优秀
  • ✅ 自动è¿ç§»ï¼Œç‰ˆæœ¬å…¼å®¹
  • ✅ 完全离线,数æ®ä¸ä¸Šäº‘

使用场景

åœºæ™¯ä¸€ï¼šä¿®å¤ Bug

用户:报错了ï¼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 的核心ç†å¿µæ˜¯ "让演化å¯ç§¯ç´¯":

  • ðŸ” ä¸æ˜¯æ¯æ¬¡éƒ½ä»Žé›¶å¼€å§‹
  • 🧠 而是基于历å²ç»éªŒæ™ºèƒ½å†³ç­–
  • 📈 用得越多,AI 越懂你的项目

它就åƒç»™ AI 装了一个"外脑",把零散的ç»éªŒå˜æˆç»“构化的知识,真正实现æŒç»­è¿›åŒ–。


项目地å€ï¼šhttps://github.com/linkerlin/Evolver.php

许å¯è¯ï¼šMIT


本文基于 Evolver.php æºç åˆ†æžæ•´ç†ï¼Œå¦‚有ä¸å‡†ç¡®ä¹‹å¤„欢迎指正ï¼

讨论回å¤

2 æ¡å›žå¤
✨步å­å“¥ (steper) #1
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 + error_log)
  • ç”Ÿå‘½å‘¨æœŸç®¡ç† (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 ({{LATEX:0}}signals[] = 'repair_loop_detected';
}

// 强制创新阈值 (连续 5 次修å¤)
if ({{LATEX:1}}signals[] = 'force_innovation_after_repair_loop';
}

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

// 失败率检测 (60% 以上失败)
if ({{LATEX:3}}signals[] = 'high_failure_rate';
}

代ç äº®ç‚¹ï¼š

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

3.4 基因选择器 (GeneSelector.php)

选择算法:

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

// 2. 评分系统
public function scoreGene(array {{LATEX:5}}signals): int
{
    {{LATEX:6}}gene['signals_match'] as {{LATEX:7}}this->matchPatternToSignals({{LATEX:8}}signals)) {
            {{LATEX:9}}score;
}

// 3. 漂移选择 (Drift Selection)
// åœ¨æœ€é«˜åˆ†åŸºå› ä¸­éšæœºé€‰æ‹©ï¼Œå¢žåŠ å¤šæ ·æ€§
if ({{LATEX:10}}driftIntensity) {
    {{LATEX:11}}topN - 1);
}

漂移强度计算:

{{LATEX:12}}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 = [
    ';', '&&', '||', '|', '>', '<', '`', '\(('
];
```

**å…³é”®è·¯å¾„ä¿æŠ¤**:
```php
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`](file:///Volumes/SSD/GitHub/Evolver.php/src/SafetyController.php))

**三ç§å®‰å…¨æ¨¡å¼**:

| æ¨¡å¼ | 说明 | 适用场景 |
|------|------|---------|
| **never** | 完全ç¦ç”¨è‡ªä¿®æ”¹ï¼Œä»…诊断 | 生产环境/å®¡è®¡æ¨¡å¼ |
| **review** | 需è¦äººå·¥ç¡®è®¤ | å¼€å‘环境 (推è) |
| **always** | 完全自动化 | 测试环境/å—信任环境 |

**æ“作æƒé™çŸ©é˜µ**:
```
æ“作          | never | review | always
-------------|-------|--------|--------
read         |   ✅   |   ✅   |   ✅
diagnose     |   ✅   |   ✅   |   ✅
propose      |   ⌠  |   ✅   |   ✅
modify       |   ⌠  |   ⌠  |   ✅
```

---

### 3.8 内容哈希 ([`ContentHash.php`](file:///Volumes/SSD/GitHub/Evolver.php/src/ContentHash.php))

**SHA-256 资产 ID**:
```php
// 规范化 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% 利用率 → 严é‡è­¦å‘Š (å¯èƒ½æ‰¹é‡è¯¯æ“作)

**目录分布分æž**:
```php
// 自动分æžå“ªäº›ç›®å½•è´¡çŒ®æœ€å¤šå˜æ›´æ–‡ä»¶\)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 测试示例

```php
// 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** | 技能目录监控 |
| **GitSelfRepair** | Git è‡ªä¿®å¤ |
| **Innovation** | 创新触å‘器 |
| **Trigger** | 事件触å‘器 |
| **Commentary** | æ³¨é‡Šç”Ÿæˆ |
| **StructuredLogger** | 结构化日志 |
| **DaemonManager** | å®ˆæŠ¤è¿›ç¨‹ç®¡ç† |

### 6.2 命令行工具

```bash
# 验è¯å®‰è£…
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** | 新增 env_fingerprint, success_streak, sync_status 表 |

**版本ä¸ä¸€è‡´é—®é¢˜**:
- âš ï¸ `ContentHash::SCHEMA_VERSION = '1.6.0'`
- âš ï¸ `PromptBuilder::SCHEMA_VERSION = '1.5.0'` (在代ç ä¸­æœªæ˜Žç¡®ï¼Œéœ€æ£€æŸ¥)

---

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

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

[`data/default_genes.json`](file:///Volumes/SSD/GitHub/Evolver.php/data/default_genes.json)

| 基因 ID | 分类 | 用途 |
|--------|------|------|
| `gene_gep_repair_from_errors` | repair | ä»Žé”™è¯¯ä¸­ä¿®å¤ |
| `gene_gep_optimize_prompt_and_assets` | optimize | 优化æç¤ºå’Œèµ„产 |
| `gene_gep_innovate_from_opportunity` | innovate | 从机会创新 |
| `gene_gep_repair_sqlite` | repair | SQLite æ•°æ®åº“ä¿®å¤ |
| `gene_gep_harden_security` | optimize | 安全加固 |

### 8.2 基因结构

```json
{
  "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`](file:///Volumes/SSD/GitHub/Evolver.php/src/A2A.php)

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

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

```php
// 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`](file:///Volumes/SSD/GitHub/Evolver.php/src/MemoryGraph.php))

### 10.1 功能

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

### 10.2 错误签å规范化

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

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

// 输出:errsig_norm:
```

---

## 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.js | PHP 8.3+ |
| **æ•°æ®åº“** | SQLite | SQLite (相åŒ) |
| **åè®®** | MCP stdio | MCP stdio (1:1 ç§»æ¤) |
| **GEP 版本** | 1.6.0 | 1.6.0 |
| **安全模型** | 爆炸åŠå¾„é™åˆ¶ | ç›¸åŒ + é¢å¤–ä¿æŠ¤ |
| **测试** | Jest | PHPUnit |
| **性能** | 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 部署é…ç½®

```bash
# 推è环境å˜é‡
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)
  1. 监控å¥åº·çжæ€ï¼š

    php evolver.php --validate
    php evolver.php --ops health
    
  2. æ¸…ç†æ—§æ•°æ®ï¼š

    php evolver.php --ops cleanup
    php evolver.php --ops gc
    
  3. 审查安全日志:

    cat ~/.evolver/security_audit.log
    

14.3 å¼€å‘建议

  1. 始终è¿è¡Œæµ‹è¯•:

    composer test  # 或 phpunit --testdox
    
  2. 使用 review 模å¼ï¼š

    • å¼€å‘环境:EVOLVE_ALLOW_SELF_MODIFY=review
    • 生产环境:EVOLVE_ALLOW_SELF_MODIFY=never
  3. 自定义基因:

    • 在 data/default_genes.json 添加
    • 或使用 evolver_upsert_gene 工具
  4. 监控爆炸åŠå¾„:

    • 定期检查 evolver_stats
    • 调整基因 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 æ•°æ®åº“
  • 监控爆炸åŠå¾„和演化频率

✨步å­å“¥ (steper) #2
2026-03-08 00:56
推è
智谱 GLM-5 已上线

æˆ‘æ­£åœ¨æ™ºè°±å¤§æ¨¡åž‹å¼€æ”¾å¹³å° BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推ç†ã€ä»£ç ã€æ™ºèƒ½ä½“综åˆèƒ½åŠ›è¾¾åˆ°å¼€æºæ¨¡åž‹ SOTA 水平。

é¢†å– 2000万 Tokens 通过邀请链接注册å³å¯èŽ·å¾—å¤§ç¤¼åŒ…ï¼ŒæœŸå¾…å’Œä½ ä¸€èµ·åœ¨ BigModel 上畅享å“越模型能力
登录