能力标签
本地LLM路由器
🛠
AI工具

本地LLM路由器

基于 Rust · 开源免费,本地部署,数据完全自主可控
英文名:routectl
⭐ 13 Stars 💻 Rust 📄 MIT 🏷 AI 7.2分
7.2AI 综合评分
LLM路由API转换故障转移Rust实现多模型支持
✦ AI Skill Hub 推荐

经 AI Skill Hub 精选评估,本地LLM路由器 获评「推荐使用」。这款AI工具在功能完整性、社区活跃度和易用性方面表现出色,AI 评分 7.2 分,适合有一定技术背景的用户使用。

📚 深度解析

本地LLM路由器 是一款基于 Rust 的开源工具,在 GitHub 上收获 0k+ Star,是LLM路由、API转换、故障转移、Rust实现领域中的优质开源项目。开源工具的最大优势在于代码完全透明,你可以审计每一行代码的安全性,也可以根据自身需求进行二次开发和定制。

**为什么要使用开源工具而非商业 SaaS?**
对于个人开发者和有隐私需求的用户,本地部署的开源工具意味着数据不离本机,不受第三方服务商的数据政策约束。同时,开源工具通常没有使用次数限制和月度费用,一次安装即可长期使用,对于高频使用场景的总拥有成本(TCO)远低于订阅制商业工具。

**安装与环境准备**
本地LLM路由器 依赖 Rust 运行环境。建议通过 pyenv(Python)或 nvm(Node.js)管理 Rust 版本,避免全局环境污染。对于新手用户,推荐先创建虚拟环境(python -m venv venv && source venv/bin/activate),再安装依赖,这样即使出现问题也可以随时删除虚拟环境重新开始,不影响系统稳定性。

**社区与维护**
GitHub Issue 和 Discussion 是获取帮助的最快渠道。在提问前建议先检查 Closed Issues(已关闭的问题),大多数常见问题都已有解答。遇到 Bug 时,提供 pip list 的输出、完整错误堆栈和最小可复现示例,能显著提高开发者响应速度。AI Skill Hub 将持续追踪 本地LLM路由器 的版本更新,及时通知重要功能变化。

📋 工具概览

本地LLM路由器 是一款基于 Rust 开发的开源工具,专注于 LLM路由、API转换、故障转移 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

GitHub Stars
⭐ 13
开发语言
Rust
支持平台
Windows / macOS / Linux
维护状态
轻量级项目,按需更新
开源协议
MIT
AI 综合评分
7.2 分
工具类型
AI工具
Forks

📖 中文文档

以下内容由 AI Skill Hub 根据项目信息自动整理,如需查看完整原始文档请访问底部「原始来源」。

本地LLM路由器 是一款基于 Rust 开发的开源工具,专注于 LLM路由、API转换、故障转移 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

📌 核心特色
  • 开源免费,支持本地部署,数据完全自主可控
  • 活跃的 GitHub 开源社区,持续迭代更新
  • 提供详细文档和使用示例,新手友好
  • 支持自定义配置,灵活适配不同使用环境
  • 可作为基础组件集成进现有技术栈或进行二次开发
🎯 主要使用场景
  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发
以下安装命令基于项目开发语言和类型自动生成,实际以官方 README 为准。
安装命令
# 方式一:cargo install(推荐)
cargo install routectl

# 方式二:从源码编译
git clone https://github.com/meepolabs/routectl
cd routectl
cargo build --release
# 二进制在 ./target/release/routectl
📋 安装步骤说明
  1. 访问 GitHub 仓库页面
  2. 按照 README 文档完成依赖安装
  3. 根据系统环境完成初始化配置
  4. 参考官方示例或文档开始使用
  5. 遇到问题可在 GitHub Issues 中查找解答
以下用法示例由 AI Skill Hub 整理,涵盖最常见的使用场景。
常用命令 / 代码示例
# 查看帮助
routectl --help

# 基本运行
routectl [options] <input>

# 详细使用说明请查阅文档
# https://github.com/meepolabs/routectl
以下配置示例基于典型使用场景生成,具体参数请参照官方文档调整。
配置示例
# routectl 配置说明
# 查看配置选项
routectl --config-example > config.yml

