Router-First Architecture 是一种面向技能(skill)设计的架构模式,核心思想是:在调用单个工具之前,先经过领域路由器(domain router)。路由器负责抽象工具选择,把用户意图确定性地映射到精确的 CLI 命令。
用途 该模式用于组织多个领域技能与工具之间的关系,避免每个技能各自直接调用底层脚本,从而减少重复的路由逻辑,并让工具选择过程更加一致、可预测。
主要能力
- 领域路由器(如 math-router)提供从用户意图到具体 CLI 命令的确定性映射。
- 始终优先使用路由器,仅在边缘情况下才绕过。
- 支持领域技能与路由器共同激活(co-activation)。
- 采用两层架构:技能规则触发层与路由器路由层。
使用方式 推荐做法(DO):
- 在执行任何数学操作之前,先调用 math-router route "<intent>"。
- 让领域技能与其路由器共同激活(通过 skill-rules.json 中的 coActivate 配置)。
- 信任路由器的置信度分数;仅当 command 为 null 时才回退。
- 保持 skill-rules.json 中的触发关键词/模式比路由模式更宽泛。
不推荐做法(DON'T):
- 在存在路由器时直接调用单个脚本。
- 在单个技能中重复路由逻辑。
- 让领域技能绕过其路由器。
共同激活模式 领域技能应与其路由器共同激活,例如: { "math/abstract-algebra/groups": { "coActivate": ["math-router"], "coActivateMode": "always" } } 这确保当领域知识被激活时,路由器始终可用。
两层架构
- 技能规则触发层:通过关键词、意图模式提示 Claude 使用路由器。
- 路由器路由层:通过正则模式确定性地映射到脚本。 触发层应比路由层更宽泛,路由器应优雅地处理“未找到”的情况。
适用场景 适用于拥有多个领域技能、需要统一工具选择入口的技能系统,尤其是当同一领域内存在多个可调用脚本、且希望避免各技能各自实现路由逻辑时。
限制 资料未提供具体的性能数据、支持平台、收费方式或价格信息。该模式的具体实现依赖于 skill-rules.json 配置与路由器脚本,资料中仅给出 math-router 作为示例,其他领域路由器的可用性暂未提供。