基因树进化
你的纠正会变成可检查的规则,拿真实工作验证,不再起作用时退役。每次只改一小处,界面上只给你看一棵树。
为什么是“基因”
早期版本让模型整包重写项目能力,再用合成问答评测。线上数据很直接:3 个项目、37 个整包候选、约 1140 万 token,一个都没被采用;“不得复用某个称呼”这样的经验被记下后,实际应用了 0 次。
现在的做法:
- 一次改一个基因:一条约束、一段技能说明或一个检查工具,可以单独撤回。
- 知识要变成机制:能用程序检查的约束变成守卫,改变做法的偏好写进技能,反复出现的职责变成日程邀请。只留在上下文里的经验是最弱的形态。
- 用真实工作验证:程序检查、差异复审、在项目文件上实际运行、在使用中试用。
- 会退役:没起作用、被你推翻或已经重复的基因会停用,不会越攒越多。
- 你只看到树和一句话:列表里没有分数和哈希。你能做的是:对、记错了、不再用。
基因的层
| 层 | 内容 | 来源 |
|---|---|---|
| 画像 | 偏好、约束、易错点、好做法 | 反馈、纠正、你的回答 |
| 提示 | 项目说明文件(AGENTS.md / CLAUDE.md)里已经写着的规则,只显示,不由进化改写 | 你自己写的 |
| 技能 | 对项目自己的技能说明的段落级修订 | 反馈、复盘 |
| 工具 | 受限的脚本工具,带参数和冒烟用例 | 复盘、对照分析 |
| 守卫 | 带触发条件的检查,写文件时自动运行 | 反馈中可机械检查的约束 |
| 标准 | 一条验收标准,关联守卫、JEV 问题或回放 | 反馈、守卫 |
| 系统 | 只在有记录时出现:Rna 自身或这台电脑的问题,不是项目的做法 | 对照分析 |
工具和守卫在界面上合成一个分支。状态依次是 提议中 → 验证中 → 试用中 → 生效中,之后可能 已停用,或 未通过。一次提交形成新的“一代”,是一个不可变的版本。撤回一个基因就是生成去掉它的新一代,而不是回滚整包。生成的工具和技能名字只由项目和本地编号决定,一代一代之间不改名,所以进化不会让对话的缓存失效。
三条进化通道
| 通道 | 什么时候 | 做什么 |
|---|---|---|
| 即时 | 一条持久的反馈或纠正被记下 | JEV 判断它的去向:反复出现的职责变成日程邀请,能机械检查的写成守卫,改变做法的写成技能规则,否则只留在画像 |
| 回合复盘 | 你纠正了一次 | JEV 判断这是不是做法问题;是的话,短复盘,最多提一个技能补丁。同一项目 10 分钟内最多复盘一次 |
| 周期对照 | 被纠正或失败的回合累计三次,或满一周且有十轮以上,两次分析至少隔 24 小时;另外,提示词膨胀到起点的 1.5 倍、且有至少 4 条规则被放进回合很多次却没被照做时也会触发 | 对照好的回合与出问题的回合,提出技能补丁、系统记录,合并臃肿的技能,并对没起作用的基因发出“退役邀请”,由你决定 |
周期对照一次最多提 2 个技能补丁、2 条系统记录、1 次技能合并和 2 条退役邀请。
四道门,先便宜后贵
- 程序检查:结构校验;守卫和工具在临时目录跑冒烟用例,违规样本必须命中,合规样本不能误报。
- 差异复审:JEV 判断补丁是否对准来源问题、是否只改一个基因、是否与已有规则冲突、给你看的一句话是否属实。只拦很确定的问题,拿不准的进入试用。
- 真实执行:守卫对项目里匹配触发条件的现有文件跑一遍。有匹配文件且没有命中就直接生效;没有匹配文件,或者有命中,就进入试用。有命中时会问你“检查「X」在现有 N 个文件里发现 M 处问题,要我改掉吗?”,你可以选“改掉”或“先不用”。
- 在用试用:见下一节。
采用从来不需要你点“采用”。
试用怎么算
新基因的等级从 0 开始,最高 5。转为生效的条件取决于基因的种类:
- 技能规则:被放进回合、并且 JEV 在回合末确认这一轮照着它做了,累计 3 次,期间没有被纠正,就转为生效。没被纠正的回合只显示,不计数。
- 守卫:确认抓到 3 处真问题(命中经过判断是真问题),且没有漏报,就转为生效。误报较多的守卫会从生效退回试用,它的命中要先经过判断,确认是真问题才交给 Rna 处理。
- 你点“对”:立即生效,并加一级。
出现同一件事再次被纠正时,只会让这个基因降一级并记一笔,不会立刻退役。真正会让基因退役的是:
- 你后来说了相反的话(它退役,但不会恢复被它替换的规则);
- 你点了“不再用”;
- 它来源的经验被你撤销或改写,来源消息被改或删,或所在的技能被停用;
- 它与另一条重复,或被新的写法取代。
退役邀请
除了自动退役,Rna 会在对话里问你要不要停用,你选“停用”或“留着”,选“留着”后不再问:
- 技能一个月没被载入过(项目至少存在 30 天,近 30 天至少有 10 条你的消息);
- 一个检查运行了至少 30 次,一次问题都没发现;
- 周期对照里,这条规则好像没起作用;
- 一条经验被判为相关至少 8 次,却一次都没照着做;
- 同一个定时任务里,规则出现之后被纠正得更多了。
每个项目最多保留 8 个检查工具位,满了就不再新增检查,改写成做法,并提议停用从没运行过的检查。
你会看到什么
- 进化页是一棵树。节点用状态点区分:实心是生效中,强调色是试用中,虚线是提议或验证中,灰色是已停用或未通过。等级 2 以上才显示 Lv。
- 点开节点能看到它改了什么、为什么(引用你当时的话)、被放进回合几次、照着做几次、抓到过什么。如果引用的原话所在的消息被改或删,会写明这一点,基因继续起作用。
- 动作有:对、记错了(只用于画像里的经验,是改写文字)、不再用;守卫和技能规则没有“记错了”,可能多一个“深入检查”。
- 你的反馈第一次被用上时,回复下方会有一行小字“按你之前说的:……”。
- 设置里的“系统进化”页是跨项目的只读汇总:反复出现的问题、各项目的真实信号、JEV 判断记录和进化失败的分类。
写文件后的自动检查
project_write 和 project_edit 成功后,匹配触发条件的守卫会运行,命中结果附在工具结果里,模型在同一轮内处理。同一个文件里原本就有的问题只计数,不交给模型,只处理这次写入新增的。
检查还会在这些时候运行:回合结束时(对宿主算出的净改动,只查没经过写入工具改动的文件,有命中时这一轮可以再续一次)、后台运行结束时,以及子代理里。生成的检查读不了某个文件时,这个文件记为“未检查”,不算违规,也不会因此让检查被提议停用。
修订而不只是追加
新规则先和同类规则比较:重复的退役,重叠的合并。已经生效的规则每隔一段时间也会再查一遍。改写时会保留被替换规则里的每一条要求,规则正文连同换行一起交给作者。助手自己得出的结论不会推翻你定的规则,而是问你“换成新的”还是“保留原来的”;你后来说的话会让更早的规则退役。
只改项目自己的技能
从技能市场导入的技能受来源哈希校验,进化不会修改它们,相关规则写进项目自己的主技能。项目说明文件 AGENTS.md 是你自己的,进化只读它:已经写在里面的规则不会再重写一遍,要改请直接编辑它。
删除会一直传到基因
删除一个对话、回退一条消息或删除项目时,由它而来的待办承诺、议程和基因里引用的原话一并清理,不会因此卡住。