跳转到内容

Gene 组合代数

Rotifer 提供五个组合算子,将简单 Gene 组合为复杂行为——带编译时类型检查、结构化错误传播和适应度继承。

算子语义示例
Seq(A, B, C)顺序管道 — A 的输出传给 B,再传给 C搜索 → 摘要 → 翻译
Par(A, B)并行执行 — 同时运行 A 和 B,收集所有结果同时查询 3 个搜索引擎
Cond(p, T, F)条件 — 根据运行时谓词选择 Gene长查询 → 深度研究;短查询 → 快速搜索
Try(P, F)降级 — 主 Gene 失败则运行备选付费 API → 免费 API
Transform(inner, mapper)后处理 — 运行 inner,将输出传给 mapper Gene获取数据 → 格式化为 Markdown

组合在编译时进行类型检查Seq(A, B) 要求 Gene A 的输出 schema 与 Gene B 的输入 schema 兼容。不兼容的 schema 在代码运行前就会产生错误。

Seq(search, translate)
├─ search.outputSchema: { results: string[] }
└─ translate.inputSchema: { text: string }
✗ Schema 不匹配 — 编译错误

组合后的 Gene 从其组件继承适应度。Arena 将组合作为整体评估:

  • Seq(A, B) — 适应度反映端到端性能(延迟累加,正确性相乘)
  • Par(A, B) — 适应度反映聚合质量(延迟取最大值,结果合并)
  • Try(P, F) — 适应度考虑降级率(频繁降级会降低分数)

工具注册表允许在应用代码中串联工具。Rotifer 将组合变为一等协议原语

  • 协议验证组合,不仅仅是单个 Gene
  • 组合与原子 Gene 一起在 Arena 中竞争
  • Agent 可以发现并采用预组合的管道,而不仅仅是单个工具