# 常见配置项
# output_dir: ./output
# log_level: info
# workers: 4

# 环境变量(覆盖配置文件)
export ROUTECTL_CONFIG="/path/to/config.yml"
📑 README 深度解析 真实文档 完整度 76/100 查看 GitHub 原文 →
以下内容由系统直接从 GitHub README 解析整理,保留代码块、表格与列表结构。

routectl

A local LLM router. One Rust binary, listening on 127.0.0.1, that proxies OpenAI-compatible (/v1/chat/completions) and Anthropic Messages (/v1/messages) requests across multiple backends with fallback, retry, and unified reasoning normalization.

License: MIT Rust 1.75+ Workspace tests

Features

  • Two ingress dialects -- OpenAI Chat Completions and Anthropic Messages, both feeding one canonical internal request shape.
  • Four egress provider classes:
  • openai-compat -- any host that speaks the OpenAI body shape (OpenAI, DeepSeek, OpenRouter, Groq, NIM, vLLM, llama.cpp, etc.).
  • anthropic-api -- native Anthropic Messages API with x-api-key or Authorization: Bearer auth.
  • bedrock -- native AWS Bedrock with SigV4 signing, full credential chain (env / static / profile / SSO / IRSA / IMDS) or short-term bearer keys; both InvokeModel and Converse body shapes for Anthropic models.
  • openai-responses -- ChatGPT Codex (chatgpt-oauth bearer JWT, stream-only).
  • Unified reasoning surface -- OpenRouter-shape reasoning_details[] with provider-tagged format. Six dialects on the openai-compat side; Anthropic thinking blocks (with signature) preserved across multi-turn tool use.
  • Cache control round-trip -- Anthropic prompt-caching cache_control and anthropic_beta flags pass through losslessly on Anthropic-in -> Anthropic-out and Anthropic-in -> Bedrock-Invoke-out paths. Verified live: cache miss writes N tokens, cache hit reads the same N back.
  • claude-code as a gateway client -- per Anthropic's published gateway pattern, with forward_client_headers for x-claude-code-* attribution, a POST /v1/messages/count_tokens proxy, per-dialect error-envelope shapes, and forward-compat for unknown Anthropic SSE block types. See docs/CONFIGURATION.md "claude-code as a gateway client" for setup; "Responsible use" below for the operating envelope.
  • Reliability -- per-error-class retry caps (429 / 5xx / network), per-attempt timeouts, jittered backoff, RPM token bucket per provider, passive circuit breaker with single-probe half-open. retry_allowlist / retry_denylist schema for fallback selection. probe_max_tokens fast-fails small availability probes on rate-limit instead of walking the chain.
  • Secrets -- env://VAR, file:///abs/path (chmod-600 / 400 enforced on Unix, TOCTOU-safe), literal:value, and oauth://<provider> (routectl-managed PKCE login for Anthropic and Codex with runtime refresh and 401 recovery). No OS-keychain integration, no auto-discovery.
  • Local-first -- binds to 127.0.0.1 by default; refuses non-loopback bind without explicit --unsafe-public.

Install

Quick start

