v0.9.0 给 rotifer CLI 内置了一个真实的 libp2p 节点。两台同一局域网的机器,现在能直接交换 Gene 公告——不经过任何中心服务器。传输走 libp2p,发现靠 Kademlia,传播用 GossipSub。
这是 Rotifer 网络层第一个能跑起来的版本。它刻意做得很小、标着实验性,这篇文章会准确说清它现在能做什么、还不能做什么——一个去中心化网络的可信度,正是从这种准确里长出来的。
@rotifer/playground 现在是 v0.9.0;@rotifer/mcp-server 走自己的版本线,当前 v0.9.1。两者都已上 npm。
一个真实的 P2P 节点——就在你的机器上
为什么它不是中心化的
Rotifer 的前提是:能力会进化——Gene 在 fitness 上竞争,更好的扩散开来。这个过程需要一个运行的基底。中心注册表可以托管它,但注册表同时是单点控制、也是单点故障——谁运营它,谁就决定什么能传播,也能随时关停。点对点这一层移除了这个卡点:节点直接交换公告,于是一个 Gene 无需任何一方放行就能扩散。这个机制更接近生物学里的水平基因转移,而不是一个分派任务的中心调度。
跑起来
CLI 现在内嵌了一个真实的 libp2p 节点。在机器 A:
rotifer network start --host 0.0.0.0 --port 9878
rotifer network status # 复制 /ip4/192.168.x.x/tcp/9878 那一行在同一 Wi-Fi 下的机器 B,把 --bootstrap 指向 A 的地址:
rotifer network start --host 0.0.0.0 --port 9878 \
--bootstrap /ip4/192.168.x.x/tcp/9878
rotifer network peers # 一两秒内 A 就出现了在 A 上 announce 一个 Gene,B 就收到:
rotifer network announce hello-world # 在 A
rotifer network received # 在 B这条公告跨机器、走真实的 P2P 传输:libp2p 负责搬运字节,Kademlia 让 B 凭一个 bootstrap 地址就能找到 A,GossipSub 把公告中继给每一个订阅了的节点。
为什么先传 metadata
一条公告携带的是 metadata——一个 Gene 是什么、谁有它——而不是 Gene 二进制。这是之后每一项能力都要建立在其上的发现层。先让 Gene 以公告的形式流动起来,之后拉取真正的代码、给它评分、传播优胜者,就都是在一个能跑的地基上的增量,而不是推倒重来。先把传输层最小的、诚实的那一块做出来,后面的每一块才有得做。
这也划出一条诚实的边界。因为今天只有 metadata 在流动,收到公告的节点知道某个 Gene 存在,却还无法拉取或验证它的代码——拉取二进制、并对它做认证,是被刻意分出去的、之后的一层。我们宁愿把这条限制讲清楚,也不把它含糊过去。
v0.9 走到了路的哪一步
把话说准:自主进化的 Agent 网络是 Rotifer 的目标——而 v0.9 落地的,是通往那里的第一块传输层。今天它是实验性的,而且故意做得很小:两台以上机器、同一局域网、手动 --bootstrap、只传 metadata(公告,不是 Gene 二进制)。它还不能自动发现节点、还跨不了公网、节点间也还没有 fitness 驱动的交换——这些是之后的里程碑。我们在如实标注走到了哪一步,而不是宣布已经到达。
v0.9 经济基座
Open Mesh 与 v0.9 经济工作一同发布:声誉动态、自动赛季重置、fitness/权重展示。Gene 随时间累积声望,你看到的数字同时反映原始 fitness 和挣来的声誉。fitness 衡量一个 Gene 在它的任务上表现如何;声誉衡量它跨多次运行、多个赛季的稳定程度。把两者并排显示,意味着一次走运的高分无法冒充一段长期的成绩。
赛季重置有一个具体的理由。一个永不重置的排行榜会奖励资历而非实力——最早的 Gene 靠惯性、而非更优守住位置。按节奏重置让 Arena 保持可竞争:今天发布的更强的 Gene,依然能爬过那些只是先到的。
Hybrid Fidelity 基因
Gene 现在可以声明更多关于自己的信息:外部依赖、降级行为、仿真规格。落到实处,就是一个 Gene 会说明当它的环境不可用时如何表现,而不是静默失败。
设想一个调用外部 API 的 Gene。有了声明的降级规格,它会告诉运行时:当那个 API 挂了时该怎么办——返回缓存结果、优雅降级、还是显式报错——于是这个行为成了 Gene 契约的一部分,而不是调用方无法推理的、环境的偶然产物。
rotifer doctor
一个新的工具链健康检查:
rotifer doctor它在你构建前就标出缺失或配置错误的依赖,让坏掉的环境以一份清晰报告的形式出现,而不是一个令人困惑的编译错误。最常见的首次运行失败,就是一个没装全的工具链——缺了原生构建、缓存过期、Node 版本不对——rotifer doctor 把这些从晦涩的堆栈跟踪变成一份你能照着处理的清单。
这一版还修复了 OAuth 登录回调——现在它能可靠地绑定到本地端口,rotifer login 不再偶发超时。
接下来
从这里往前,网络层沿三条线生长:
- 自动发现 — 节点无需手动
--bootstrap就能找到彼此。 - 跨公网 — NAT 穿透与中继,让一个节点能从任意家庭网络加入,而不只是同一局域网。
- fitness 驱动的交换 — Gene 按优劣在节点间传播,而不只是公告。
每一条都建立在 v0.9 落地的这层传输之上。
安装 / 升级
npm install -g @rotifer/playground@latestMCP Server 用户:
npm install -g @rotifer/mcp-server@latest