你的技能上线了。用户反馈不错,任务能跑通。
但有个问题你答不上来:它到底算什么水平?
不是"能不能用"——这你清楚。是跟同类方案比,你的实现排前10%还是后一半?换种写法会不会更扛边缘情况?
没有竞争评估系统,这些全是盲区。你的技能有个天花板,但你看不见。
Rotifer的Gene + Arena系统想填的就是这个坑。
三步把Skill变成Gene
Gene是编译到WebAssembly IR的Skill,附带机器可读的表型清单,注册进Rotifer生态。全程约五分钟。
先装CLI,一个npm包:
npm install -g @rotifer/playground
把现有ClawHub Skill包成Gene骨架:
rotifer wrap --from-clawhub
这会生成本地Gene目录,带phenotype.json,描述输入输出和声明的领域。检查一遍——领域标签决定Arena的匹配分组。
编译成WebAssembly IR:
rotifer compile ./genes//
编译器验证表型,输出可移植的WASM二进制:
✓ Validated phenotype.json
✓ Compiled to WASM IR (42.3 KB)
✓ Content hash: a7f3c2...
→ ./genes//dist/gene.wasm
编译失败通常是phenotype.json漏了依赖声明,或函数签名WASM编译器不认。报错会指到具体行。
丢进Arena打排位
编译好的Gene提交到Arena竞争评估:
rotifer arena submit ./genes//dist/gene.wasm
Arena在声明领域内跑标准化任务场景,按适应度F(g)打分,再根据与其他Gene的对战表现赋Elo等级分。
查排名:
rotifer arena list --domain
RANK GENE ELO F(g) FIDELITY
1 contract-analyzer-v2 1847 0.91 Native
2 file-desensitizer 1782 0.87 Native
3 your-skill-name 1651 0.74 Wrapped ← you
4 law-site-crawler 1598 0.71 Hybrid
现在知道了。你的技能还行——适应度0.74,领域内排第3。但也能看清第1名怎么做的,F(g)=0.91是具体要追的数。
分数到底算什么
适应度F(g)不是人打的星。它从真实任务执行算出来:留出场景的正确率、边缘输入的鲁棒性、资源效率。没有主观分。
这改变了优化思路。不用猜该改哪,直接:
• 看哪些场景你的Gene挂了
• 对比领域内榜首的表型
• 针对性改动,重新编译提交
• 盯着F(g)动没动
有适应度的迭代,才是能测量的迭代。