Genome 命令
Agent 的基因组(genome)就是它运行的那组 Gene 以及它们的组合方式。rotifer genome export 把它写成一个 Genome Blueprint 文件(.rgenome);rotifer genome import 在另一台机器或另一个项目里,用这个文件把 Agent 重建出来。
Blueprint 里存的是引用,不是代码。每个 Gene 用它的内容派生 Gene ID 标识,附带在注册表里去哪找它的线索;除非导出时锁定,还会附一条能力查询,原版找不到时,接收方可以按能力找一个等价的 Gene。
rotifer genome export
Section titled “rotifer genome export”把 Agent 的基因组导出为 Blueprint。
rotifer genome export <agent> [选项]参数:
| 参数 | 必填 | 说明 |
|---|---|---|
agent | 是 | Agent 名称或 ID |
选项:
| 标志 | 说明 |
|---|---|
-o, --output <file> | 输出文件(默认:<agent>.rgenome) |
--lock | 只按 ID 引用 Gene,不写能力查询。接收方要么拿到这几个 Gene,要么什么都没有。 |
--min-fitness <n> | 每条能力查询的最低适应度(默认 0.3) |
--min-vg <n> | 建议导入方采用的最低 V(g),取值 [0.5, 1.0) |
-d, --description <text> | 写入 Blueprint 的描述 |
工作流程:
- 从当前项目读取 Agent 的 Gene。每个 Gene 都必须已编译(
rotifer compile),因为 Blueprint 用编译产物的 ID 标识它。 - 为每个 Gene 写入:Gene ID 和角色、组合方式、在注册表里去哪找它(如果它发布到或安装自注册表),以及能力查询(领域、输入输出 schema、最低适应度;用了
--lock就不写)。 - 写文件之前先扫描凭证(键名、值的模式、熵)。只要发现一处,导出就停止,什么都不写。
离线可用,不需要登录;已登录时会把你的用户名记为作者。
示例:
$ rotifer genome export demo-agent Genome Export ─────────────── Agent: demo-agent Composition: Seq Mode: capability + gene IDs genesis-web-search: v2:d032a9e5… Native genesis-code-format: v2:8694260c… Native✓ Credential scan passed (key names, value patterns, entropy)✓ Wrote ./demo-agent.rgenome注意:
- 从未发布到注册表、也不是从注册表安装的 Gene,接收方只能按能力匹配。导出时会给出警告。
- 接收方无法从注册表安装 Wrapped Gene,只能用按能力找到的 Native 或 Hybrid Gene 顶替。这种情况导出时也会警告。
- 没有领域的 Gene 同样会被警告,因为它的能力查询没法匹配。
rotifer genome import
Section titled “rotifer genome import”用 Genome Blueprint 重建一个 Agent。
rotifer genome import <file> [选项]参数:
| 参数 | 必填 | 说明 |
|---|---|---|
file | 是 | Blueprint 文件(.rgenome) |
选项:
| 标志 | 说明 |
|---|---|
--pinned | 精确安装 Blueprint 指定的 Gene,跳过能力匹配 |
--dry-run | 解析每个角色并打印计划,不安装任何东西 |
--yes | 接受其他作者的替代 Gene,不再逐个询问 |
--name <agent> | 新 Agent 的名称(默认用 Blueprint 里的) |
--min-vg <n> | 能力匹配的 V(g) 门槛,取值 [0.5, 1.0)。本参数、Blueprint 的建议值与默认值 0.7 中取最严的。 |
--max-eval-age <days> | 忽略早于这么多天的 Arena 证据(默认 90) |
每个 Gene(角色)怎么定:
- 用了
--pinned,或 Blueprint 没给这个角色写能力查询:从注册表安装 Blueprint 指定的那个确切版本。 - 否则按能力在注册表里搜索。候选必须在已验证的 Arena 档位且未作废;不能是 Wrapped;必须有已发布的 WASM 产物,且 schema 与原版一致;必须达到适应度和 V(g) 门槛;Arena 证据不能早于
--max-eval-age天。 - 没有合格候选时,退回确切版本。
- 来自其他作者的替代 Gene 需要你确认。在终端里会逐个角色询问;在脚本里不会采用(改用确切版本),除非加了
--yes。
所有角色都核对通过之前,项目里不会落下任何东西。Gene 先下载到一个暂存目录,逐个核对 ID:确切版本对照 Blueprint,替代 Gene 对照 Arena 证据。全部通过后才复制进项目并创建 Agent;任何一步失败,就什么都不导入。
示例:
# 先看计划:每个角色会拿到哪个 Gene、为什么,哪些候选被拒$ rotifer genome import demo-agent.rgenome --dry-run
# 再用新名字导入$ rotifer genome import demo-agent.rgenome --name demo-copy某个角色既匹配不到、又装不了确切版本时,导入会停下并指出是哪一个:
$ rotifer genome import demo-agent.rgenome --dry-run✗ Role 'genesis-web-search': alice/genesis-web-search@0.2.0 is not in the Registry (unpublished, or never published)注意:
- 项目里已有完全相同的 Gene 会直接复用;同名但内容不同的 Gene 会让导入停止。
- 同名 Agent 已存在时,用
--name换一个名字。 - 加
--json得到机器可读的输出。