← 返回博客

大多数 AI Agent 是会话,Rotifer Agent 是可执行的 Genome

大多数 AI Agent 本质上是带工具挂钩的 LLM 会话。Rotifer agent 则是由可移植 Gene、显式组合和可度量 fitness 构成的可执行 Genome。

大多数 AI Agent 是会话,Rotifer Agent 是可执行的 Genome

今天的大多数 AI Agent,更适合被理解为"会话系统"。中心是一个 model,system prompt 规定行为,memory 延长上下文,MCP server 和各种 tool adapter 扩展能力边界。这套栈很有用,在很多产品里也完全正确。

但它对一个关键问题回答得还不够好:能力本身如何随时间演化

当一个普通 agent 变得更好时,改进通常并不真正"长"在 agent 身上。有人重写 prompt,有人替换 tool,有人加 retry、cache 或 wrapper service,有人发布一个新的 package 版本。Agent 可以使用这些改进,但这个能力依然不是一个拥有自己 schema、执行边界、排名和生命周期的可移植单元。

Rotifer agent 从另一个前提出发。真正有意思的单位,不只是会话,而是 Gene


大多数 agent 优化的是 interaction

这不是批评,而是设计取舍。

主流 agent 栈优化的是 conversation、orchestration 和 product integration。如果你需要一个 agent 在单个应用里搜索网页、调用 API、更新 ticket 或起草回复,标准做法通常已经足够好:

这样的系统足够灵活,上线也快,也很容易解释给团队听。

但它默认并不会给"能力"本身提供一个一等公民级别的生命周期。一个 tool 可以被调用,但它未必被包装成一个可移植、可度量、可与替代方案竞争、也可被其他 agent 低摩擦复用的逻辑单元。

MCP 解决的是接口问题,不是能力生命周期问题。


以 tool 为中心的设计,代价藏在后面

一旦 agent 超过 demo 阶段,三个摩擦会越来越明显。

第一,能力很难被客观比较。如果两个 tool 都能解决同一个问题,团队往往按熟悉程度、本地 benchmark 或历史惯性做选择。很少有一个会随着能力一起传播的共享 fitness 信号。

第二,能力很难被干净地迁移。一个有用的 function 往往和产生它的整套应用绑在一起:framework 假设、runtime 假设、vendor 假设,以及各种一次性 adapter。

第三,能力改进基本靠人工扩散。即便某个团队发现了更好的实现,传播方式通常仍然是 copy-paste、package 升级,或者写文档通知别人。架构本身没有内建的 selection loop。

这就是为什么很多 agent 在单次会话里看起来很强,但一旦放到长期能力系统里,就显得脆弱。


Rotifer 把能力单位从 tool 换成了 Gene

在 Rotifer 里,基本单位是 Gene:一个功能内聚、声明了 input/output schema、带有明确 fidelity、并且可以被独立评估的能力单元。

一个 Rotifer agent 也就不只是"带一组 tool 的 prompt"。它是围绕 genome 构建出来的运行实体,而 genome 是一组可执行、可组合的 Gene 集合。

这会直接改变系统结构:

维度 今天的大多数 AI Agent Rotifer agent
能力单位 tool function、skill package、adapter Gene
组装方式 app 层 glue code Genome + composition algebra
选择机制 人工指定 Arena 排名和 fitness
迁移方式 拷配置、装 package 可复用的 Gene
执行边界 由应用决定 由能力本身决定
可移植性 往往依赖特定 runtime 面向 cross-binding execution 设计

Rotifer 还把组合关系显式化了。它不是把 orchestration 藏在应用代码里,而是公开提供 SeqParCondTryTryPool 这些组合算子。

这件事很重要,因为 workflow 不再只是某个 codebase 的偶然产物,而变成了能力模型的一部分。


Rotifer agent 不是 prompt wrapper,而是 genome 驱动的执行体

这才是最实际的差异。

一个普通 agent session 回答的是这样的问题: "给定这段 prompt 和这组 tools,这个 model 现在能做什么?"

一个 Rotifer agent 回答的是另一个问题: "给定这套 genome,这些可移植能力应该如何被选择、组合和执行?"

这听起来有点抽象,但看一眼 CLI 就很直观了。

下面这个例子先看 Arena,再按 domain 创建 agent,最后运行它:

rotifer arena list --domain search.web

rotifer agent create search-agent \
  --domain search.web \
  --top 2 \
  --composition Try

rotifer agent run search-agent \
  --input '{"query":"rotifer protocol"}' \
  --verbose

关键不只是"agent 跑起来了",而是它面对的是一个显式的、可排名的、可组合的能力池。这个 agent 操作的是 genome,而不是一堆只在本地应用里成立的隐式 wiring。


演化需要 selection,不只是 installation

差异在这里开始变成结构性的。

在普通 agent 生态里,一个新能力通常通过"有人发布,另一个人安装"进入系统。核心机制是 distribution。

在 Rotifer 里,能力不仅可以被分发,还可以被 评估排序。Gene 会在 Arena 中竞争,而它们的 fitness 会进入生态层的选择机制,影响系统更偏好哪一种能力。

这会改变升级路径。改进不再只是"我们又接入了一个新 tool",它也可以意味着:

生态不再只是静态工具箱,而更像一个带有 selection pressure 的能力市场。


可移植性被内建到了能力层

普通 agent 和 Rotifer agent 的另一个大差异,在于 portability 到底放在哪一层处理。

在很多 agent 系统里,portability 主要是 application concern。你迁代码、重接依赖、再祈祷新环境和旧环境足够相似。

Rotifer 则把这个边界下推到了 capability layer。Gene 可以被编译为可移植 IR,通过不同 binding 执行;在暂时无法完整编译时,也可以先用 wrapped 方式接入。无论是哪种路径,能力的打包方式都不再是事后补丁。

这并不会神奇地消灭所有 integration 工作,但它做了一件更重要的事:它把执行约束更早、更正式地暴露在生命周期里。

对于长生命周期 agent,这是一种更好的底座。


这不意味着什么

Rotifer agent 并不意味着"在所有场景里都优于其他 agent"。

如果你的目标只是围绕单个 model 快速搭一个 product workflow,那么标准的 tool-calling agent 可能更简单,也完全够用。

Rotifer 解决的是另一类问题。它面向的是你开始在意这些事情的时刻:

它也不是要替代 LLM、prompt 或 MCP。它做的是给这些东西提供一个更强的 capability substrate。


最清晰的心智模型

如果只记住一个区别,那就是这句:

大多数 AI Agent 优化的是会话,Rotifer agent 优化的是能力生命周期。

会话可以很聪明、很有用,也可以很自主。能力生命周期则可以是可移植、可组合、可演化的。Rotifer 真正关心的,是把后面这些属性做成一等公民。

所以,"普通 agent"和"Rotifer agent"的差别,本质上不是 UX 差别,而是它到底由什么构成,以及这套架构允许什么样的改进循环发生。


延伸阅读