这个项目能做什么

# Weave Router **一个端点。所有模型。始终是最佳选择。** Weave Router 是一个即插即用的代理,适用于 Anthropic、OpenAI 和 Gemini,能够自动为每个请求选择最佳模型。它不使用基于感觉的提示,而是采用基于 [Avengers-Pro](https://arxiv.org/abs/2508.12631) 研究论文的集群评分器,结合一个极小的本地嵌入器,将每个请求路由到您启用的提供商中的正确模型。 ## 主要特性 - **按操作路由** — 集群评分器为每个上游 API 请求选择正确的模型,按操作而非按轮次进行路由。 - **兼容所有 API** — 支持 Anthropic Messages、OpenAI Chat Completions 和 Gemini 原生 API,包括流式传输、工具和视觉功能。 - **也支持开源模型** — 通过 OpenRouter 或任何兼容 OpenAI 的端点支持 DeepSeek、Kimi、GLM、Qwen、Llama 和 Mistral。 - **默认自带密钥** — 提供商密钥保留在您的机器上,静态加密。 - **可观测** — 开箱即用的 OTLP 追踪,可在 Weave 仪表盘或任何兼容 OTLP 的收集器(如 Honeycomb、Datadog 或 Grafana)中查看。 ## 快速开始 最快的方式是使用托管的 Weave Router: ```bash npx @weave-os/router ``` 安装程序会询问您使用哪个工具(Claude Code、Codex、opencode 或 pi),引导您选择范围(用户或项目),获取路由器密钥,并配置相应的配置文件。其他方式包括: ```bash npx @weave-os/router --claude # 跳过选择器,直接使用 Claude Code npx @weave-os/router --codex # 跳过选择器,直接使用 OpenAI Codex CLI npx @weave-os/router --opencode # 跳过选择器,直接使用 opencode npx @weave-os/router --pi # 跳过选择器,直接使用 pi + Loom UI npx @weave-os/router --scope project # 每个仓库,提交 settings.json npx @weave-os/router --local # 自托管在 localhost:8080 npx @weave-os/router --base-url https://router.acme.internal npx @weave-os/router@0.1.0 # 固定版本 ``` 需要 Node ≥ 18。完整标志参考见 [install/npm/README.md](install/npm/README.md)。 ## 自托管 要在您自己的机器上运行路由器和仪表盘: ```bash # 1. 放入提供商密钥。OpenRouter 是推荐的基线。 echo "OPENROUTER_API_KEY=sk-or-v1-..." >> .env.local # 2. 设置仪表盘密码。 echo "ROUTER_ADMIN_PASSWORD=replace-with-a-strong-password" >> .env.local # 3. 启动 Postgres + 路由器在 :8080 并生成一个 rk_ 密钥。 make full-setup ``` 路由器在 http://localhost:8080 启动,仪表盘在 http://localhost:8080/ui/,您的 `rk_...` 密钥会打印在日志中。 ### 示例 API 调用 ```bash # 像调用 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 '...' ``` ## 架构 只有灰色框不在您的机器上。路由器、评分器、Postgres 和您的提供商密钥都保留在本地;提示从路由器直接发送到您配置的提供商,绝不会发送到 Weave。 ```mermaid flowchart LR client["Claude Code, Codex, opencode,<br/>pi, Cursor, 您自己的应用"] router["路由器 :8080<br/>/v1/messages · /v1/chat/completions<br/>/v1beta/models · /v1/route"] scorer["集群评分器<br/>进程内 ONNX 嵌入器"] hmm["HMM 策略边车 :8093<br/>可选,使用 make up-hmm"] pg[("Postgres<br/>安装、rk_ 密钥、<br/>加密的 BYOK 密钥、使用量")] ui["仪表盘 /ui<br/>仅自托管模式"] providers["Anthropic · OpenAI · Gemini<br/>OpenRouter 和任何<br/>兼容 OpenAI 的端点"] otel["您的 OTLP 收集器<br/>Honeycomb, Datadog, Grafana"] client -->|"rk_… 承载令牌,<br/>流式响应返回"| router router -->|"嵌入并评分操作"| scorer router -.->|"ROUTER_DEFAULT_STRATEGY=hmm"| hmm router -->|"认证、配置、使用量"| pg pg --> ui router -->|"来自环境或 BYOK 的提供商密钥"| providers router -.->|"跨度和使用日志"| otel ``` 多副本部署还需要 Pub/Sub(`PUBSUB_*`)用于缓存失效;`docker compose` 会为您运行模拟器。 ## 可选:HMM 策略边车 默认堆栈使用进程内集群评分器。要运行冻结的 HMM 策略作为伴随容器,请添加 Google API 密钥并使用 opt-in 目标: ```bash echo 'GOOGLE_API_KEY=...' >> .env.local make up-hmm ``` 这不会更改默认策略。有关工件验证、嵌入兼容性和显式 HMM 选择,请参见 [sidecars/hmm/README.md](sidecars/hmm/README.md)。 ## 工具集成 **Claude Code。** 运行 `make install-cc` 将 Claude Code 连接到本地自托管路由器(也会在 `make full-setup` 结束时自动调用)。对于托管路由器,请使用上面的 `npx @weave-os/router`。 **Codex**(OpenAI CLI)。`npx @weave-os/router --codex` 会修补 `~/.codex/config.toml`(或使用 `--scope project` 时修补 `<repo>/.codex/config.toml`),添加一个受管理的 `[model_providers.weave]` 块,并设置 `model_provider = "weave"`。该提供商保留 Codex 现有的 ChatGPT OAuth 登录,同时路由器密钥通过 `X-Weave-Router-Key` HTTP 标头传递。 ## 许可证 根据 Elastic License v2 (ELv2) 许可。 --- *由 [Weave](https://www.workweave.ai) 构建:排名第一的工程智能平台,深受 Robinhood、PostHog、Reducto 及数百家其他公司喜爱。*