本文由 莫潇羽@无忆研习社(www.wuyi.wiki)撰写,转载请注明出处。
快速摘要
Ruflo(前身是 Claude Flow)是目前 GitHub 上星标最多的开源 AI 多智能体编排平台,专为 Claude Code 打造,核心功能是把一个孤立运行的 AI 实例,扩展成一支可以并行协作、共享记忆、自我学习的 Agent 团队。截至 2026 年 5 月,该项目已积累超过 40,000 个 GitHub Star,拥有 6,000+ 次代码提交,支持 100+ 种专业化 Agent 角色,配备了 314 个原生 MCP 工具。
在性能层面,Ruflo v3 在 SWE-bench(软件工程基准测试)上跑出了 84.8% 的解题率,同时让 Claude API 的调用成本最多降低 75%,两项数据在开源项目里都属于第一梯队。
Ruflo 的三个核心能力:
- Swarm(蜂群):在同一机器上组建多 Agent 团队,分工合作完成复杂任务
- Federation(联邦):让不同机器、不同团队的 Agent 安全互通,数据不出本节点
- Self-Learning(自学习):SONA 神经引擎记录每次任务轨迹,下次遇到类似问题自动参考成功路径
安装只需一行命令,注册为 MCP 服务器后,Claude Code 即可自动调用这套协作体系,不需要你手动管理每个 Agent。
想看完整拆解,往下翻。
一、从 Claude Flow 到 Ruflo:这东西从哪来的
2025 年 5 月,一个叫 Reuven Cohen 的开发者在自己的机器上起了个头。他是 Agentics Foundation 的创始人,平时喜欢研究 AI Agent 的协作模式。那个时候 Claude Code 刚刚出现,大部分人还在用单个 Agent 一问一答——Reuven 觉得这种用法远没到边,于是他开始写一个框架,让多个 Claude 实例能够分工协作、共享上下文。
这个框架最初叫 Claude Flow。
起步阶段进展很快。2025 年 Q1 有约 800 次提交,Q2 进化到 1200 次,到 Q3、Q4 已经进入每季度 1500 次以上的密集迭代期。到 2026 年 1 月,项目积累了足够多的企业用户和社区贡献者,同时为了规避与 Anthropic 商标可能的冲突,团队把项目正式更名为 Ruflo——"Ru" 取自作者网名 rUv,"flo" 对应他偏爱的 flow state(心流状态)。npm 包和 CLI 命令出于向后兼容的考量,仍然保留了 claude-flow 的历史命名。
2026 年 2 月底,Ruflo v3.5 正式发布,这是项目历史上第一个生产级 stable 版本。莫潇羽@无忆研习社在第一时间跟进了这个版本的技术文档,整体感受是:从这个版本开始,Ruflo 才真正脱离了"实验性框架"的阶段,变成了一个可以认真对待的工程工具。
目前最新版本是 v3.6,代码库已彻底用 TypeScript 重写,底层关键路径(策略引擎、向量嵌入、证明系统)则用 Rust 编译成 WebAssembly 内核运行,在保持跨平台兼容的同时拿到了接近原生的执行速度。
整个项目从零到 40k Star,用了不到一年时间,在 GitHub 的 AI 工具板块属于增速非常快的项目之一。有趣的是,这个增速不是靠 demo 视频刷出来的,翻翻 issue 区和 discussion,里面有大量真实的技术讨论和企业用户的反馈,说明社区里确实有人在认真用。
1.1 版本演进脉络
把 Ruflo 的版本迭代整理成一条时间线,可以清晰看出这个项目的技术方向是怎么一步步确定的:
|
阶段 |
时间 |
里程碑 |
|
v1.x(实验期) |
2025 Q1–Q2 |
基础的 Claude Code 多 Agent 包装,87 个 MCP 工具,64 个 Agent 角色 |
|
v2.x(快速迭代期) |
2025 Q3 |
引入 Hive-Mind 架构,Queen-Worker 分工体系,SQLite 持久记忆 |
|
v3.0-alpha(重写期) |
2025 Q4 |
TypeScript + WASM 双引擎架构,SONA 神经网络引入,87 → 200+ MCP 工具 |
|
v3.5(首个稳定版) |
2026 年 2 月底 |
首个 Production-ready 版本,215 工具,Federation 稳定可用 |
|
v3.6(当前版) |
2026 年 Q2 |
314 MCP 工具,16 种 Agent 角色 + 自定义,19 个 AgentDB 控制器 |
从 v1 到 v3.6,变化最大的是两件事:一是 MCP 工具从 87 个扩充到 314 个,覆盖面从"基础 Agent 协作"扩展到了"全生命周期软件工程";二是记忆系统从简单的 SQLite 存储升级到了有 HNSW 向量引擎、SONA 神经学习、ReasoningBank 的多层次体系。后者是 Ruflo 从"工具集合"变成"有学习能力的系统"的关键跃升。
1.2 项目的开源姿态
Ruflo 采用 MIT 许可证,完全免费,没有任何付费订阅或 Feature Gate。这一点我觉得挺难得——很多这类工具在开源外壳里藏了企业版功能锁,Ruflo 的 GitHub 仓库里,Federation、自学习、GOAP 这些"高级功能"全都在开源代码里,不存在"装了免费版但关键功能要付费才能用"的情况。
当然,底层调用的 Claude API 是有费用的,Ruflo 框架本身的运行成本主要来自 API 调用。这也是为什么 Ruflo 花了不少精力在三层路由和 ruvLLM 本地模型层上——它知道用户最在意的成本痛点在哪。
二、Ruflo 解决的根本问题:单 Agent 的天花板
要搞清楚 Ruflo 值不值得用,得先想明白单个 AI Agent 的局限在哪。
一个普通的 Claude 使用场景是这样的:你写一段需求,Claude 给你输出代码,你检查,有问题再让它改。整个过程是严格线性的——一个请求,等一个回应,再发下一个请求。如果你同时要处理多个模块,或者任务链条特别长(比如"研究背景→设计方案→写代码→补测试→做 Code Review→生成文档"),单 Agent 要么排队顺序执行,要么你得在多个对话窗口之间来回跳,非常耗神。
这里有几个具体的痛点:
上下文碎片化。 同一个项目里,后端 API 的上下文、前端组件的上下文、数据库迁移的上下文分散在不同对话里,Agent 之间互不知晓。你改了接口定义,前端的 Agent 根本不知道,最后整合的时候一堆不一致。
串行效率低下。 很多子任务其实互相独立,完全可以并行——比如写单元测试和写文档可以同时进行,不需要等着。但单 Agent 只能一件一件来,速度天然受限。
知识无法沉淀。 每次开新对话,Agent 都从零开始。你上周踩过的坑、找到的解法、总结的模式,下次遇到类似问题又得重新摸索一遍。
角色定位模糊。 让一个 Agent 既做架构设计、又写代码、又检查安全漏洞,质量往往拉路。专业的事应该让专业的角色来做。
Ruflo 的思路是:把上面这些问题分别用 Swarm(并行分工)、共享记忆(AgentDB)、自学习(SONA) 三套机制来解决。它不是在"让 AI 更聪明",而是在"让 AI 协作得更像一个有组织的团队"。
用一个类比来理解:单个 Agent 像一个全栈独立开发者,什么都会但什么都自己扛;Ruflo 把这个开发者变成了一个小型研发团队,有架构师、有 coder、有测试、有安全审计,分工明确,并行推进,结果通过 Reviewer 汇总,效率和质量都上了一个台阶。
2.1 单 Agent 工作流的成本账
传统的单 Agent 对话工作流,背后有一笔经常被忽略的成本账。
每次你开一个新的对话,模型其实什么都不记得。你上午告诉它"我们的认证方案用 JWT,Token 有效期 24 小时",下午再开一个窗口继续开发,你得把这个背景重新说一遍。这不只是"重复劳动"那么简单——每一次把背景信息塞进 prompt,就是额外的 token 消耗。一个复杂项目如果有大量的业务约束、技术选型、架构决策需要持续传递,这部分 token 浪费可以非常可观。
而且单 Agent 对 token 上下文长度也有天然限制。遇到一个特别大的代码库,一次性全塞进去分析不现实,分批喂进去又面临"前面分析的结论已经滚出上下文窗口"的问题。多 Agent + 共享向量记忆库的方案,把不同模块分配给不同 Agent 处理,同时把关键知识存到向量库里随时检索,才是真正能扩展到大型项目的方案。
2.2 为什么不直接"多开几个对话"
很多人的第一反应是:我多开几个 Claude 对话窗口,手动分配任务不就行了?
这个方案在任务简单时确实可行,但有几个明显缺陷。第一,不同窗口之间的信息同步完全靠你手动做——A 窗口写好了接口定义,你得复制粘贴到 B 窗口。B 窗口写完前端代码发现接口定义有问题,你得再把问题带回 A 窗口。来回协调的认知负担不比写代码小。第二,这种方式完全没有任务编排机制,子任务之间的依赖关系要靠你自己维护,一旦某个步骤失败,你需要手动判断应该重试哪个步骤、修改哪个 Agent 的输入。第三,历史经验完全无法积累,每个窗口都是一次性的,关掉就清空。
Ruflo 解决的正是这套"手动协调"的苦活:任务依赖、状态同步、失败重试、经验积累,全部由框架层处理,你只需要描述目标。
这不是噱头。84.8% 的 SWE-bench 解题率和 75% 的 API 成本节省,是实打实跑出来的数据,背后就是这套多 Agent 并行协作的架构在发挥作用。
三、整体架构:给 Claude Code 装一套"神经系统"
Ruflo 的官方文档里有一句话我觉得描述得挺准:
一次 init,就给 Claude Code 装上了一套神经系统。
这套"神经系统"的内部结构,画成分层架构大概是这样的:
用户 / Claude Code / CLI
│
▼
Ruflo 编排层(MCP 服务器 + 路由 + 27 个 Hooks 钩子)
│
▼
Swarm 协调层(蜂群拓扑 + 共识机制 + Queen 调度)
│
▼
100+ 专业化 Agent(coder / tester / reviewer / architect / security...)
│
▼
记忆与学习层(AgentDB + HNSW 向量引擎 + SONA 神经网络)
│
▼
底层 LLM(Claude / GPT / Gemini / Cohere / 本地模型)
│
└──────────────────────────────────┐
▼
Learning Loop(学习回路)
将每次任务结果反馈到记忆层
整个调用链路就是:你发一个任务请求→编排层路由分配→Swarm 分解成子任务→各个专业 Agent 并行执行→结果汇入共享记忆→Reviewer Agent 整合输出→学习回路更新记忆库。
这里有几个关键组件值得单独说一下。
MCP 服务器与工具集。 Ruflo 本质上是以 MCP 服务器的形式挂载到 Claude Code 上的。安装注册完成后,Claude Code 就多了 314 个可以直接调用的工具,涵盖 swarm 管理、记忆读写、安全扫描、GitHub 操作、CI/CD 集成等方向。你不需要手动记住这 314 个工具——大多数情况下,Ruflo 的 Hooks 路由层会根据任务类型自动选择对应的工具调用。
Hooks 钩子系统。 Ruflo 里有 27 个生命周期钩子(也有文档提到 33 个,包含 teammate 相关的),覆盖任务前、任务后、Agent 初始化、会话开始/结束等时机。这套 Hooks 机制让整个多 Agent 协作流程在后台自动运转,开发者感知不到太多额外的操作负担——你还是像以前一样跟 Claude Code 对话,Ruflo 在后面默默协调。
WASM 内核。 策略引擎、向量嵌入计算、密码学证明这三块性能最敏感的部分,用 Rust 编译成了 WebAssembly 模块运行。这让 Ruflo 在处理高并发 Agent 请求时不会因为 JavaScript 的单线程瓶颈而卡死,也是整体性能跑出来的底层原因之一。
神经路由引擎 SONA。 这是 Ruflo 自研的一个小型神经网络模块,负责从历史任务轨迹里提取成功模式,并在新任务分配时作为参考依据。简单理解:Agent 做完一个任务,SONA 会记住"这类任务用这个策略解决效果好",下次碰到类似任务,它会优先走这条成功路径,而不是每次都从零探索。
3.1 MCP 协议:Ruflo 与 Claude Code 的接口标准
理解 Ruflo 架构的关键,是先搞清楚 MCP(Model Context Protocol) 是什么。
MCP 是 Anthropic 推出的一套开放协议标准,定义了"AI 模型如何调用外部工具"的接口规范。你可以把它类比成 AI 领域的 USB 接口:任何遵循 MCP 标准的工具,都可以被支持 MCP 的 AI 系统调用,而不需要每次都写定制化的集成代码。
Ruflo 以 MCP 服务器的形式挂载到 Claude Code,意味着 Claude 可以通过标准的工具调用接口(tool call)来触发 Ruflo 的 Swarm 初始化、Agent 生成、任务分发等所有功能。对 Claude 来说,调用 Ruflo 的工具和调用一个普通的文件系统工具没有本质区别——都是一次 tool call,只是 Ruflo 这边收到请求后会启动一套完整的多 Agent 协作流程。
Ruflo v3.6 里内置了 314 个 MCP 工具,分成五个工具组:
Core 基础服务:健康检查、配置管理、插件发现
Intelligence 智能服务:SONA 神经训练、模式识别、推理库管理
Agents Agent 管理:生成、调度、状态监控、终止
Memory 记忆服务:向量写入/检索、记忆整合、语义搜索
DevTools 开发工具:代码分析、GitHub 操作、CI/CD 集成
大多数时候你不需要直接调用这些工具——Hooks 系统会在任务执行的各个生命周期节点自动触发对应的工具,你感知到的只是"Claude 在帮我处理任务"。但如果你需要精细化控制某个环节,这些工具也都可以手动调用。
3.2 为什么底层选择 Rust + WebAssembly
Ruflo 的整体逻辑层是 TypeScript,但性能关键路径用 Rust 编译成 WASM 运行,这个技术选型值得单独说一下原因。
TypeScript(Node.js 运行时)是单线程事件循环模型,做 I/O 密集型任务没问题,但遇到 CPU 密集型计算——比如向量嵌入、密码学证明、策略引擎规则评估——单线程的局限就出来了:一个重计算任务会阻塞整个事件循环,导致其他 Agent 请求排队等待。
把这部分计算移到 WASM 模块里有两个好处:第一,WASM 可以在独立的执行沙箱里运行,不阻塞 Node.js 主线程;第二,Rust 编译出来的 WASM 性能接近原生 C/C++,处理矩阵运算和哈希计算的速度远超 JavaScript。这就是 Ruflo 的向量搜索能跑出"比传统向量数据库快 150 倍以上"的技术基础。
四、Swarm 蜂群机制:多 Agent 协同的核心
Swarm 是 Ruflo 最核心、也是最有意思的功能,值得多花点篇幅说透。
4.1 什么是 Swarm
"Swarm"字面意思是蜂群。Ruflo 借用这个概念,把多个 Agent 组成一个有层级的协作单元。一个基本的 Swarm 里,有负责统筹调度的 Queen(协调 Agent),也有执行具体子任务的 Worker(工作 Agent)。Queen 接到任务后负责分解和分配,Workers 各自认领自己擅长的部分并行去做,做完结果汇回来再经过 Reviewer 整合。
这种结构的好处在于:任务天然被切成了并行的子任务,不需要等一个做完再做下一个,整体吞吐量成倍提升。
4.2 Swarm 拓扑结构
Ruflo 支持几种不同的 Swarm 拓扑,用来适配不同的任务场景:
|
拓扑类型 |
适用场景 |
特点 |
|
|
编码类、需要强一致性的任务 |
Queen→Worker 严格分层,防止 Agent 漂移 |
|
|
研究、头脑风暴类任务 |
Agent 之间平等互通,集体决策 |
|
|
顺序依赖强的任务链 |
Agent 串联,前一步输出作为后一步输入 |
|
|
以某个核心 Agent 为枢纽分发 |
轻量,适合简单分工 |
对于日常的编码任务,Ruflo 官方推荐使用 hierarchical 拓扑,原因是它在多 Agent 并行时能最有效地防止任务漂移——就是那种 Agent 做着做着跑偏、干了不该干的事的情况。
4.3 16 种内置 Agent 角色
Ruflo v3.5 内置了 16 种预定义 Agent 角色(加上用户可以用 YAML 自定义的类型),覆盖了软件开发的主要环节:
编码族:
- coder (代码实现)
- architect (架构设计)
- refactor (代码重构)
- reviewer (代码审查)
测试族:
- tester (单元测试编写)
- qa-engineer (质量保障)
- browser-test (浏览器自动化测试)
安全族:
- security (CVE 漏洞扫描)
- ai-defender (Prompt 注入检测)
文档族:
- doc-writer (文档自动生成)
运维族:
- devops (CI/CD 集成)
- db-migrator (数据库迁移)
- monitor (日志与可观测性)
规划族:
- researcher (背景研究与资料收集)
- analyst (需求分析)
- planner (任务拆解与规划)
每个 Agent 都有自己的专属系统提示(System Prompt),让它在被分配到对应任务时专注于自己的角色定位,不会乱来。
4.4 一个实际的 Swarm 操作示例
用一个具体场景说明:我想用 Ruflo 让多个 Agent 并行帮我实现一个带认证的 REST API。
第一步:初始化 Swarm
# 初始化一个层级型 Swarm,最多 8 个 Agent
npx ruflo swarm init --topology hierarchical --max-agents 8 --strategy specialized
第二步:生成各类专业 Agent
# 生成研究员 Agent,负责调研方案和技术选型
npx ruflo agent spawn -t researcher --name "tech-researcher"
# 生成架构师 Agent
npx ruflo agent spawn -t architect --name "api-architect"
# 生成编码 Agent
npx ruflo agent spawn -t coder --name "backend-dev"
# 生成测试 Agent
npx ruflo agent spawn -t tester --name "qa-engineer"
# 生成安全审查 Agent
npx ruflo agent spawn -t security --name "security-auditor"
第三步:下达总任务
npx ruflo task orchestrate \
--task "实现一个带 JWT 认证的 REST API,包含用户注册、登录、CRUD 接口,并附带完整单元测试和安全检查" \
--strategy parallel
执行后,Queen Agent 会把总任务拆解成若干子任务,分配给不同的 Worker。大概分法是:
tech-researcher调研 JWT 最佳实践和常见框架api-architect拿到调研结果后设计接口结构backend-dev实现核心代码qa-engineer并行编写测试(不需要等代码全部写完,可以先写测试框架)security-auditor在代码产出后做 CVE 扫描和 Prompt 注入检测
查看进度
npx ruflo swarm status
# 输出每个 Agent 的当前状态、已完成步骤、token 用量等
整个流程里,莫潇羽@无忆研习社自己折腾时发现一个比较实用的习惯:在大型任务上先跑 --strategy specialized(专业化策略),让 Ruflo 自动分配合适角色;小任务或者临时探索性任务就直接用 --strategy adaptive(自适应策略),让系统根据任务内容动态决定。
4.5 Queen-Worker 协作细节
Queen Agent 不只是"分配任务的传声筒",它在整个 Swarm 生命周期里承担了几个重要职责。
任务分解。 Queen 接到一个宏观任务后,会先做任务分析,判断任务可以被分解成哪些独立子任务,以及子任务之间的依赖关系。依赖关系明确后,可以并行的子任务立刻并行分配,有前后依赖的子任务按顺序排队。
资源调度。 如果你的 Swarm 里有 8 个 Agent 槽位,但当前任务只需要 4 个角色,Queen 不会浪费另外 4 个——它会把多余的槽位用来给同一个角色开多个并发实例(比如同时启动 2 个 coder,各自处理不同的模块),最大化并行度。
共识与冲突解决。 当多个 Worker Agent 对同一个决策有不同意见时(比如两个 architect 对某个接口设计的方案有分歧),Swarm 里有一套投票共识机制:各 Agent 提交各自的方案和置信度评分,Queen 根据综合评分选出最优方案,或者在置信度差距不大时把两个方案都保留,让 Reviewer 最终裁决。
结果汇总。 所有 Worker 完成后,Queen 负责把分散的产出物组装成一个完整的结果。这个汇总步骤不只是"把文件拼在一起"——Queen 会检查各部分之间的接口一致性,比如 coder 输出的函数签名和 tester 写的测试用例里调用的签名是否匹配。
4.6 防漂移机制(Anti-Drift)
"Agent 漂移"是多 Agent 系统里一个常见的麻烦:Agent 在执行任务的过程中,因为上下文变化或者推理偏差,逐渐偏离了最初的任务目标,干了不该干的事。比如让一个 coder 修一个 bug,它可能会因为觉得"顺手"就把旁边的代码也重构了,触发了一堆不相干的测试失败。
Ruflo 的 hierarchical 拓扑对 Anti-Drift 做了专门的设计:
- 每个 Worker 在启动时会从 Queen 处获取一份"任务边界定义",里面明确了这个 Worker 被允许修改哪些文件/模块、不允许触碰哪些范围
- Ruflo 的 MutationGuard 控制器会在 Agent 写操作发生前做密码学验证,确认写操作的目标路径在任务边界内
- 如果某个 Agent 尝试操作边界外的资源,MutationGuard 会阻断这次操作,并通知 Queen,由 Queen 决定是重新限制任务边界还是新生成一个专门处理该部分的 Agent
这套机制让"一堆 Agent 一起疯狂输出"的担忧基本打消了——至少在 hierarchical 拓扑下,每个 Agent 都在自己的"权责范围"内工作。
4.7 Autopilot 模式
除了手动管理 Swarm,Ruflo 还有一个 Autopilot(自动驾驶) 模式:
/autopilot enable
开启后,你只需要描述目标,Ruflo 会全程自动拆解任务、生成 Agent、协调执行、汇总结果——你盯着输出就行了。这个模式适合那些你对实现细节不想太多干涉的情况,比如"帮我重构这个模块"或者"给整个代码库补全文档"。
五、Federation 跨机器协作:安全模型是怎么设计的
如果说 Swarm 解决的是"一台机器上多个 Agent 怎么合作"的问题,那 Federation 解决的是"不同机器上、不同团队的 Agent 怎么安全互通"。
5.1 Federation 的典型使用场景
举一个实际场景:你们公司有两个团队——风控团队和产品团队。风控团队的 Agent 在自己的服务器上跑,处理着用户的交易数据;产品团队的 Agent 在另一台服务器上跑,负责功能开发。
现在产品团队需要"欺诈行为模式"的信号,来优化某个功能的风险判断。理想状态是:风控团队的 Agent 能把"这类行为有风险"的信号传递给产品团队的 Agent,但风控团队的原始客户数据不应该离开自己的服务器。
这就是 Federation 要解决的问题:共享有价值的信息,但不共享隐私数据。
5.2 Federation 的安全机制
Ruflo 的 Federation 模型在安全设计上做了几层保障:
身份认证层。 所有加入 Federation 的 Agent 节点,都必须通过 mTLS + ed25519 挑战响应完成身份验证。mTLS 是双向 TLS,意味着不仅服务端验证客户端,客户端也验证服务端,两边都得出示证书。ed25519 是目前安全性和性能综合最好的椭圆曲线签名算法之一。两者组合,确保了"你说你是谁,你得拿出密码学证明"。
整个认证流程不需要 API Key,也不需要共享秘钥,证书由 Ruflo 在 federation init 阶段自动生成和管理。
PII 过滤层。 所有离开本节点的消息,在发出前会经过 PII(个人身份信息)过滤管道,自动脱敏姓名、手机号、身份证号、IP 地址等敏感字段。这道过滤是在数据离开节点之前就处理的,不是依赖对端去保密。
信任评分机制。 每个外部 Agent 节点在刚加入时都是"不信任"状态,只能看到 Discovery 信息(我有哪些 Agent、能做什么),看不到内部记忆。随着它的行为被持续观察,信任分数逐步升级。如果某个节点做了异常操作,信任分立刻降级,甚至自动踢出——整个过程不需要人工干预。
审计日志。 每一条跨节点的消息都有审计轨迹,可追溯、可合规审查。这对有合规要求的企业用户来说很重要。
5.3 Federation 操作方式
实际使用非常简单,Ruflo 把复杂的证书管理和握手协议都封装好了:
# 在你的节点上初始化 Federation
npx ruflo federation init
# 加入另一个节点的 Federation(对方先 init,把邀请码给你)
npx ruflo federation join --endpoint https://远端节点地址 --token 邀请码
# 查看当前联邦状态
npx ruflo federation status
# 给某个节点任务(加上 --federation 标记即可)
npx ruflo task orchestrate \
--task "分析欺诈模式并生成摘要报告" \
--federation remote-team-agent
整个流程里你不需要手动配置证书、不需要管 TLS 握手细节——federation init 和 federation join 两条命令,节点间就开始安全通信了。
六、自我学习与记忆系统:SONA 和 AgentDB 怎么工作
很多 AI Agent 框架都声称有"记忆"功能,但仔细看,往往只是把对话历史存起来塞进 prompt。Ruflo 的记忆系统做的事情要复杂一些。
6.1 AgentDB:分层持久化存储
AgentDB 是 Ruflo 的核心记忆后端,v3.5 版本里有 19 个控制器(Controller),支持多种存储后端,包括 Postgres、Redis、SQLite、DuckDB、Qdrant、Weaviate、Milvus 等。
这些控制器不是并列关系,而是有功能分工的:
|
控制器类型 |
功能定位 |
|
|
分层记忆,把短期、中期、长期记忆按重要度分开存储 |
|
|
记忆整合,把碎片化的任务轨迹合并成结构化知识 |
|
|
语义路由,根据查询意图把请求分发到最合适的记忆分区 |
|
|
密码学验证写操作,防止记忆被篡改 |
|
|
操作审计日志,每次记忆读写都有可追溯的凭证 |
|
|
基于图神经网络的关联记忆,挖掘知识节点之间的联系 |
HNSW 向量引擎。 Ruflo 内置了基于 HNSW(Hierarchical Navigable Small World)算法的向量索引,搜索速度据官方基准测试比传统向量数据库快 150 到 12500 倍,极大降低了 Agent 检索历史记忆的延迟。
HNSW 是一种图结构的近似最近邻搜索算法,简单理解:它把向量数据组织成多层图,查询时从最顶层快速定位大概位置,再层层向下精确找到最近邻,整体复杂度是对数级的,远比暴力全量搜索快。
6.2 SONA 神经学习引擎
SONA 是 Ruflo 自研的一个小型机器学习模块,专门负责从任务轨迹里提取成功模式。
工作流程大概是这样的:
任务执行
│
▼
记录轨迹(输入→Agent决策→中间步骤→最终输出→质量反馈)
│
▼
SONA 模式提取(从成功轨迹里归纳出"什么类型的任务适合什么策略")
│
▼
更新 ReasoningBank(推理库)
│
▼
下次类似任务:SONA 先检索推理库,找到历史成功路径,作为初始参考
这套机制带来的实际效果是:Ruflo 用的时间越长,同类任务的处理速度和准确率往往越好,因为它在不断积累针对你具体工作场景的"经验值"。
需要注意:SONA 的学习是 在你的本地数据上进行的,不会上传到任何云端,这对有数据安全顾虑的用户来说是个加分项。
6.3 ReasoningBank:推理经验的专属仓库
除了通用向量记忆,Ruflo 还有一个叫 ReasoningBank 的专属存储区,这是 SONA 提炼出来的高层次推理模式的归宿地。
普通的向量记忆存的是"原始轨迹"——输入是什么、步骤是什么、输出是什么。ReasoningBank 存的是比这更抽象一层的东西:从多条轨迹里归纳出来的"规律"。比如:
"当任务涉及数据库 Schema 变更且表数量超过 10 个时,先用 researcher Agent 做影响范围分析,比直接让 coder 动手失败率低 40%"
这类规律被 SONA 提炼出来后,存进 ReasoningBank,下次遇到类似情境,Ruflo 的 Queen Agent 在做任务拆解时会优先参考这些规律,而不是每次靠通用大模型的直觉来决策。
ReasoningBank 使用 WASM 加速的嵌入向量进行检索,所以即便积累了大量规律条目,检索延迟也维持在毫秒级,不会成为执行链路里的瓶颈。
6.4 ruvLLM:本地自改进模型层
Ruflo 还有一个实验性但值得关注的组件:ruvLLM(位于 ruvnet/RuVector 项目下)。
ruvLLM 是 Ruflo 的本地自改进模型层,工作方式是基于 MicroLoRA——把大模型的参数冻结,只训练一个很小的适配器层(LoRA),让模型对你的特定任务场景产生"专业化"偏向,同时不需要完整的模型微调成本。
MicroLoRA 适配器是直接在你的本地机器上训练的,用的是你自己 Ruflo 任务的历史轨迹数据。整个训练过程不需要 GPU(虽然有 GPU 会快),普通的开发机上也能跑——只是速度慢一些。
适配器训练好之后,ruvLLM 会根据任务类型自动路由:简单任务走本地的 MicroLoRA 适配器(几乎零延迟,零 token 成本),复杂推理任务才调用云端的 Claude 或 GPT。这是 Ruflo 实现 75% API 成本节省的另一个重要路径——把能用本地模型解决的任务拦截下来,不消耗 API 调用。
6.5 RAG 集成
除了内生的向量记忆,Ruflo 还支持接入外部知识库,通过 RAG(Retrieval-Augmented Generation,检索增强生成)的方式补充 Agent 的上下文。
RAG 是什么?简单说:Agent 在回答问题前,先去知识库里检索相关文档,把检索到的内容拼进 prompt,这样 Agent 生成的答案里可以包含知识库里的具体信息,而不只是模型本身记住的内容。对代码项目来说,这意味着你可以把内部文档、API 规范、历史决策记录都存进知识库,让 Agent 做设计决策时自动参考这些材料。
Ruflo 里的 RAG 插件(ruflo-rag-memory)支持混合检索——同时走稠密向量检索和稀疏 BM25 关键词检索,把两个结果融合,比单纯用任何一种方法的召回效果都好。
七、GOAP 目标规划器:说人话就能自动拆解任务
GOAP 是 Goal-Oriented Action Planning(目标导向行动规划)的缩写,这个技术最早来自游戏 AI 领域——比如《光晕》系列里的敌人 AI,就是用 GOAP 规划"我的目标是击杀玩家,现在应该先找掩体还是直接冲"这类决策的。
Ruflo 把这套经典 AI 规划技术移植到了软件工程场景,让它能处理"我要完成一个功能,现在应该先做什么、后做什么"的问题。
7.1 GOAP 的工作原理
GOAP 的核心思想是状态空间搜索:
- 定义当前状态(比如:没有 API、没有测试)
- 定义目标状态(比如:有可运行的 API、有 80% 覆盖率的测试)
- 把所有可能的"动作"(Action)都定义成"前置条件 + 效果"的结构
- 用 A* 算法在动作序列里搜索一条从当前状态到目标状态的最短路径
当执行过程中某个动作失败、或者外部状态发生了变化,GOAP 不会傻傻地继续执行原计划,而是立即重新从当前状态跑一遍 A* 规划,找到新的最优路径。这让 Ruflo 的任务执行有一定的抗干扰能力。
7.2 在线使用:goal.ruv.io
Ruflo 提供了一个不需要安装的在线 GOAP 规划器,地址是 https://goal.ruv.io。你在里面直接用中文或英文描述目标,比如:
"给我的 Python 项目加上完整的 CI/CD 流程,包括自动化测试、代码质量检查和部署到云端"
规划器会把这个目标自动拆解成可执行的 Action 树,每个节点对应一个具体的步骤,有前置条件检查和完成标志。
界面上的 /agents 路径(https://goal.ruv.io/agents)还能看到所有已生成的 Agent 的实时状态——角色、当前步骤、记忆命名空间、token 预算、运行状态。这个面板也可以用来中止跑偏的 Agent 或者重新分配任务。
7.3 计划可视化
Ruflo 把生成的 GOAP 计划渲染成可折叠的 Action 树,节点上标注进度、分支是否被阻塞、以及回滚路径。你不再是对着一个黑盒等结果——能直接看到 Agent 为什么选择了这条路,哪里卡住了,卡住的原因是什么。
这种可观测性是我自己认为 Ruflo 比较有诚意的地方。很多 Agent 框架都是"你扔个任务进去,等它输出,中间过程不透明";Ruflo 至少在规划层面给你开了一扇窗。
7.4 GOAP 的 A* 搜索逻辑
前面提到 GOAP 用 A* 算法做路径搜索,这里稍微深入一点说说它的工作逻辑,帮助理解 Ruflo 是怎么"自动拆解任务"的。
A* 是一种启发式搜索算法,它维护一个"待探索节点"的优先队列,每次从队列里取出代价最低的节点(代价 = 已走的真实成本 + 到目标的估计成本),直到找到目标状态。
在 GOAP 的语境里,"状态"不是路径上的坐标,而是系统的一组属性——比如 {has_api: false, has_tests: false, has_docs: false}。每一个"动作"(Action)都有前置条件(Precondition)和效果(Effect):
Action: implement-rest-api
Precondition:
- has_architecture_design: true
Effect:
- has_api: true
Action: write-unit-tests
Precondition:
- has_api: true # 需要先有 API 才能写针对性测试
Effect:
- has_tests: true
Action: generate-openapi-docs
Precondition:
- has_api: true
Effect:
- has_docs: true
A* 从"当前状态"出发,把所有前置条件已满足的动作都列为候选,评估每个候选动作的执行代价(token 消耗、时间估计)和执行后离目标状态还有多远,选出最优路径。
有意思的地方在于:写单元测试和生成文档都依赖"有 API",但两者之间没有依赖关系,所以 GOAP 会把它们安排为并行执行,两个 Agent 同时启动,各不干扰。这种从依赖图里自动推导出并行机会的能力,是 GOAP 规划器相比手动编写任务流程的核心优势。
7.5 实际使用:flo.ruv.io 在线体验
除了命令行,flo.ruv.io 提供的 Web UI 是体验 Ruflo 能力最快的方式。进入页面后:
- 左侧是多模型选择区,支持 Claude Sonnet 4.6、Claude Haiku 4.5、Gemini 2.5 Pro、Qwen 3.6 Max(默认)等主流模型
- 中间是聊天界面,和普通 AI 聊天工具外观差不多,但背后挂载了 Ruflo 的全套 MCP 工具
- 右侧有 MCP 工具面板,点击工具名称可以直接手动触发
一个在 Web UI 里体验 GOAP 的快速路径:切换到 goal.ruv.io,在输入框里打一句话描述目标,比如:
"帮我设计一个电商订单系统的数据库 Schema,包含用户、商品、订单、支付四个核心实体"
规划器会在几秒内展开一棵 Action 树,你可以逐节点查看每个步骤的具体内容,也可以直接点击"执行"让它真正跑起来。不需要注册,不需要 API Key,浏览器打开就能玩——对于想在接入正式项目前先摸清楚这套系统的人来说,这是成本最低的探索方式。
八、安装与初始化实操:从零到跑起来
聊完原理,说说实际装的过程。整体比预期简单,但有几个前置条件需要注意。
8.1 前置要求
- Node.js 20.0.0 及以上(低于这个版本 MCP 服务启动会报错)
- 已安装 Claude Code(即 Anthropic 官方 CLI)
- npm 或者 npx 可用
如果你的 Node 版本偏低,建议用 nvm 切一个新版本:
nvm install 20
nvm use 20
node --version # 确认 v20.x.x 以上