Ruflo
Ruflo 路由源码分析:词边界、规则顺序与旧快照
复现当前生成路由与旧文件的区别,解释首次匹配优先级,以及为什么不能把固定置信度写成模型准确率。
你将学会
- 先找到生成器,再测试辅助脚本
- 理解改进,也理解限制
- 复现独立小模型
开始前需要
- 基础 Node.js、Git 与命令行知识
- 自有仓库及明确任务和权限边界
解释本章实现,复现有限检查,不把辅助函数当完整运行环境。
先看结论
- 分别测试生成结果与活跃工作区文件。
- 词边界能减少部分子串错误,不能消除首条匹配歧义。
- 固定先验不是测得的模型准确率。
先找到生成器,再测试辅助脚本
所查 smoke 测试将 helpers-generator.ts 中的 generateAgentRouter 指为事实来源。它返回完整 JavaScript 脚本,并由 generateHelpers 在启用相应组件时加入输出。我们的探针核对源码哈希,从 TypeScript 语法树选取该函数,并用模拟进程参数执行生成结果,没有写入工作区脚本。
根目录快照单独测试:对于“review latest issues”,旧规则可在 latest 内命中无边界的 test,先选 tester;当前生成器则选 reviewer。这不能证明每个已有安装都已升级,真实工作区仍可能运行旧辅助文件。
理解改进,也理解限制
生成器为单词加词边界,包含空白或斜杠的短语则转义后按字面匹配。模式预编译后按表顺序遍历。混合请求“review and add tests”因为较早 coder 规则命中 add 而选择 coder,不会综合排序所有角色,也不会理解哪个分句更重要。
命中与回退先验固定为 0.6 和 0.3,没有针对当前任务校准,也没有由用户结果测量得出。英文关键词表同样不能证明多语言路由质量。如果产品需要可靠的语言识别或多标签选择,应独立评估,不能从简单规则表外推。
复现独立小模型
下面示例只保留三个角色,以暴露边界与顺序行为。第一个任务返回 reviewer,混合任务返回 coder,而仅在词内部包含 ci 的短语回退。它是独立教学模型,不是完整八角色生成器,三种语言文章中的输出均有测试。
升级检查应同时保留正例与 decision、specifications 等近似词,比较活跃辅助文件在变更前后的输出、修订与解释字符串。无需启动智能体也能发现路由回归,但正确路由仍不能证明下游智能体已经完成任务。
实施步骤
- 1
找到 generateAgentRouter 和活跃脚本。
- 2
比较正例与近似词。
- 3
测试同时包含多角色关键词的任务。
- 4
将路由结果与下游验收分开记录。
可复制示例
function chooseRole(task) {
const rules = [[/\b(?:add|build)\b/i,"coder"],[/\btest\b/i,"tester"],[/\breview\b/i,"reviewer"]];
return rules.find(([pattern]) => pattern.test(task))?.[1] ?? "fallback";
}
console.log(["review latest issues","review and add tests","make a decision"].map(chooseRole));常见问题
路由探针启动了真实智能体吗?
没有。它用模拟进程参数执行辅助脚本,只测试返回的建议。
为什么不能把 0.6 写成 60% 成功率?
源码称其为启发式先验,没有结果数据集把它校准成概率。
资料来源
- v3/@claude-flow/cli/src/init/helpers-generator.ts来源核查 2026-09-08
- .claude/helpers/router.cjs来源核查 2026-09-08
- scripts/smoke-router-regex.mjs来源核查 2026-09-08