Show HN: 在 Claude、Codex 和 Cursor 中直接进行智能模型路由
摘要
Workweave/router 是一款可直接在 Claude、Codex 和 Cursor 中实现智能模型路由的工具,能够高效选择 AI 模型。
查看缓存全文
缓存时间: 2026/06/26 17:19
workweave/router
来源:https://github.com/workweave/router
一个端点,所有模型,始终正确。
一个即插即用的代理,适用于 Anthropic、OpenAI 和 Gemini,能够为每个请求选择最佳模型:使用一个小巧的本地嵌入器(tiny on-box embedder),而非基于直觉的提示。
RouterArena (https://github.com/RouteWorks/RouterArena) · Weave 徽章 (https://app.workweave.ai/reports/repository/org_QWsHDcRQWQEs6RpkdEZrlFK8/https%3A%2F%2Fgithub.com/1222789989) · Go · 测试 (https://github.com/workweave/router/actions/workflows/test.yml) · 许可证:ELv2 (https://www.elastic.co/licensing/elastic-license)
🥇 RouterArena 排行榜第 1 名 (https://github.com/RouteWorks/RouterArena) 1 —— Acc-Cost Arena 76.09
由 Weave (https://www.workweave.ai) 构建:排名第一的工程智能平台,深受 Robinhood、PostHog、Reducto 以及数百个团队喜爱。
它能做什么
将 Claude Code、Codex、Cursor 或你自己的应用指向 localhost:8080。这个路由器能够:
- 🎯 按请求路由。 基于 Avengers-Pro (https://arxiv.org/abs/2508.12631) 2 的集群评分器(cluster scorer)为每个请求从你启用的提供商中选择正确的模型。
- 🔌 说每个人的 API。 Anthropic Messages、OpenAI Chat Completions、Gemini 原生格式。支持流式、工具调用、视觉等全功能。
- 🧠 也懂开源模型。 可通过 OpenRouter(或任何兼容 OpenAI 的端点)使用 DeepSeek、Kimi、GLM、Qwen、Llama、Mistral。
- 🔒 默认自带密钥(BYOK)。 提供商密钥保留在你的机器上,静态加密。
- 📊 可观测。 开箱即用 OTLP 追踪。在 Weave 仪表盘 (http://localhost:8080/ui/dashboard) 中查看,或接入 Honeycomb、Datadog、Grafana 等。
30 秒快速开始
最快的方式:用一条命令将 Claude Code、Codex 或 opencode 指向托管版 Weave Router。无需克隆、无需 Docker、无需 Postgres。
npx @workweave/router
就这样。安装程序会询问你要配置哪个工具(Claude Code、Codex 或 opencode),引导你选择范围(用户级或项目级),获取一个 router 密钥,并写入相应的配置文件。
其他变体:
npx @workweave/router --claude # 跳过选择器,直接配置 Claude Code
npx @workweave/router --codex # 跳过选择器,直接配置 OpenAI Codex CLI
npx @workweave/router --opencode # 跳过选择器,直接配置 opencode
npx @workweave/router --scope project # 按仓库配置,提交 settings.json(或 .codex/ / opencode.json)
npx @workweave/router --local # 自托管在 localhost:8080
npx @workweave/router --base-url https://router.acme.internal
npx @workweave/[email protected] # 固定版本
需要 Node ≥ 18(Claude Code 和 opencode 路径还需要 jq)。完整的标志参考:install/npm/README.md。
或:自托管完整栈
如果你希望将路由器(以及仪表盘)运行在自己的机器上:
# 1. 放入一个提供商密钥。OpenRouter 是推荐的基准。
echo "OPENROUTER_API_KEY=sk-or-v1-..." >> .env.local
# 2. 启动 Postgres + 路由器在 :8080,并生成一个 rk_ 密钥。
make full-setup
路由器运行在 http://localhost:8080,仪表盘在 http://localhost:8080/ui/dashboard(密码:admin),你的 rk_... 密钥会打印在日志中。
# 像调用 Anthropic 一样调用
curl -sS http://localhost:8080/v1/messages \
-H "Authorization: Bearer rk_..." \
-d '{"model":"claude-sonnet-4-5","max_tokens":256, "messages":[{"role":"user","content":"hi"}]}'
# 或像调用 OpenAI 一样调用
curl -sS http://localhost:8080/v1/chat/completions \
-H "Authorization: Bearer rk_..." \
-d '{"model":"gpt-4o-mini", "messages":[{"role":"user","content":"hi"}]}'
# 查看路由决策但不过代理
curl -sS http://localhost:8080/v1/route -H "Authorization: Bearer rk_..." -d '...'
集成到你的工具中
Claude Code。 运行 make install-cc 可将 Claude Code 连接到本地自托管路由器(在 make full-setup 结束时也会自动执行)。对于托管路由器,请使用上面的 npx @workweave/router。
Codex(OpenAI CLI)。npx @workweave/router --codex 会在 ~/.codex/config.toml(或使用 --scope project 时为 /.codex/config.toml)中添加一个受管理的 [model_providers.weave] 块,并设置 model_provider = "weave"。Codex 现有的 OPENAI_API_KEY 会通过计划直通(plan-based passthrough)流向 api.openai.com;路由器密钥通过 HTTP 头 X-Weave-Router-Key 传递。重新安装和 --uninstall --codex 仅重写/移除该受管理块,不修改 Codex 配置的其他部分。
opencode。 npx @workweave/router --opencode 会将 provider.weave 条目合并到 ~/.config/opencode/opencode.json(或使用 --scope project 时为 /opencode.json)。它使用 opencode 自带的 @ai-sdk/anthropic 提供程序,指向路由器的 /v1 端点——路由器原生使用 Anthropic Messages API,因此 opencode 无需修改即可使用。路由器密钥和身份头部会与提供程序配置一起传递;重新安装仅重写受管理块,--uninstall --opencode 会将其移除。
Cursor (早期 beta,性能可能不是最佳)。设置 → 模型 → 覆写 OpenAI Base URL → http://localhost:8080/v1,将 rk_... 粘贴为 API 密钥。
开关。 安装后,npx @workweave/router off --claude(或 --codex / --opencode)会将客户端直接路由回其原始提供商,而不会丢弃路由器配置;on 会重新启用路由,status 报告当前指向。Claude Code 还支持 /router-off、/router-on 和 /router-status 斜杠命令。Cursor 通过上述相同的设置 → 模型覆盖切换。详见 install/README.md。
两个密钥,别搞混了:
sk-or-.../sk-ant-.../sk-...= 你的上游提供商密钥。存放在.env.local中。rk_...= 你的路由器密钥。客户端将其作为 Bearer 令牌发送。
端点
| 端点 | 格式 |
|---|---|
POST /v1/messages | Anthropic Messages,被路由 |
POST /v1/chat/completions | OpenAI Chat Completions,被路由 |
POST /v1beta/models/:action | Gemini generateContent,被路由 |
POST /v1/route | 返回决策,不调用上游 |
GET /v1/models · POST /v1/messages/count_tokens | Anthropic 直通 |
GET /health · GET /validate | 存活检测 + 密钥检查 |
更深入的文档
- 📐 配置参考:所有环境变量、BYOK 加密、OTel 旋钮、集群路由。
- 🛠️ 贡献指南:分层规则、热重载开发、迁移、测试、完整的工程循环。
- 🏗️ 架构:包布局、导入约定、添加端点/提供商/策略的配方。
路线图
- 基于令牌的速率限制(每个安装的 Redis 滑动窗口)
- 子安装,用于租户层级
- 投机性分发 + 对冲,优化尾延迟
Zhang, Y. 等. Beyond GPT-5: Making LLMs Cheaper and Better via Performance–Efficiency Optimized Routing (Avengers-Pro). arXiv:2508.12631, 2025.
Lu, Y., Liu, R., Yuan, J., Cui, X., Zhang, S., Liu, H., & Xing, J. RouterArena: An Open Platform for Comprehensive Comparison of LLM Routers. arXiv:2510.00202, 2025.
相似文章
Switchcraft:用于智能体工具调用的 AI 模型路由
本文介绍了 Switchcraft,这是首个专为智能体工具调用优化的 AI 模型路由器,旨在降低推理成本。通过使用轻量级的 DistilBERT 分类器,它在保持高工具使用准确性的同时,实现了显著的成本节约。
使用任意模型(包括 GLM 5.2)运行 Codex 和 Claude,无需折腾配置文件。
一个名为 relay-ai 的 CLI 工具充当 Codex Desktop 和 Claude Code 的代理,使用户能够使用自己的 API 密钥或 OAuth 订阅将请求路由到任意模型(包括 GLM 5.2),并具备防止崩溃和管理上下文溢出的功能。
@adambcohen93: Weave 正在推出全球排名第一的提示路由器。它能让你的令牌使用效率提升70%……
Weave 推出一款提示路由器,可分析提示并将其路由到最具成本效益的模型,声称在不损失性能的情况下降低高达70%的成本。它与现有的工作流程(如 Claude、Cursor 和 Codex)集成,并且源代码可用。
@shao__meng: Claude Code、Cursor、Codex、Aider、Cline 部分底层模型可能完全相同,但 Agent 表现却不一样,为什么? @addyosmani 认为:是因为模型之上的那层“外壳” —— Harness,它包括「提示词、…
The article discusses how Addy Osmani argues that the performance difference between AI coding agents like Claude Code, Cursor, and Cline stems from their 'Harness'—the layer of prompts, tools, and constraints around the model—rather than the underlying model itself. It details best practices for harness engineering, including hooks, sandboxing, and context management, to bridge the gap between model capability and actual agent performance.
@DeRonin_: 我实际如何在模型之间路由:推文草稿:Sonnet 4.6 长篇文章:Opus 4.6 代码工作:Kimi 2.6 代理…
一位用户分享了他们在不同任务(如推文草稿、文章、代码、代理循环和图像生成)之间使用各种AI模型的个人路由策略,并认为单一模型配置会导致更高成本。