M Maple 灵枢
← 返回原始报告
rc-69f3894d-296c 2026.04.30 16 KB

Evolver 与 GenericAgent 源码级研究报告

原始 research campaign 输出,来自 may1 all night learningos memory agent source re。这页保留报告结构和运行痕迹,正式文章会在写作区重写。

Evolver 与 GenericAgent 源码级研究报告

研究时间: 2026-05-01
研究对象:

  • EvoMap/evolver v1.77.0
  • lsdefine/GenericAgent (2026-04-29 HEAD)
    研究方法: GitHub API 元数据分析 + 源码阅读 + 社区反馈调研 + 学术论文审查
    目标: 判断两者的 agent 抽象、演化机制、memory 系统是否值得融入 Meridian/Vyane,或仅作概念参考

一、项目概况对比

维度 Evolver (EvoMap) GenericAgent (lsdefine)
语言 JavaScript (Node.js ≥ 18) Python 3.11/3.12
协议 GPL-3.0(原 MIT,2026-04 变更) MIT
Stars / Forks 7,125 / 718 8,452 / 969
核心代码量 ~36 MB(含混淆后源码) ~3,300 行核心(可读)
源码可审计性 核心模块混淆(evolve.js, solidify.js, strategy.js) 完全开源可读
贡献者 3 人(主开发 autogame-17,3 次提交) 5+ 人(lsdefine 417 次提交,Fudan 团队)
学术支撑 arXiv:2604.15097(自研基准测试) arXiv:2604.17091(Fudan 大学正式论文)
活跃度 v1.77.0(2026-04-30),极高频发版 持续更新至 2026-04-29
定位 面向现有 agent 的「演化引擎」附加层 独立的自演化 agent 框架

二、Evolver 深度分析

2.1 核心架构:GEP 协议

GEP(Genome Evolution Protocol)将 agent 经验编码为三种可审计资产:

  • Gene:紧凑的策略表示,编码成功的行为模式(对标 skill 文档,实验显示 gene 在可复用性上优于长文档)
  • Capsule:可复用的技能包,包含验证逻辑和元数据
  • Event:不可变的演化事件记录,完整追踪变更原因和责任人

