你写了一个 Skill。能跑,能用,用户也满意。
但有一个问题你可能一直没法回答:它到底有多好?
不是「能完成任务」——这个你已经知道了。而是跟所有处理同类问题的方案比,你的 Skill 排在哪里?前 10%?后半段?换一种实现方式,边缘情况会不会处理得更好?
只要没有一个不是你自己写的度量,你就不知道答案。你的 Skill 有一个上限——你只是看不见它。
这正是 Rotifer Gene + Arena 体系想解决的问题。
三条命令,Skill 变 Gene
Gene 是经过 WebAssembly IR 编译、带有机器可读 phenotype 清单、并注册到 Rotifer 生态的 Skill。整个过程大概五分钟。
安装 Rotifer CLI 并创建一个工作区——所有 Rotifer 命令都在工作区内执行:
npm install -g @rotifer/playground
rotifer init my-agent && cd my-agent一条命令把 ClawHub Skill 包装成 Gene 脚手架。第一个参数是你想要的本地 Gene 名,--from-clawhub 接的是这个 Skill 在 ClawHub 上的 slug:
rotifer wrap my-gene --from-clawhub <clawhub-slug>这会在本地生成一个 Gene 目录,包含你的代码和自动生成的 phenotype.json——里面描述了输入、输出和声明的领域。建议检查一下,领域标签决定了你的 Gene 会跟谁比。
同一条命令也能包装本地已有的 Skill,不用绕 ClawHub:
rotifer wrap my-gene --from-skill ~/.cursor/skills/my-skill/编译 Gene 为 WebAssembly IR:
rotifer compile my-gene编译器验证 phenotype 并输出可移植 WASM 二进制:
✓ Gene 'my-gene' compiled to Rotifer IR
Gene ID: 5896324aba8548d6...
Domain: general
Fidelity: Native
IR Hash: f076a966815b2c54...
Output: ./genes/my-gene/gene.ir.wasm
Size: 1199.9 KB如果编译报错,多半是 phenotype.json 里缺少依赖声明,或者有函数签名 WASM 编译器处理不了。报错信息会精确到哪一行。
提交 Arena
按名字提交——Arena 会从工作区里解析这个 Gene:
rotifer arena submit my-geneArena 在 WASM 沙箱里跑这个 Gene,对照它声明的 Schema 检查输出,然后记录它实测到的东西:
✓ Gene 'my-gene' submitted to Arena
Domain: general
Fidelity: Native
V(g): 1.0000
Success Rate: 100.0%
Latency Score: 0.1067
Admission: PASSED
Execution: Sandbox verified (3 runs)
Recorded as: estimated最后一行值得认真读,CLI 不是随口写的。这次运行是真的:Gene 在沙箱里执行了,输出被对照 Schema 检查过,延迟和成本都记录在案。但适应度公式里有两个输入项——社区利用率和对抗输入下的鲁棒性——目前还是占位值,效率项所对照的参照刻度也还是临时值。所以这个分数被标记为估算,暂不参与排名,上面那份记录里也因此没有列出它。你今天拿到的是一份可复现的执行记录和一个安全等级,而不是一份判决。
查看你的 Gene 排在哪里:
rotifer arena list --domain general Local Arena Rankings
# Name Domain F(g) V(g) Fidelity
──────────────────────────────────────────────────────────────
1 my-gene general 1.0000 1.0000 Native加 --cloud 则看已发布的注册表,而不是你自己的工作区。
分数是怎么来的
F(g) 不是谁给你打的主观分,它算自一次真实执行:对照声明 Schema 的正确性、多次沙箱运行的成功率、延迟与资源成本。V(g) 是另一条线——静态安全等级,它不是质量分,一个 Gene 完全可以既安全又没用。
这个分离正是关键。它改变了你优化 Skill 的方式:
- 看哪些沙箱运行失败了,以及为什么
- 对照这个领域真正要求什么,检查你的 phenotype
- 做针对性修改、重新编译、重新提交
- 看数字怎么动
对着一个度量迭代,和对着直觉迭代,是两回事——即使这个度量本身还在被打磨。
保真度:下一个台阶
Native 保真度意味着逻辑直接编译成了 WASM,没有 API 包装层。Wrapped Gene 在 Gene 接口和你的真实逻辑之间还隔着一层开销和潜在故障点——而且必须在 phenotype 里如实声明,因为使用者有权知道自己装的是哪一种。
如果想缩小差距,路径是:rotifer wrap → 优化 → rotifer compile → 重新提交。
但不是必须的。一个如实声明、把活干好的 Wrapped Gene,胜过一个干不好活的 Native——而保真度声明错了,是生态唯一绕不过去的那种失败。
动手试试
整个流程——包装、编译、提交、查看——对你已有的 Skill 来说大约五分钟。
npm install -g @rotifer/playground
rotifer init my-agent && cd my-agent
rotifer wrap my-gene --from-clawhub <clawhub-slug>
rotifer compile my-gene
rotifer arena submit my-gene
rotifer arena list如果你跑了,欢迎把结果发出来——Gene 名字、领域、还有那几个数字。生态的质量取决于其中的 Gene。
你的 Skill 有一个上限。现在你有工具开始度量它了。
