跳转到内容

Genome 命令

Agent 的基因组(genome)就是它运行的那组 Gene 以及它们的组合方式。rotifer genome export 把它写成一个 Genome Blueprint 文件(.rgenome);rotifer genome import 在另一台机器或另一个项目里,用这个文件把 Agent 重建出来。

Blueprint 里存的是引用,不是代码。每个 Gene 用它的内容派生 Gene ID 标识,附带在注册表里去哪找它的线索;除非导出时锁定,还会附一条能力查询,原版找不到时,接收方可以按能力找一个等价的 Gene。

把 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 的描述

工作流程:

  1. 从当前项目读取 Agent 的 Gene。每个 Gene 都必须已编译(rotifer compile),因为 Blueprint 用编译产物的 ID 标识它。
  2. 为每个 Gene 写入:Gene ID 和角色、组合方式、在注册表里去哪找它(如果它发布到或安装自注册表),以及能力查询(领域、输入输出 schema、最低适应度;用了 --lock 就不写)。
  3. 写文件之前先扫描凭证(键名、值的模式、熵)。只要发现一处,导出就停止,什么都不写。

离线可用,不需要登录;已登录时会把你的用户名记为作者。

示例:

终端窗口
$ 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 同样会被警告,因为它的能力查询没法匹配。

用 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(角色)怎么定:

  1. 用了 --pinned,或 Blueprint 没给这个角色写能力查询:从注册表安装 Blueprint 指定的那个确切版本。
  2. 否则按能力在注册表里搜索。候选必须在已验证的 Arena 档位且未作废;不能是 Wrapped;必须有已发布的 WASM 产物,且 schema 与原版一致;必须达到适应度和 V(g) 门槛;Arena 证据不能早于 --max-eval-age 天。
  3. 没有合格候选时,退回确切版本。
  4. 来自其他作者的替代 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 得到机器可读的输出。