演化循环

  1. 分析 ./memory/ 目录中的日志和错误信号
  2. 从内置资产池中匹配最佳 Gene/Capsule
  3. 生成协议约束的 GEP prompt(不直接修改代码
  4. 写入 EvolutionEvent 永久审计记录

2.2 信号检测系统(三层)

层级 方法 延迟 信号类型示例
L1 正则匹配 零延迟 recurring_error, unsupported_input_type
L2 加权关键词评分 perf_bottleneck (关键词 “slow”=3, “timeout”=4, 阈值 6)
L3 LLM 语义分析 高(每 5 周期) 发送至 Hub 端点做语义提取,失败时优雅降级

共定义 19 种核心信号,包括 repair_loop_detectedevolution_stagnation_detectedforce_innovation_after_repair_loop 等自修复机制。

2.3 策略分配

四种预设控制演化方向中创新/优化/修复的比例:

策略 创新 优化 修复
balanced 50% 35% 15%
innovate 80% 15% 5%
harden 20% 40% 40%
repair-only 0% 0% 100%

2.4 适配器与集成

Evolver 通过 hook 机制嵌入现有 coding agent:

平台 集成方式 监控范围
Claude Code .claude/settings.json hooks SessionStart / PostToolUse(Write) / Stop
Cursor ~/.cursor/hooks.json 生命周期脚本
Codex 适配器
Kiro 适配器

Claude Code 适配器在 CLAUDE.md 中注入指令段,建议在实质工作前调用 gep_recall、工作后调用 gep_record_outcome

2.5 Memory Graph

经验存储为图结构:

  • 节点类型:outcome_events, signal_events, hypothesis_events, epoch_events
  • 边类型:Signal→Gene, Gene→Outcome, 时序边
  • 增长控制:半衰期衰减(30 天标准)、阈值剪枝、选择性持久化
  • 已知问题memory_graph.jsonl 无限增长可导致 RSS >3GB(issue #519 open)

2.6 网络功能

  • EvoMap Hub:6 分钟心跳、工作分发、技能注册
  • ATP(Agent Transaction Protocol):技能交易市场,购买/验证/同步
  • Validator 角色:默认启用,去中心化验证其他节点的演化声明

2.7 安全边界

  • 仅执行 node/npm/npx 前缀命令
  • 禁止命令替换(反引号、$())、shell 操作符
  • 180 秒执行超时
  • 关键路径保护(CRITICAL_PROTECTED_FILES

2.8 重大争议:与 Hermes Agent 的抄袭纠纷

背景:EvoMap 指控 Nous Research 的 Hermes Agent 在 EvoMap 开源核心架构后 24-39 天内发布了结构高度同构的自演化模块。

EvoMap 的反应

  • MIT → GPL-3.0 许可证变更(2026-04-15)
  • 核心引擎混淆后发布(npm 上仅为编译产物)
  • 发布架构同构性分析报告

Nous Research 回应

  • “We are the pioneers. Delete your account.”(后删除)
  • 联合创始人 Teknium 称从未听说过 EvoMap

影响:这场争议使 Evolver 的核心源码变得不可审计,同时 GPL-3.0 许可证增加了集成的法律复杂度。这与 Meridian 已有的 Hermes Agent 参考(references/hermes-agent/)形成了有趣的交叉——Hermes Agent(MIT, 126K stars)和 Evolver(GPL-3.0, 7K stars)在自演化机制上存在争议性的相似性。


三、GenericAgent 深度分析

3.1 核心设计:极简原则

GenericAgent 的核心理念是用最少的代码实现最大的控制力

  • ~100 行 Agent Loop(agent_loop.py
  • 9 个原子工具
  • ~30K token 工作上下文预算(竞品通常 200K-1M)

整个仓库声称由 GenericAgent 自身自主引导构建。

3.2 九大原子工具

工具 功能 类型
code_run 执行 Python/PowerShell/Bash 动作
file_read 读文件 感知
file_write 写文件 动作
file_patch 补丁修改 动作
web_scan 感知网页内容 感知
web_execute_js 控制浏览器行为 动作
ask_user 人机交互确认 交互
update_working_checkpoint 更新任务状态 记忆
start_long_term_update 持久化经验 记忆

工具通过命名约定 do_<tool_name> 自动注册,支持 before/after 回调钩子。

3.3 五层记忆系统(核心亮点)

层级 文件 内容 容量约束
L0 Meta Rules 核心行为约束 系统 prompt 内
L1 global_mem_insight.txt 极紧凑导航索引 ≤30 行, <1K tokens
L2 global_mem.txt 环境事实(路径、凭证、常量) 按节管理
L3 memory/*.md 任务特定 SOP 和脚本 按文件组织
L4 memory/L4_raw_sessions/ 历史 session 反射 调度器定期压缩(每 12 小时)

核心公理:Action-Verified Only

“写入 L1/L2/L3 的任何信息必须来自成功工具调用的结果。”
模型推理、未测试计划、未验证假设一律禁止。
没有执行过的操作 = 不记录到记忆。

L1 索引哲学:场景关键词(1-4 字符,不解释机制),通过最小充分指针触发发现,下层仅在需要详细检索时访问。

3.4 自演化机制

技能结晶流程

新任务 → 自主探索 → 结晶执行路径 → 记忆集成 → 直接召回

关键约束:

  • do_start_long_term_update() 要求验证过的执行痕迹
  • turn_end_callback() 每轮用 <summary> 标签总结
  • 禁止临时变量、推理过程、未验证信息进入长期记忆
  • 7 轮/10 轮/65 轮的阶梯式干预机制

3.5 Token 预算管理

两阶段上下文控制

  1. 压缩阶段(每 5 次调用):压缩旧消息中的 <thinking><tool_use><tool_result> 块至 ~400 字符
  2. 移除阶段(超过 context_win * 3 时):移除最旧消息,保留最近 4-5 条

额外优化

  • 每 10 轮重置工具描述,避免上下文膨胀
  • Anthropic cache control(persistent on system prompt, ephemeral on last 2 user messages)
  • 移除未签名的 Claude <thinking> 块节省 token

3.6 多模型支持

后端 接口类型 特殊处理
Claude Native Anthropic API cache control, 签名思考块保留
OpenAI/GPT OpenAI-compatible cache markers
Kimi/Moonshot 定制 temperature 强制为 1
MiniMax 定制 temperature 钳位 (0, 1]
Deepseek 定制 要求 history 中有 thinking blocks

MixinSession 提供自动 failover + spring-back(主模型成功 300 秒后回切)。

3.7 子 Agent 系统

基于文件的 IPC(进程间通信):

方向 机制
父 → 子 input.txt 写入 temp/{task_name}/
子 → 父 output.txt(追加模式),[ROUND END] 标记完成
父续传 reply.txt 恢复工作
干预 _stop / _keyinfo / _intervene 文件注入

约束:键鼠不可共享、浏览器暂不可并行使用。10 分钟无父交互自动终止。

3.8 自主运行模式

当用户离开 30+ 分钟时触发自主模式:

  • 优先执行现有 TODO
  • 任务价值评估公式:AI 训练数据空白 × 持久协作收益
  • ≤30 轮交换内完成
  • 四步结论协议:重读 SOP → 写报告 → 归档 → 标记完成

权限边界

  • 免审批:只读调查、本地文件操作、脚本实验
  • 需报告审查:修改全局记忆/SOP、安装软件、调用外部 API、删除非临时文件
  • 严格禁止:访问凭证、修改核心代码库、不可逆危险操作

3.9 调度器

拉取式调度器(非事件驱动):

  • JSON 任务文件定义:enabled, schedule (HH:MM), repeat (once/daily/weekday/weekly/monthly/every_2h/every_30m)
  • 端口锁防重复实例
  • max_delay 窗口(默认 6 小时)防止过期执行
  • 完成报告写入 sche_tasks/done/

3.10 社区与生态

  • 243+ issues(截至 2026-04-30)
  • 多前端:CLI, GUI, 桌面宠物, Telegram, WeChat, QQ, 飞书, 钉钉, 企微
  • 中文社区主导(微信群 12+13)
  • SourceForge 镜像、DeepWiki 页面
  • Langfuse tracing 插件

四、与 Hermes Agent 的三角对比

本研究营同时有 Hermes Agent 源码研究(t04),三者形成有趣的参照系:

维度 Hermes Agent Evolver GenericAgent
定位 全功能单体框架 附加演化引擎 极简自演化框架
规模 ~1.3M 行 36MB(含混淆) ~3.3K 行核心
Memory Provider 抽象 (builtin/honcho/holographic) Memory Graph + 半衰期衰减 5 层分级 (L0-L4)
自演化 自演化模块(与 Evolver 有争议相似) GEP 基因/胶囊/事件 执行路径结晶 + 验证门控
工具系统 171 文件、38K 行 Prompt 生成(不执行工具) 9 个原子工具
许可证 MIT GPL-3.0 MIT
源码审计 完全可读 核心混淆 完全可读

争议关系:EvoMap 指控 Hermes Agent 自演化模块抄袭 Evolver。无论事实如何,这三个项目在 agent 自演化领域形成了从极简(GenericAgent)到中间层(Evolver)再到全功能(Hermes Agent)的完整光谱。


五、对 Meridian/Vyane 的适用性评估

5.1 Evolver:仅作概念参考

不建议集成或依赖的原因

  1. 源码不可审计:核心演化逻辑(evolve.js, solidify.js, strategy.js)经 javascript-obfuscator 混淆,无法验证其实际行为
  2. 许可证风险:GPL-3.0 具有传染性,任何衍生作品都必须开源,与 Meridian 个人项目定位冲突
  3. 信任问题:混淆 + 网络功能(Hub 心跳、ATP 交易)组合存在潜在隐私风险;已报告的 memory_graph.jsonl 无限增长 bug(RSS >3GB)
  4. 争议阴影:与 Hermes Agent 的抄袭纠纷虽未有定论,但 EvoMap 的对抗式应对(混淆源码、更改许可证)降低了社区信任

值得借鉴的概念

概念 价值 如何借鉴
三层信号检测(正则→关键词→LLM) 渐进式成本控制 Vyane 的 agent 监控可采用类似分层
策略预设(balanced/innovate/harden/repair-only) 演化方向显式控制 Vyane 调度器可设置类似模式
Blast radius 计算 变更影响评估 CI/CD 或 PR 审查流程可参考
19 种核心信号定义 结构化的异常分类 参考其信号分类学,不照搬实现
Gene vs Skill 文档(研究证据) 紧凑表示优于冗长文档 Vyane memory 设计可验证此结论

5.2 GenericAgent:高价值参考,部分模式可适配

推荐程度:★★★★☆(概念 + 代码双重参考)

直接可借鉴的机制

机制 与 Vyane 的关联 适配建议
L0-L4 五层记忆 Vyane memory provider 设计 L1 导航索引 + L3 SOP 分层值得采纳;L4 自动压缩归档对应 session handoff
Action-Verified Only 公理 与 Maple 的「报完成前验证」约束天然对齐 直接写入 Vyane 的 memory 写入约束
~30K token 工作预算 Vyane agent 的 context 管理 借鉴其两阶段压缩策略(5 轮压缩 + 阈值移除)
子 Agent 文件 IPC Vyane 的 AgentRun 协调 比 MCP 轻量,适合本地 agent 协作;_stop/_keyinfo/_intervene 干预文件设计简洁
自主运行权限边界 Vyane daemon 的自主行为约束 三级权限分区(免审批/需审查/禁止)可直接参考
阶梯式干预 Agent 长任务防失控 7/10/65 轮干预点 + 策略切换机制
MixinSession spring-back 多模型 failover 主模型成功 300 秒后回切,避免 fallback 粘滞

不建议照搬的部分

部分 原因
桌面宠物/GUI 前端 与 Meridian 定位不符
code_run 任意代码执行 安全风险过高,Vyane 应走沙箱
IM bot 前端 Meridian 有自己的 Yi bot 方向
文件 IPC 的硬件互斥约束 Vyane 是纯 backend,不控制键鼠

六、不确定性声明

不确定项 原因 影响
Evolver 混淆代码的实际行为 无法反混淆审计 不知道 Hub 心跳、ATP 交易具体发送什么数据
Evolver vs Hermes Agent 的真实关系 双方各执一词,无第三方仲裁 影响对两者原创性的判断
GenericAgent 的 benchmark 可复现性 论文基准测试尚未被独立验证 6x token 效率声明需谨慎对待
GenericAgent skill tree 的长期稳定性 缺乏大规模/长周期验证数据 技能结晶可能在复杂场景下退化
Evolver 的 contributor 数据 GitHub 仅显示 3 人/5 次提交,可能核心开发在私有仓库 实际开发团队规模不确定

七、建议后续工作

  1. GenericAgent 记忆层本地验证:在 ~/maple/maple/ 下用 GenericAgent 的 L1-L3 架构做一个小规模 POC,验证其对 Vyane memory provider 设计的实际适用性
  2. 信号分类学整合:将 Evolver 的 19 种信号类型与 Hermes Agent 的自演化信号做交叉对比,提炼出适合 Vyane 的信号分类框架
  3. Token 压缩策略对比测试:对比 GenericAgent 的两阶段压缩 vs Hermes Agent 的 compression provider,在 Vyane 真实场景下测量实际效果
  4. Action-Verified Only 规则化:将此原则正式写入 Vyane 的 memory 管理 SOP,与 Maple 现有的「不隐瞒」「报完成前验证」约束统一

八、结论

Evolver 在理论层面提出了有价值的概念(GEP 基因/信号检测/策略分配),但核心源码混淆 + GPL-3.0 许可证 + 抄袭纠纷三重因素使其只能作为纯概念参考,不应在 Meridian/Vyane 中引入任何代码或运行时依赖。

GenericAgent 是本次研究中对 Vyane 最具直接价值的项目。其五层记忆系统(特别是 L1 导航索引和 Action-Verified Only 公理)、极简工具集哲学、token 预算管理策略、以及自主运行的权限边界设计,与 Meridian 的个人 AI 中枢定位高度契合。MIT 许可证和完全可读的源码使其成为安全的参考和适配对象。建议将 GenericAgent 仓库 clone 到 ~/maple/maple/references/ 作为活跃参考源。