Show HN: 在 Claude、Codex 和 Cursor 中直接进行智能模型路由

Hacker News Top 工具

摘要

Workweave/router 是一款可直接在 Claude、Codex 和 Cursor 中实现智能模型路由的工具,能够高效选择 AI 模型。

我们构建了一个模型路由器,可嵌入编程代理(如 Claude Code、Codex、Cursor 等),智能地将请求发送到最适合的模型。以下是本地运行的快速演示:<a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=isKhAyivtfM" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=isKhAyivtfM</a>。<p>在 Weave,我们几乎所有的代码都用 AI 编写,成本越来越高。当 Opus 4.7 发布时,由于标记器的变化,我们的成本飙升,问题变得尤为突出。我们知道并非所有任务都需要 Opus,但又不想在真正需要其智能的场景中失去优势。因此,我们决定构建一个模型路由器来应对这一挑战。</p><p>Weave Router 作为专门面向编程代理的 Anthropic/OpenAI 端点。它会查看每个推理请求,并智能地(稍后会详述)决定将请求发送到哪个模型,同时处理沿途所需的所有转换。因此,它可以在可能的情况下使用更快/更便宜的模型(例如 DeepSeek v4、GLM 5.2、Kimi K2.6),并在必要时使用前沿模型(Opus 4.8 和 GPT 5.5(以及 Fable,只要它恢复服务))。</p><p>我们如何知道该路由到哪个模型?我们基于数万条(迄今为止!)代理轨迹训练了一个强化学习模型。当路由模型选择的 LLM 成功完成给定任务时,我们会给予奖励。</p><p>举个例子:如果你让路由器规划一个复杂的变更,它(很可能)会将该请求路由到 Opus 4.8。探索代码库以收集上下文的子代理将被路由到更合适的模型(例如 DeepSeek V4 Flash)。然后,当你准备好计划需要实施时,它(很可能)会交给一个更快的模型(例如 GLM 5.2)来执行。</p><p>过去一个月左右,我们一直在内部使用这个路由器。与原本需要支付的费用相比,我们节省了 40% 的令牌用量,而且质量或速度没有明显差异。</p><p>该路由器在 Elastic License 2.0 下提供源码,因此你可以自行托管。当然,如果你愿意,也可以使用我们的托管版本:weaverouter.com。</p><p>我会在这里解答你可能有的任何问题!</p>
查看原文
查看缓存全文

缓存时间: 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 URLhttp://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/messagesAnthropic Messages,被路由
POST /v1/chat/completionsOpenAI Chat Completions,被路由
POST /v1beta/models/:actionGemini generateContent,被路由
POST /v1/route返回决策,不调用上游
GET /v1/models · POST /v1/messages/count_tokensAnthropic 直通
GET /health · GET /validate存活检测 + 密钥检查

更深入的文档

  • 📐 配置参考:所有环境变量、BYOK 加密、OTel 旋钮、集群路由。
  • 🛠️ 贡献指南:分层规则、热重载开发、迁移、测试、完整的工程循环。
  • 🏗️ 架构:包布局、导入约定、添加端点/提供商/策略的配方。

路线图

  • 基于令牌的速率限制(每个安装的 Redis 滑动窗口)
  • 子安装,用于租户层级
  • 投机性分发 + 对冲,优化尾延迟

2

Zhang, Y. 等. Beyond GPT-5: Making LLMs Cheaper and Better via Performance–Efficiency Optimized Routing (Avengers-Pro). arXiv:2508.12631, 2025.

1

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 模型路由

arXiv cs.AI

本文介绍了 Switchcraft,这是首个专为智能体工具调用优化的 AI 模型路由器,旨在降低推理成本。通过使用轻量级的 DistilBERT 分类器,它在保持高工具使用准确性的同时,实现了显著的成本节约。

@shao__meng: Claude Code、Cursor、Codex、Aider、Cline 部分底层模型可能完全相同,但 Agent 表现却不一样,为什么? @addyosmani 认为:是因为模型之上的那层“外壳” —— Harness,它包括「提示词、…

X AI KOLs Timeline

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.