Sage Router

🧭 本地优先的智能 AI 路由网关

Sage Router 是一个本地优先的 AI 模型路由网关,自动将请求分发到最优的本地或远程推理提供商,支持 OpenAI/Anthropic 双协议兼容。

收藏
5.6k
安装
1.9k
版本
4.157.4
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

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 若损坏或权限异常,可能影响路由质量

Sage Router 内容

cyber文件夹
deploy文件夹
gcp文件夹
tailnet-edge文件夹
docs文件夹
cloud-tunnel文件夹
integrations文件夹
weclone文件夹
edge文件夹
cloudflare-ai-tunnel文件夹
scripts文件夹
supabase文件夹
migrations文件夹
tests文件夹
umbrel文件夹
web文件夹
dashboard文件夹
functions文件夹
api文件夹
public文件夹
compare文件夹
docs文件夹
scripts文件夹
src文件夹
手动下载zip · 518.6 kB
docker-compose.ymltext/plain
请选择文件