```bash mkdir -p ~/.config/routectl routectl config example > ~/.config/routectl/config.toml

Configuration

Minimal example:

[server]
host = "127.0.0.1"
port = 8787

[providers.deepseek]
kind = "openai-compat"
base_url = "https://api.deepseek.com/v1"
api_key_ref = "env://DEEPSEEK_API_KEY"
reasoning_dialect = "deepseek"

[providers.anthropic]
kind = "anthropic-api"
api_key_ref = "env://ANTHROPIC_API_KEY"

[providers.bedrock]
kind = "bedrock"
region = "us-east-1"
creds = { kind = "bearer-key", key_ref = "env://AWS_BEARER_TOKEN_BEDROCK" }

[models.fast]
provider = "deepseek"
upstream = "deepseek-chat"

[models.heavy-bedrock]
provider = "bedrock"
upstream = "us.anthropic.claude-opus-4-20250514-v1:0"
supports_adaptive_thinking = true
effort_levels = ["low", "medium", "high"]

[models.heavy-anthropic]
provider = "anthropic"
upstream = "claude-opus-4-20250514"
supports_adaptive_thinking = true
effort_levels = ["low", "medium", "high"]

[aliases]
fast  = "fast"
heavy = ["heavy-bedrock", "heavy-anthropic"]   # fallback chain
"claude-opus-*" = "heavy"                       # suffix-glob routing
default = "fast"

See examples/config.toml for the full surface, including the global [retry] table, per-provider RPM limits, and circuit breakers. v0.6 collapsed per-alias retry overrides into the workspace-global [retry] -- per-error-class caps (retry_on_429, retry_on_5xx, retry_on_network) cover the same operator knobs.

Raw access key + secret key (+ optional session token).

[providers.bedrock-static.creds] kind = "static" access_key_ref = "env://AWS_ACCESS_KEY_ID" secret_key_ref = "env://AWS_SECRET_ACCESS_KEY" session_token_ref = "env://AWS_SESSION_TOKEN" # optional

Named profile. SSO sessions auto-refresh via aws-config.

creds = { kind = "profile", name = "my-bedrock-profile" }

Standard AWS chain: env -> profile -> SSO -> IRSA -> IMDS.

creds = { kind = "default-chain" }


`api_shape = "invoke"` (default) sends the per-vendor body shape -- Anthropic Messages JSON for Claude. `api_shape = "converse"` uses the AWS vendor-neutral envelope; both are wired and live-tested for Anthropic models. Converse for non-Anthropic vendors (Mistral, Llama, Cohere) is staged.

Bedrock-specific knobs:

- `user_agent` -- per-provider UA override. Required when an IAM policy gates access via the `aws:UserAgent` condition key.
- `anthropic_beta` -- list of beta flags always sent on requests from this provider (operator-asserted floor; bypasses the global allowlist filter below).
- `additional_model_request_fields` -- free-form JSON merged into the request body for vendor-specific knobs.

**`[bedrock]` allowlists (optional, recommended in production).** AWS strict-schema validation 400s any unrecognized `anthropic_beta` flag or top-level body field. routectl ships no built-in default; populate operator-supplied lists in TOML to gate which entries reach AWS:
toml [bedrock] allowed_betas = ["context-1m-2025-08-07", "claude-code-20250219", ...] allowed_body_fields = ["anthropic_version", "messages", "max_tokens", ...] ```

Empty lists (or omitted [bedrock] section) = pass-through (no filter applied) -- the discovery default. Run with ROUTECTL_LOG=routectl_providers::bedrock=trace to capture sent flags/fields, then populate the lists. See examples/bedrock.toml for the empirical 2026-05-12 baseline.

BedrockCreds redacts secret material in Debug output (no leaks via panic messages or tracing events).

Live integration matrix (opt-in; skips per-provider when its env key is absent).

export OPENROUTER_API_KEY=... export OPENCODE_GO_API_KEY=... export NIM_API_KEY=... export AWS_BEARER_TOKEN_BEDROCK=... export AWS_REGION=us-east-1

