Ruflo
Ruflo 架构:沿包装器、生成脚本与记忆边界追踪
跟踪具体实现路径,避免将 CLI、MCP、hooks、路由和智能体记忆混成一个没有边界的系统。
你将学会
- 追踪命令边界
- 生成代码有独立的事实来源
- 解释记忆位置,但不承诺权限隔离
开始前需要
- 基础 Node.js、Git 与命令行知识
- 自有仓库及明确任务和权限边界
解释本章实现,复现有限检查,不把辅助函数当完整运行环境。
先看结论
- 终端、MCP 与 hooks 可能走不同入口。
- 把活跃生成文件与生成器比较,不只读方便找到的旧快照。
- 记忆范围组织数据,不建立租户授权。
追踪命令边界
ruflo/bin/ruflo.js 查找 CLI,并依据参数和标准输入是否为 TTY 选择模式。在非交互输入下,无命令或明确 mcp start 会转交 CLI 二进制入口;其他命令导入 CLI 实现并使用 Ruflo 品牌。这段分发本身不能证明 JSON-RPC 握手已经成功。
核心插件还有一个优先选择本地已构建候选、再回退 npx 的启动器;hooks 则使用另一套中间脚本和解析顺序。因此,终端、核心 MCP 插件与 hook 可能到达不同可执行文件。记录实际路径和版本,比假定三者共享同一运行环境更有帮助。
生成代码有独立的事实来源
启用 helpers 时,helpers-generator.ts 输出 router.js。生成路由器预编译词模式,选择第一条匹配的智能体规则,并明确自己是静态启发式。根目录 .claude/helpers/router.cjs 快照仍是旧子串模式和不同先验,只读它会误解新生成的辅助脚本。
配置同样如此:生成器定义新文件的形态,而已有工作区可能保留旧输出或用户编辑。不能为了统一就覆盖这些修改。应比较活跃文件与相应源码修订,明确决定升级时替换、合并还是保留。
解释记忆位置,但不承诺权限隔离
resolveAgentMemoryDir 将 project 和 local 分别映射到 Git 根目录下的 .claude/agent-memory 与 .claude/agent-memory-local;user 则使用解析到的用户目录。名称中除字母、数字、下划线和连字符之外的字符被替换成下划线,因此可能出现名称碰撞,这不是租户身份系统。
createAgentBridge 将解析目录传给 AutoMemoryBridge。所查转移函数查询源命名空间,依据置信度与可选类别逻辑挑选记录,再向目标桥接器写入见解。这描述数据流动,不等于授权分享所有笔记。来源和权限应独立追踪;本次没有运行完整持久化或跨智能体流程。
实施步骤
- 1
追踪所选命令的实际入口。
- 2
确认生成器与正在使用的脚本。
- 3
分别映射记忆范围、目录和命名空间。
- 4
转移数据时保留获准来源。
可复制示例
{"entryPaths":["wrapper CLI","core MCP launcher","hook shim"],"generatedHelper":"router.js","memoryScopes":["project","local","user"],"scopeIsTenantAuthorization":false,"liveHandshakeVerified":false}常见问题
仓库里的路由器可能不同于生成输出吗?
可能。固定快照包含旧根目录辅助文件与新生成器,探针验证了同一任务产生不同结果。
智能体专属目录能阻止其他进程读取吗?
路径函数不提供这种保证,访问边界需要由文件系统和宿主权限落实。
资料来源
- ruflo/bin/ruflo.js来源核查 2026-09-08
- plugins/ruflo-core/.mcp.json来源核查 2026-09-08
- plugins/ruflo-core/scripts/ruflo-hook.cjs来源核查 2026-09-08
- plugins/ruflo-core/scripts/mcp-launch.cjs来源核查 2026-09-08
- v3/@claude-flow/cli/src/init/helpers-generator.ts来源核查 2026-09-08
- .claude/helpers/router.cjs来源核查 2026-09-08
- v3/@claude-flow/memory/src/agent-memory-scope.ts来源核查 2026-09-08