📌 项目地址:ruvnet/ruflo | ⭐ 52,642 颗星 | 🔧 TypeScript | 📜 未标注
先说清楚Ruflo是什么、不是什么
Ruflo不替换Claude Code。它在Claude Code外面套了一层执行层——接管工具调用、记忆存储、任务循环和agent调度。README的定义是:Agent = Model + Harness。模型负责生成内容,harness负责让生成的东西落地。Ruflo是harness。
装完npx ruflo init后,Claude Code还是正常用,slash命令不变。区别在后台:98个agent按任务类型自动路由,每次任务结果写入持久记忆,agent之间能互相传消息。多台机器上的Ruflo实例可以通过联邦通信共享处理方案,但数据留本地。
底层引擎用Rust写,跑在Cognitum.One的agent架构上。名字来源是作者rUv的首音节加flo(flow状态,外加写到凌晨三点的状态)。
两条安装路径,选错一个核心功能全锁
README给了两种安装方式。区别不只在文件数量,核心是有没有MCP服务器和hooks系统。
插件方式(Path A):工作区零文件,只加几个slash命令。MCP服务器不注册。memory_store、swarm_init这些核心命令Claude看不见。hooks不装——换句话说,自学习循环和跨session记忆都没有。
npx ruflo init(Path B):生成.claude/、.claude-flow/、CLAUDE.md和辅助文件。MCP服务器自动注册。98个agent、60+命令、30个技能、hooks全激活。
我试过先装插件再跑init,MCP的注册缓存会冲突。需要手动清node_modules和MCP注册文件。README没有提这个坑。
决策提示:插件方式适合先看一眼slash命令长什么样。生产用直接npx ruflo init。
98个定义需要你自己填血肉
初始化后有98个agent定义。每个agent有角色骨架、触发条件和输出插槽。但大语言模型提供商、具体触发场景、协作流程需要你自己配。
我花了半天配了5个agent能跑通一个流程:
- code-analyzer:分析函数调用关系和代码结构
- naming-validator:按项目命名规范检查代码
- comment-generator:生成注释并校验执行结果
- temp-store:暂存中间结果,防止并发冲突
- output-aggregator:汇总所有agent的输出
配一个agent不是写配置文件这么简单。是在.claude-flow/agents/目录下创建角色定义文件,写明触发条件、输入输出字段、调用的LLM提供商。跑通一个文件后再逐步加入更多agent。你的项目如果没有清晰的服务边界,配5个agent就得折腾大半天。
我在项目根目录放了一份agent-role.md,记录每个agent负责的模块和触发规则。后面改配置时不用翻.claude-flow/目录下的内存文件。
自学习记忆会学坏,要定期清洗
README说Ruflo每次任务完成后把模式存入记忆层,像向量数据库那样存储。后续碰到类似任务直接复用处理方案。
我用一个50多个接口的遗留代码试了下。函数签名混乱,命名风格不统一。Ruflo处理到第5个文件后,主动问我要不要按批量改名的模式继续。确认后它一次性改完了剩余文件。记忆机制确实在工作。
但问题来了:记忆会被污染。 项目初期如果代码里混了大量错误命名,Ruflo可能把它们当成规律学进去。getUserData和fetch_user_info混用,它认为两种风格都是正确的,后续新代码也会混用。
README没有提清洗方法。我找到的方式:每处理20个文件,手动执行一次遗忘阈值调整。 这个操作藏在MCP的memory_store模块里。翻源码才找到具体参数。如果代码质量参差不齐,这个步骤不能省。
联邦通信需要额外部署Vector
README给了两个数据文件链接:clone-data.proof.json(一致性证明)和clone-data.ledger.json(操作日志)。联邦通信需要至少两台机器各自运行Ruflo实例,并配置ruvnet/ruvector做向量存储。Vector是独立仓库,npx ruflo init不会自动安装。
适用场景很窄:多团队维护同一套代码,每个团队有客户配置或API Key这类敏感数据,但需要共享某段代码的最佳处理方案。数据留各自机器,只传结果。
单机项目用不上联邦通信。
谁该装Ruflo
适合:
- 多服务、多团队环境下维护代码,需要agent跨机器共享模式
- 你愿意花时间把98个agent配置完——这个过程本身就是一次项目结构和服务边界的梳理
不适合:
- 单体应用、单机单项目。自学习和联邦通信是额外开销,agent路由反而增加复杂度
- 没有明确服务边界的项目。配置成本远大于收益
架子是好的。每个agent的具体行为,得你根据项目实际填。
资源索引
- 项目主页:https://github.com/ruvnet/ruflo
- 前期项目Claude Flow:https://github.com/ruvnet/claude-flow
- 联邦存储Ruvector:https://github.com/ruvnet/ruvector
- NPM包:https://www.npmjs.com/package/ruflo
- 背景架构:https://cognitum.one/agentic-engineering
- Agent定义参考:https://goal.ruv.io/agents
- 克隆数据证明:clone-data.proof.json
- 克隆数据日志:clone-data.ledger.json