cargo test -p routectl-cli --features live-integration --release \ --test live_matrix -- --nocapture --test-threads=1 ```

See docs/TESTED_MODELS.md for the verified model matrix.

Secret references

Routectl resolves credentials through one of four URI schemes per provider. There is no auto-discovery; you choose the source explicitly.

SchemeMeaning
env://VAR_NAMEProcess env var.
file:///abs/pathFile contents (trailing whitespace trimmed). On Unix, refused if group/other have any permissions; chmod 600 or 400 recommended. Compatible with sops, age, doppler-cli, vault-agent, etc. Windows skips the bit-check (use NTFS ACLs there).
literal:VALUEInline plaintext. For placeholders like literal:not-needed (llama.cpp without auth) and tests. Avoid for real secrets in version-controlled config.
oauth://<provider>routectl-managed OAuth credential, populated by routectl login <provider> (Anthropic and Codex supported). Tokens persist in ~/.config/routectl/credentials.json (chmod 0600); resolution checks near-expiry, refreshes under a per-provider single-flight mutex, and survives upstream 401 via Provider::on_auth_failure. See "Managed OAuth login" below.

`anthropic-api`

Hits https://api.anthropic.com/v1/messages. Two auth modes via auth_kind:

  • api-key (default) -- x-api-key: <key> header.
  • oauth-bearer -- Authorization: Bearer <token> header. Pair with api_key_ref = "oauth://anthropic" for routectl-managed login (see "Managed OAuth login" above).

Beta gates (anthropic-beta flags for prompt caching, 1M context, extended thinking) are independent of auth_kind. Declare them via header_extras:

[providers.anthropic]
header_extras = { "anthropic-beta" = "context-1m-2025-08-07,prompt-caching-2024-07-31" }

header_extras cannot override auth-bearing headers (authorization, x-api-key, host); collisions are dropped with a tracing::warn!.

Provider-level knobs relevant to claude-code-as-a-gateway use:

  • forward_client_headers: Vec<String> -- allowlist of incoming client headers (typically x-claude-code-session-id, x-claude-code-agent-id, x-claude-code-parent-agent-id) that pass through to the upstream. Defaults to empty (drop everything).
  • context_management = true -- routectl emulates Anthropic's context-management-2025-06-27 beta server-side for upstreams that demand thinking-block echoback but do not implement the beta natively (e.g. DeepSeek /anthropic). Bounded LRU + TTL cache; strips the beta header and body field on egress. See docs/PROVIDER-QUIRKS.md for when to flip it.

Short-term Bedrock API key from the AWS console. Skips SigV4 entirely

Unit + integration tests, no network.

cargo test --workspace --release

🎯 aiskill88 AI 点评 B 级 2026-06-07

Rust实现的LLM路由方案,架构清晰,API兼容性强。但项目成熟度有限,社区反馈不足,适合技术探索而非关键业务。

📚 实用指南(长尾问题)
适合谁
  • 需要 routectl 解决具体问题的开发者与运营人员
最佳实践
  • 先在测试环境跑通最小用例,再接入生产数据
常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
部署方案
  • 云端托管:可放在 Vercel / Railway / Fly.io 等 PaaS 平台
相关搜索
routectl 中文教程routectl 安装报错怎么办routectl 与同类工具对比routectl 最佳实践routectl 适合谁用

⚡ 核心功能

👥 适合谁
  • 需要 routectl 解决具体问题的开发者与运营人员
⭐ 最佳实践
  • 先在测试环境跑通最小用例,再接入生产数据
⚠️ 常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)

👥 适合人群

AI 技术爱好者研究人员和学生开发者和工程师技术创业者

🎯 使用场景

  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发

⚖️ 优点与不足

✅ 优点
  • +MIT 协议,可免费商用
  • +完全开源免费,无授权费用
  • +本地部署,数据完全自主可控
  • +开发者社区支持,遇问题可查可问
⚠️ 不足
  • 安装和初始配置可能需要一定技术基础
  • 功能完整性通常不如成熟商业产品
  • 技术支持主要依赖开源社区,响应速度不稳定
⚠️ 使用须知

AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。

建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。

📄 License 说明

✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。

🔗 相关工具推荐

🧩 你可能还需要
基于当前 Skill 的能力图谱,自动补全的工具组合

❓ 常见问题 FAQ

支持OpenAI、Anthropic等兼容格式的本地和云端模型,通过API格式转换实现互操作。
💡 AI Skill Hub 点评

AI Skill Hub 点评:本地LLM路由器 的核心功能完整,质量良好。对于AI 技术爱好者来说,这是一个值得纳入个人工具库的选择。建议先在非生产环境试用,再逐步推广。

📚 深入学习 本地LLM路由器
查看分步骤安装教程和完整使用指南,快速上手这款工具
🌐 原始信息
原始名称 routectl
原始描述 开源AI工具:A local LLM router with OpenAI and Anthropic format translation, retry and fallb。⭐13 · Rust
Topics LLM路由API转换故障转移Rust实现多模型支持
GitHub https://github.com/meepolabs/routectl
License MIT
语言 Rust
🔗 原始来源
🐙 GitHub 仓库  https://github.com/meepolabs/routectl

收录时间:2026-06-07 · 更新时间:2026-06-11 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。