核心用法
Sage Router 是一个 HTTP 服务(:8790),充当智能路由层,自动将聊天补全请求分发到配置的最优 AI 提供商。用户只需将客户端(Cursor、Aider、Claude Code 等)指向 http://localhost:8790,无需关心底层调用的是 Ollama、OpenAI、Anthropic 还是其他兼容端点。
关键特性
- 协议兼容:支持 OpenAI
/v1/chat/completions和/v1/responses、Anthropic/v1/messages,内部自动转换格式 - 智能路由:基于意图检测(关键词匹配)、复杂度估算(词数)、经验延迟统计,对全局 (provider, model) 对进行评分排序
- 本地优先模式:
local-first配置可强制拒绝中心化互联网 API,仅允许本地/LAN/Tailnet 端点及批准的分布式提供商(如 Darkbloom) - 故障转移:顺序尝试 top N 候选提供商,失败后自动降级,但不支持流式中断切换
- 可配置 profiles:通过
router-profiles.json定义fast、balanced、best、local-first等路由策略,支持细粒度能力约束(reasoning、tools、vision 等)
安装与部署
- 本地 systemd:复制服务单元,配置
~/.config/sage-router/sage-router.env,设置SAGE_ROUTER_HOME - Docker:内置 Node、Python、Dario,支持 llama.cpp 分类器 sidecar,通过 compose profile 启用
- Anthropic 兼容:自动启动 Dario 本地代理(
localhost:3456),将 Anthropic 请求转为本地处理
显著优点
1. 供应商解耦:单端点统一访问多提供商,避免客户端配置碎片化
2. 隐私友好:local-first 模式确保敏感数据不流向公有云
3. 渐进式优化:基于实际延迟数据持续学习,自动优化路由决策
4. 生态兼容:主流 AI 客户端工具开箱即用
潜在局限
- 无流式热切换:一旦开始响应,无法在中途更换提供商;失败后才重试
- 意图检测较粗:仅依赖关键词匹配和词数估算,对复杂语义理解有限
- 经验数据冷启动:新部署时缺乏延迟统计,依赖静态启发式
- Anthropic 依赖 Dario:需额外组件实现协议转换,增加架构复杂度
适合人群
- 本地 AI 重度用户(Ollama、llama.cpp 等)希望无缝扩展至云端能力
- 隐私敏感场景,需要明确控制数据流向的技术团队
- 多模型评测/AB 测试需求的开发者
- 自托管基础设施爱好者(Umbrel、Home Assistant 等生态系统用户)
常规风险
- 配置漂移:
openclaw.json和 provider 配置分散在多个位置(repo、Docker mount、用户目录),易出现不一致 - 递归风险:
sage-router自身作为 provider 被配置时可能引发循环调用,需显式跳过 - Dario 单点:Anthropic 兼容层若故障,整个 Anthropic 路由路径失效
- 环境变量覆盖:
SAGE_ROUTER_DISABLED_PROVIDERS等变量若被意外设置,会导致静默功能降级 - 延迟数据持久化:
~/.cache/sage-router/latency-stats.json若损坏或权限异常,可能影响路由质量