RooFlow
YAML驱动的AI编程助手Memory Bank系统,为Roo Code扩展提供跨会话项目上下文
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
YAML驱动的AI编程助手Memory Bank系统,为Roo Code扩展提供跨会话项目上下文
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个场景:你正在开发一个中型 Node.js 项目,进行了三天的开发后,打开 VS Code 准备继续工作。你对 AI 助手说:"继续之前的任务。"然而 AI 完全不记得你上周做了什么决定、用什么技术方案、为什么放弃某个方案——因为它根本没有上下文记忆。
这就是 AI 编程工具的"记忆缺失"痛点。传统的 AI 编程助手(如 Roo Code)在长周期项目中,会话之间缺乏项目级上下文,导致 AI 反复问"这个项目是干什么的"、"你之前用什么方案",严重影响开发效率。
RooFlow(Roo Flow)正是为了解决这个痛点而生的——它是一个增强型 Memory Bank 系统,专为 Roo Code VS Code 扩展设计,通过 YAML 格式的系统提示词,在 AI 助手中建立持久化的项目上下文。
RooFlow 由开发者 GreatScottyMac 创建于 2025 年 3 月,是一个实验性的替代系统提示词框架。与 Roo Code 内置的 Memory Bank 不同,RooFlow 采用了更高效的 YAML 格式替代 Markdown 格式,理论上能减少 token 消耗,同时引入了 五种协同工作的 Flow 模式,覆盖软件开发的全生命周期。
项目采用 Apache 2.0 开源许可证,目前已有 126 个 Fork、1162 颗 Stars,GitHub 上有 32 个 open issues,表明社区活跃度较高。
┌─────────────────────────────────────────────┐
│ RooFlow (实验性替代方案) │
│ ┌──────────────────────────────────────┐ │
│ │ Flow-Orchestrator (协调模式) │ │
│ │ 将复杂任务拆分委托给其他 Flow 模式 │ │
│ └──────────────────────────────────────┘ │
│ ┌──────────┬──────────┬──────────┬────┐ │
│ │Architect │ Code │ Debug │Ask │ │
│ │(架构设计) │(代码编写) │(调试排错) │(问答)│ │
│ └──────────┴──────────┴──────────┴────┘ │
│ ↓ 共享 Memory Bank │
│ ┌──────────────────────────────────────┐ │
│ │ memory-bank/ (持久化项目上下文) │ │
│ │ - activeContext.md (当前会话状态) │ │
│ │ - decisionLog.md (决策记录) │ │
│ │ - productContext.md (产品概述) │ │
│ │ - progress.md (进度追踪) │ │
│ │ - systemPatterns.md (系统模式) │ │
│ └──────────────────────────────────────┘ │
└─────────────────────────────────────────────┘
负责系统设计、文档结构和项目组织。当项目没有 Memory Bank 时,Flow-Architect 会引导用户完成初始化流程。它的 YAML 策略文件(memory_bank_strategy_architect.yml)定义了初始化时的思考框架和执行步骤。
负责代码的创建、修改和文档化。实现功能特性、维持代码质量、处理所有源代码变更。这是开发者日常使用最频繁的模式。
专注于错误排查和代码调试。与 Flow-Code 共享 Memory Bank 的读写权限,确保调试上下文不会丢失。
用于提问、代码分析和解释。与其他模式不同,Flow-Ask 对 Memory Bank 是只读访问——它可以读取项目上下文,但不会写入,以避免问答会话污染项目状态。
这是 RooFlow 最具特色的创新。当面对复杂任务(如"重构整个登录模块")时,用户切换到 Orchestrator 模式,它会:
Memory Bank 是 RooFlow 的核心创新。它是一个名为 memory-bank/ 的目录,位于项目根目录,包含以下文件:
| 文件 | 用途 |
|---|---|
activeContext.md | 追踪当前会话状态:最近变更、当前目标、开放问题 |
decisionLog.md | 记录架构和实现决策,包含上下文、决策内容、理由和实现细节 |
productContext.md | 项目高层概述:目标、功能、整体架构 |
progress.md | 项目进度追踪:已完成工作、当前任务、下一步 |
systemPatterns.md | 文档化项目中使用的模式和标准(可选) |
RooFlow 的 Memory Bank 与 Roo Code 内置版本相比,有以下改进:
UMB 命令:用户可以随时输入"Update Memory Bank"或"UMB"命令,强制将当前会话信息同步到 Memory Bank。
# 1. 下载安装脚本
curl -O https://raw.githubusercontent.com/GreatScottyMac/RooFlow/main/config/install_rooflow.sh
# 2. 赋予执行权限
chmod +x install_rooflow.sh
# 3. 运行安装
./install_rooflow.sh
安装脚本会自动:
.roo/ 配置目录和 .roomodes 模式定义文件generate_mcp_yaml.py 脚本处理 YAML 模板安装完成后,你的项目目录下会多出:
.roo/system-prompt-flow-* — 五个 Flow 模式的系统提示词.roomodes — Roo Code 自定义模式定义generate_mcp_yaml.py — MCP YAML 生成器RooFlow 支持通过 system_prompt.md 文件注入已连接的 MCP 服务器信息到 Flow 模式中:
system_prompt.md此外,RooFlow 还支持与 Context Portal MCP 集成,提供更高级的记忆策略管理。
RooFlow 的核心逻辑在 modules/rooflow_core_prompt.yaml(约 50KB)中。这个巨大的 YAML 文件定义了所有 Flow 模式的详细指令、YAML 语法规则、行为约束。
关键的 Python 工具是 generate_mcp_yaml.py(约 13KB),负责:
WORKSPACE_PLACEHOLDER → 实际项目路径)从代码结构来看,RooFlow 本身不包含复杂的 Python 代码逻辑——它的"代码"是 YAML 配置,运行时由 Roo Code 扩展读取并传递给 AI 模型。
| 特性 | Roo Code 原生 | RooFlow |
|---|---|---|
| 格式 | Markdown | YAML |
| 模式数量 | 4个(Architect/Code/Debug/Ask) | 5个(+Orchestrator) |
| 模式协同 | 独立工作 | Flow-Orchestrator 统一协调 |
| Token 效率 | 标准 | 优化(声称减少 token 消耗) |
| MCP 集成 | 需要手动 | 支持自动注入 |
| 安装方式 | 手动复制文件 | 一键脚本 |
实验性项目:README 明确标注 RooFlow 是"实验性"替代方案,不受 Roo Code 官方支持。使用前需评估稳定性风险。
安装脚本会覆盖 .roo/ 目录:官方文档提示,如果用户手动修改过 .roo/ 目录下的文件,重新运行安装脚本会覆盖这些自定义修改。
MCP 注入的更新陷阱:更新 MCP 服务器信息后重新运行安装脚本,会覆盖用户对 Flow 模式系统提示词的所有手动调整。
Roo Code 版本依赖:项目依赖 Roo Code 的"Footgun"实验性功能,如果 Roo Code 变更或移除该功能,可能影响 RooFlow 的可用性。
适用场景有限:RooFlow 本质上是"AI 编程助手的效率工具",对不熟悉 VS Code 或不习惯使用 AI 编程助手的用户价值有限。
RooFlow 代表了一个新兴趋势:将 AI 编程工具从"问答玩具"升级为"项目级开发伙伴"。传统的 AI 编程助手只在单次会话中有上下文,而 RooFlow 通过 Memory Bank 实现了跨会话的记忆持久化。
这种设计思路与人类程序员的认知方式更接近——我们不会在每次开会时重新介绍项目背景,AI 编程助手也应该如此。Flow-Orchestrator 的任务拆解与委托机制,则进一步模拟了人类开发团队中的项目经理角色。
从更宏观的视角看,RooFlow 是 AI Agent 工作流设计的一个实践案例——多角色协同、共享状态存储、分层任务委托,这些模式在更大规模的 AI Agent 系统中同样适用。
项目信息