workweave/router

GitHub: workweave/router

Workweave Router 是一款面向智能体系统的 AI 模型路由器,通过实时将每个 prompt 路由到最优模型来降低 40%-70% 的调用成本。

Stars: 849 | Forks: 37

Group 1(1) **一个端点。所有模型。永远是最合适的一个。** 作为 Anthropic、OpenAI 和 Gemini 的直接替代代理,它通过使用本地轻量级 embedder,而不是基于直觉的 prompt, 为*每一个*请求挑选最合适的模型。 [![Weave 徽章](https://img.shields.io/endpoint?url=https%3A%2F%2Fapp.workweave.ai%2Fapi%2Frepository%2Fbadge%2Forg_QWsHDcRQWQEs6RpkdEZrlFK8%2F1222789989%2Fhttps%253A%252F%252Fgithub.com&cacheSeconds=3600)](https://app.workweave.ai/reports/repository/org_QWsHDcRQWQEs6RpkdEZrlFK8/https%3A%2F%2Fgithub.com/1222789989) [![Go](https://img.shields.io/badge/Go-1.25%2B-00ADD8?logo=go)](go.mod) [![测试](https://static.pigsec.cn/wp-content/uploads/repos/cas/ce/ce733292a922c08274cf5a2096f8fa4cf01023bfa51a36ef6beecaaef371a9d9.svg)](https://github.com/workweave/router/actions/workflows/test.yml) [![许可证: ELv2](https://img.shields.io/badge/License-ELv2-00BFB3.svg)](https://www.elastic.co/licensing/elastic-license) *由 [Weave](https://www.workweave.ai) 构建:备受 Robinhood、PostHog、Reducto 及数百家企业青睐的工程智能平台。*
## 功能说明 将 Claude Code、Codex、Cursor 或你自己的应用指向 `localhost:8080`。此 router 将: - 🎯 **按请求路由。** 源自 [Avengers-Pro](https://arxiv.org/abs/2508.12631) [^1] 的集群评分器,每次对话都会从你启用的 provider 中选择合适的模型。 - 🔌 **支持所有 API。** 支持 Anthropic Messages、OpenAI Chat Completions、 原生 Gemini。支持流式传输、工具调用、视觉功能等全套特性。 - 🧠 **也了解开源模型。** 通过 OpenRouter(或任何兼容 OpenAI 的 endpoint)支持 DeepSeek、Kimi、GLM、Qwen、Llama 和 Mistral。 - 🔒 **默认 BYOK。** Provider 密钥保留在你的本地设备上,并进行静态加密。 - 📊 **可观测。** 开箱即用的 OTLP trace。可以在 Weave dashboard (http://localhost:8080/ui/dashboard) 中查看,或者接入 Honeycomb、Datadog、 Grafana 等工具。 ## 30 秒快速开始 最快的方式:使用一条命令将 Claude Code、Codex 或 opencode 指向**托管版** Weave Router。无需 clone,无需 Docker,无需 Postgres。 ``` npx @workweave/router ``` 就这么简单。安装程序会询问使用哪种工具(Claude Code、Codex 或 opencode), 引导你设置作用域(用户级别还是项目级别),获取 router 密钥,并配置 正确的 config 文件。其他用法: ``` npx @workweave/router --claude # skip the picker, Claude Code npx @workweave/router --codex # skip the picker, OpenAI Codex CLI npx @workweave/router --opencode # skip the picker, opencode npx @workweave/router --scope project # per-repo, commits settings.json (or .codex/ / opencode.json) npx @workweave/router --local # self-hosted localhost:8080 npx @workweave/router --base-url https://router.acme.internal npx @workweave/router@0.1.0 # pin a version ``` 需要 Node ≥ 18(Claude Code 和 opencode 路径还需要 `jq`)。完整的 参数说明请见:[install/npm/README.md](install/npm/README.md)。 ### 或者:在本地自托管整套技术栈 如果你想让 router(及 dashboard)运行在自己的设备上: ``` # 填入一个 provider key。推荐使用 OpenRouter 作为基准。 echo "OPENROUTER_API_KEY=sk-or-v1-..." >> .env.local # 在 :8080 上启动 Postgres + router 并植入一个 rk_ key。 make full-setup ``` Router 运行在 ,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"}]}' # 在不进行代理的情况下查看 routing decision curl -sS http://localhost:8080/v1/route -H "Authorization: Bearer rk_..." -d '...' ``` ## 将其接入你的工具 **Claude Code。** 运行 `make install-cc` 将 Claude Code 接入本地 自托管的 router(它也会在 `make full-setup` 结束时自动调用)。对于托管版 router,请使用上方的 `npx @workweave/router`。 **Codex**(OpenAI CLI)。`npx @workweave/router --codex` 会使用一个托管的 `[model_providers.weave]` 块来修补 `~/.codex/config.toml`(如果使用 `--scope project`,则修补 `/.codex/config.toml`) 并设置 `model_provider = "weave"`。 Codex 现有的 `OPENAI_API_KEY` 将直接传递给 api.openai.com,用于 基于计划的直通传输;router 密钥通过 `X-Weave-Router-Key` HTTP 标头传递。重新安装和 `--uninstall --codex` 仅重写/移除受管理的 块,保持你其余的 Codex config 不受影响。 **opencode。** `npx @workweave/router --opencode` 将一个 `provider.weave` 条目合并入 `~/.config/opencode/opencode.json`(如果使用 `--scope project`,则合并入 `/opencode.json`)。它使用 opencode 内置的 `@ai-sdk/anthropic` provider 并指向 router 的 `/v1` endpoint —— router 原生支持 Anthropic Messages API,因此 opencode 无需修改即可运行。Router 密钥和身份标头随 provider config 一起传递;重新安装 仅重写受管理的块,`--uninstall --opencode` 会将其移除。 **Cursor** *(早期测试版,性能可能不是最佳)。* Settings → Models → *Override OpenAI Base URL* → `http://localhost:8080/v1`,将 `rk_...` 作为 API 密钥粘贴。 **开启/关闭。** 安装后,`npx @workweave/router off --claude` (或 `--codex` / `--opencode`)会将该客户端直接路由回其 provider,而不会丢弃 router 配置;`on` 可将其切回,`status` 会报告当前的指向状态。Claude Code 还支持 `/router-off`、 `/router-on` 和 `/router-status` 斜杠命令。Cursor 可通过上述相同的 Settings → Models 覆盖选项进行切换。详见 [install/README.md](install/README.md#switching-on-and-off)。 ## Endpoints | Endpoint | 格式 | | ------------------------------ | ---------------------------------------- | | `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` | 存活检测 + 密钥校验 | ## 深入文档 - 📐 [**配置参考**](docs/CONFIGURATION.md):涵盖所有环境变量、 BYOK 加密、OTel 旋钮和集群路由。 - 🛠️ [**贡献指南**](CONTRIBUTING.md):分层规则、热重载开发、 迁移、测试及完整的工程循环。 - 🏗️ [**架构设计**](AGENTS.md):包结构、导入契约, 以及添加 endpoints / providers / 策略的指南。 ## Star 历史 Star History Chart [^1]: Zhang, Y. et al. *Beyond GPT-5: Making LLMs Cheaper and Better via Performance–Efficiency Optimized Routing* (Avengers-Pro). arXiv:2508.12631, 2025.
标签:AI, EVTX分析, LLM网关, 大模型, 模型路由, 自动化代码审查, 降本增效