资讯详情

Evolver的Selector是怎么工作的:信号匹配与Gene选择的深度解析

📅 2026/9/17 14:49:04 | 华诺云谱 👁 阅读
Evolver的Selector是怎么工作的:信号匹配与Gene选择的深度解析
Evolver的Selector是怎么工作的信号匹配与Gene选择的深度解析【免费下载链接】evolverThe GEP-powered self-evolving engine for AI agents. Auditable evolution with Genes, Capsules, and Events. | evomap.ai项目地址: https://gitcode.com/GitHub_Trending/evolv/evolverEvolver 是一个由 GEP 协议驱动的 AI 智能体自我进化引擎它的 Selector选择器负责最关键的一步把检测到的信号Signals与基因Gene库进行匹配选出最合适的一条 Gene 来驱动本轮进化。本文面向新手带你完整看懂 Evolver Selector 的信号匹配流程、Gene 选择打分机制和可审计的决策输出无需阅读源码也能建立清晰的心智模型。进化闭环中的 Selector一个调度员先建立一个整体图景。Evolver 的每次进化都沿一条流水线运行大致分为五个阶段collect收集日志 → signals提取信号 → select选择 Gene→ enrich组装上下文→ dispatch输出 GEP 提示词Selector 就站在流水线的中间位置它不自己发明策略而是像调度员一样拿着当前问题信号去基因池里找最对症的那条 Gene。对应的源码模块信号提取src/gep/signals.js选择器本体src/gep/selector.js流水线中的选择环节src/evolve/pipeline/select.js种子基因池assets/gep/genes.seed.json第一步信号从哪来Selector 的输入是一组信号由extractSignals从日志、会话和运行历史中抽取。典型信号分两类信号类型例子含义故障类error、log_error、test_failure系统出了问题需要修复机会类user_feature_request、perf_bottleneck、capability_gap、stable_success_plateau一切稳定适合做创新一个设计亮点是信号模式是多语言正则。种子基因里的匹配词写成error|错误|异常|エラー|오류这样的形式也就是说中文、日文、韩文的错误描述同样能命中同一条修复类 Gene。这让 Evolver 对使用不同语言记录日志的智能体都能听懂。第二步信号匹配的三层漏斗拿到信号后Selector 对每条 Gene 计算匹配分数匹配分三层递进1️⃣ 直接关键词匹配每条 Gene 都声明了自己的signals_match列表。比如修复类 Gene 声明了error、failed、unstable等关键词信号里每命中一个词就加分。2️⃣ 结构化信号匹配信号可以是baseName:snippet的格式例如user_feature_request:给设置页加一个暗色开关。Selector 会只用 baseName 部分冒号前去匹配 Gene冒号后的具体描述不影响命中——这保证了信号类型决定走哪条 Gene而不是被描述细节带偏。3️⃣ 语义相似度匹配当字面匹配不够精确时Selector 会做语义兜底把信号文本和 Gene 的描述分别分词tokenize过滤 this、but、also 等无信息量词计算两组词的余弦相似度再乘以一个权重默认 0.4计入总分。也就是说perf_bottleneck 这类学习标签即使没有写进某条性能优化 Gene 的signals_match也能靠语义被关联上。第三步打分修正——记忆与经验如何影响选择原始匹配分不是最终分。Selector 会用多类修正项调整每条 Gene 的得分学习历史加分learning_history中 outcome 为success的 Gene 得分上调失败则下调反模式降权如果某条 Gene 反复踩中同一个 anti_pattern硬失败会被明显降权避免同一块石头绊倒两次表观遗传抑制被标记抑制的 GeneisEpigeneticallySuppressed直接排除在候选之外记忆建议memoryAdvice记忆图会给出偏好 Genepreferred得分乘以一个小于 1 的系数——只能锦上添花不能翻盘、强制 Geneforced无视分数直接选中但会被封禁名单拦截、以及封禁 Gene 名单banned连强制选择都救不回来。这套机制的设计意图是经验可以倾斜选择但信号匹配仍然是主导——一个高分 Gene 不会因为记忆偏好而输掉给明显更匹配的另一条 Gene。第四步Gene 选定后Capsule 如何搭配选出 Gene 后Selector 还会从胶囊池Capsules里挑出触发器trigger与当前信号匹配的胶囊作为历史成功案例注入上下文。Capsule 本质是某次成功进化的打包记录让本轮进化能参考过去真实跑通过的方案而不是空谈策略。此外还有一个driftIntensity漂移强度参数在基因池较大或连续多轮成功时Selector 允许一定概率地随机挑选 Gene充当进化算法里的变异防止系统在局部最优上打转。可审计的决策输出为什么这件事重要Selector 的输出不是一个简单的 Gene ID而是一个完整的决策结构由buildSelectorDecision生成字段作用selected最终选中的 Gene IDreason人类可读的选中文本例如forced_gene_selected: xxxselectionPath选择路径forced_gene、memory、semantic或默认匹配alternatives落选候选及其分数方便复盘memoryUsed/memoryEvidence本次决策是否用了记忆、用了多少证据这份决策会随EvolutionEvent一起写入审计日志。每一步为什么选这条 Gene都可以事后追溯——这正是 Evolver 区别于随机改提示词的核心价值。一个完整例子假设日志里出现了error和test_failure两个信号信号提取阶段产出[error, test_failure]修复类种子 Genegene_gep_repair_from_errors的signals_match命中多个关键词得分最高创新类 Gene 因 preconditions 要求无活跃 error 信号而不参与Selector 输出selected: gene_gep_repair_from_errorsselectionPath为默认匹配引擎按该 Gene 的strategy步骤执行评估影响面 → 最小可逆补丁 → 验证 → 失败则回滚 → 成功后固化为新事件。这套信号 → 匹配 → 打分 → 决策 → 审计的完整链路你可以在 test/selector.test.js 中看到大量针对边界情况的断言强制 Gene 会被封禁拦截、语义匹配能关联性能类 Gene、反复失败的 Gene 会被降权……这些测试就是选择器行为的活文档。延伸阅读关键文件路径想继续深入时建议按这个顺序读源码和资料选择器核心src/gep/selector.js信号提取与分类src/gep/signals.jsGene 结构定义src/gep/schemas/gene.js种子基因池repair / optimize / innovate 三大类assets/gep/genes.seed.json选择环节在流水线中的位置src/evolve/pipeline/select.js选择器行为测试test/selector.test.js小结Evolver 的 Selector 用三层匹配漏斗 多层经验修正 可审计决策输出把这轮进化该干什么从玄学变成了可解释的工程问题信号决定候选经验微调得分记忆可以倾斜但无法翻盘而每一次选择都留下完整理由。理解了这个模块你就掌握了 Evolver 自我进化引擎的大脑中轴。【免费下载链接】evolverThe GEP-powered self-evolving engine for AI agents. Auditable evolution with Genes, Capsules, and Events. | evomap.ai项目地址: https://gitcode.com/GitHub_Trending/evolv/evolver创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。