如果你把自己的一段工作流做成了基因,这一版改的是两件和你有关的事:
- 分数怎么算。 以前,基因跑得快不快、花得多不多,是拿一把固定的尺子量的;现在改成和这个赛季的同类基因比。
- 能做什么。 以前,所有基因拿到的是同一套默认权限;现在每个基因只拿到它自己声明过的权限。要出网,必须是 Hybrid 基因并且写明去哪里,每个请求发出前还要先核对一遍。
v0.9.3 是协议版本号,2026-10-21 随 npm 包 @rotifer/playground 0.30.0 发布。请安装之后的安全修复版 0.30.1。
名词速查:F(g) 是基因在 Arena(基因竞技场)里的适应度分数;phenotype 是基因的说明书,写着它做什么、要什么权限;Hybrid 基因指核心逻辑在沙箱里运行、需要时经受控通道访问外部服务的基因。
分数按赛季算
F(g) 里有两项看效率:跑得多快、花了多少。两项都要拿一个参照值来比:延迟用 L_ref,成本用 Cost_ref。以前这两个参照值是固定常数,一个文本格式化基因和一个网页搜索基因用的是同一把尺子。
现在 rotifer arena submit 会向 Registry 要「同领域、同 fidelity」基因在本赛季的中位数,拿它来打分,并且在输出里写明这次用的是哪一种参照。有中位数时,输出是:
Reference scale: season <n> median of <k> <domain> / <fidelity> genes (L_ref … ms, Cost_ref … fuel)这类有实测记录的基因不足 5 个时,样本太少,算不出中位数,就退回固定常数,并说明原因:
Reference scale: fixed constants — too few measured <domain> / <fidelity> genes this season for a median另有两处小改动,让中位数有更多数据可算:
estimated提交也会上传实测运行记录。- 同一个基因再次提交,会更新它在 Arena 里的那一行,不再报错。
没变的: 分数仍标 estimated,不进排名。F(g) 里还有覆盖度和健壮性两项没有真正测量,在那之前,按赛季算出的分数只是更准的估计,还算不上定论。
只用自己声明过的权限
执行基因的每一条 CLI 路径(agent run、run、test、arena submit 和发布门),以前都给沙箱同一套默认权限。这套默认权限对所有基因都拒绝出网,连声明了要出网的也不例外。
现在每个基因只拿到它的 phenotype 里写明的权限:
- 带
network块的 Hybrid 基因:可以通过rotifer.net访问它列出的域名,别的都不行。 - Native 和 Wrapped 基因:没有网络。即使带了
network块也一样,请求在沙箱入口就被拦下。 - 组合运行时,各用各的权限:一个 Hybrid 基因和一个 Native 基因排在一起,Hybrid 那个能访问它的域名,Native 那个照样不能。
出网按次核对、单独计费
基因的燃料(fuel)只计沙箱里执行的指令。一次网络请求的时间大多花在沙箱外面,所以单独计量,每次请求另有一笔附加费。
0.30.0 起:
- 每个请求发出前先核对:请求次数、已经花在宿主调用上的时间、这次运行的截止时间,任何一项会超就不发。
- 附加费记入
resource_cost,不扣基因的燃料。 以前一次成功的请求,附加费就可能超过整次 CLI 运行的燃料上限,结果是响应拿到了,运行却因燃料耗尽而失败。现在响应照常返回,运行继续。费用照样记在resource_cost里,F(g) 的成本项读的就是它,所以把活搬到网络请求里,并不会让基因显得更便宜。
本版其他改动
- 两项修复:
agent run之后的基因组快照会把编译过的 Native 基因算作可执行;genome import只在你传了--pinned时才提示去掉它。 - 0.30.1:2026-10-24 发布的安全修复版。插件和 Skill 改用 MCP 服务器 0.19.4,依赖按安全公告升级,同时上线了服务端的几项 Arena 与账号改动。
完整列表见更新日志。
走到了哪一步
让基因凭本事竞争,是 Rotifer 的目标。这一版让比较更公平:基因和本赛季的同类比;也让运行更守规矩:基因只能做它声明过的事。
这一版还没有的:
- 分数仍标
estimated,不进排名。 - 还没有云端执行端点,也没有接入 Petri,这两项在之后的版本。现在基因都是在你自己的机器上,通过 CLI 运行。
- Native 和 Wrapped 基因完全不能出网。需要调用外部服务的基因,必须是 Hybrid,并且写明要去哪里。
- 用 TypeScript 写的基因目前还调用不了
rotifer.net。要写能出网的 Hybrid 基因,暂时只能直接导入宿主函数、编译成 WASM。
安装 / 升级
npm install -g @rotifer/playground@0.30.1