← 返回博客

5 分钟创建你的第一个基因

实战教程:安装 Rotifer CLI,创建一个 hello-world 基因,测试它,看到结果——全程不超过 5 分钟。

你即将构建你的第一个 Gene(基因)——一个自包含、可进化的逻辑单元,能在 Rotifer 生态中参与竞争、传播和组合。整个过程大约五分钟。

我们要做的很简单:写一个问候基因,给它一个名字,它返回一句个性化的问候。虽然小,但会完整走过基因的整个生命周期——从写代码到提交 Arena 竞技场。

开始。


前置条件

就这些。不需要 Rust 工具链,不需要 Docker,不需要云账号。CLI 会帮你搞定其余一切。


第 1 步:安装与初始化

全局安装 Rotifer CLI:

Terminal window
npm install -g @rotifer/playground

或者,如果你不想全局安装,用 npx 一步到位:

Terminal window
npx @rotifer/playground init my-first-gene && cd my-first-gene

无论哪种方式,你现在都可以使用 rotifer 命令了。验证一下:

Terminal window
rotifer --version

你应该会看到类似 @rotifer/playground v0.x.x 的输出。


第 2 步:编写基因

创建基因目录和入口文件:

Terminal window
mkdir -p genes/hello-world

用你喜欢的编辑器打开 genes/hello-world/index.ts,粘贴以下代码:

interface HelloInput {
name: string;
}
interface HelloOutput {
greeting: string;
}
export async function express(input: HelloInput): Promise<HelloOutput> {
const name = input.name?.trim() || "World";
return {
greeting: `你好,${name}!欢迎来到 Rotifer 生态。`,
};
}

注意三件事:

  1. express() 是入口函数。 每个基因都导出一个异步 express 函数——这是 Rotifer 调用你逻辑的契约。
  2. 类型化的输入和输出。 接口定义了基因的表型(phenotype)——它接受什么、产出什么。这套 schema 让基因之间可以自动组合。
  3. 纯逻辑,零依赖。 基因是自包含的。没有 import,没有副作用,没有框架样板代码。

第 3 步:包装基因

让 Rotifer 自动生成基因的元数据——它的 phenotype.json

Terminal window
rotifer wrap hello-world

你会看到类似的输出:

✔ Analyzed genes/hello-world/index.ts
✔ Generated genes/hello-world/phenotype.json
Phenotype:
domain: general.greeting
fidelity: Native
inputs: { name: string }
outputs: { greeting: string }

wrap 命令会分析你的代码,提取输入/输出 schema,生成一个表型描述文件。生态系统通过这个文件来发现、组合和评估你的基因——不需要阅读你的源码。


第 4 步:测试

在本地运行基因:

Terminal window
rotifer test hello-world

预期输出:

🧬 Testing gene: hello-world
─── Test 1: default input ───
Input: { "name": "Rotifer" }
Output: { "greeting": "你好,Rotifer!欢迎来到 Rotifer 生态。" }
Status: ✔ PASS (3ms)
─── Summary ───
Total: 1 | Passed: 1 | Failed: 0

test 命令会运行基因的 express() 函数,使用示例输入,并验证输出是否符合表型 schema。你也可以自定义输入:

Terminal window
rotifer test hello-world --input '{"name": "Alice"}'

第 5 步:提交到 Arena

Arena 是基因竞争的竞技场。提交你的基因:

Terminal window
rotifer arena submit hello-world
🏟️ Submitting hello-world to Arena...
✔ Phenotype validated
✔ Gene uploaded
✔ Evaluation complete
Arena Results:
Gene: hello-world
Domain: general.greeting
F(g): 0.72
Rank: #3 of 5 in domain
Status: Active
Your gene is now live in the Arena!

Arena 通过**适应度函数(F(g))**评估你的基因——一个综合评分,考量正确性、资源效率、鲁棒性和利用率。你的基因现在会与同领域的其他基因展开竞争。如果它足够好,其他 Agent 可以通过水平逻辑迁移(HLT)发现并采纳它。


刚才发生了什么?

五分钟之内,你走完了基因的完整生命周期:

编写 → 包装 → 测试 → 提交

每一步在 Rotifer 协议中的对应关系:

步骤做了什么协议层概念
编写express() 中定义逻辑Gene = 模块化、类型化的函数
包装生成 phenotype.jsonPhenotype = 可发现的接口描述
测试在本地验证输入/输出校准层(L2 Calibration)
提交在 Arena 中参与竞争竞争与交换层(L3 Competition & Exchange)

你的基因现在是生态系统的一等公民了。它有类型化的接口、适应度评分和排名。其他基因可以与它组合,Agent 可以发现它,Arena 的选择压力会决定它能否存活下去。

这就是 Rotifer 的哲学:基因通过展示的适应度赢得位置,而不是靠人工审核。


接下来做什么?

你才刚刚触及表面。推荐的下一步:

深入阅读: 查看完整的快速入门指南,了解完整的 10 步流程。