这个项目能做什么
# routatic-proxy
一个Go CLI代理,可让您将[Claude Code](https://docs.anthropic.com/en/docs/claude-code)请求路由到多个上游提供商,并支持自动模型选择和格式转换。
`routatic-proxy`位于Claude Code和您选择的提供商之间,拦截Anthropic API请求,将其转换为适当的格式(OpenAI、Anthropic、Responses或Gemini),并转发到上游。Claude Code认为它在与Anthropic通信——但您的请求实际发送到您配置的模型和提供商。
`oc-go-cc`仍可作为兼容别名使用,现有的`OC_GO_CC_*`环境变量和`~/.config/oc-go-cc/config.json`文件仍会被识别。
## 支持的提供商
| 提供商 | 描述 | 最适合 |
|----------|-------------|----------|
| **OpenCode Go** | 高性能开源编码模型,统一费率定价 | 日常编码、复杂推理、成本效益高的工作负载 |
| **OpenCode Zen** | 精选、经过测试的模型,按需付费定价 | 无需多个API密钥即可访问Claude/GPT/Gemini |
| **AWS Bedrock** | 在您自己的AWS基础设施上运行的企业级模型 | 需要数据主权和合规性的企业 |
| **OpenRouter** | 统一API,支持100多个LLM,自动故障转移 | 尝试来自多个提供商的模型 |
| **Anthropic** | 原生Claude模型,支持Anthropic优先故障转移模式 | 以Claude为先的工作流,OpenCode作为后备 |
## 功能
- **多提供商** — 通过单一配置路由到OpenCode Go、OpenCode Zen、AWS Bedrock或OpenRouter
- **透明代理** — Claude Code发送Anthropic格式请求,代理转换为提供商原生格式并返回
- **模型路由** — 根据上下文(默认、思考、长上下文、后台)自动路由到不同模型
- **流式场景路由** — 可配置的流式请求路由
- **故障转移链** — 如果模型失败,自动尝试配置链中的下一个
- **Anthropic优先故障转移** — 将Claude保留在Anthropic上,仅在速率限制或中断期间使用OpenCode
- **断路器** — 跟踪模型健康状况并跳过故障模型以避免延迟峰值
- **实时流式传输** — 完整的SSE流式传输,支持实时格式转换
- **工具调用** — 正确的Anthropic tool_use/tool_result ↔ OpenAI/Gemini函数调用转换
- **热重载** — 监视配置文件更改并自动重新加载
- **自更新** — 通过一条命令检查并安装最新版本
## GUI版本
此仓库为`routatic-proxy`提供跨平台GUI:
- **macOS** — 原生Cocoa窗口,带系统托盘集成(需要CGO)。从**Releases**页面下载`.dmg`。
- **Linux** — 基于浏览器的GUI,通过`xdg-open`(默认,无需CGO)。对于系统托盘:使用`CGO_ENABLED=1`构建并安装`libappindicator-gtk3-devel`(Fedora)或`libayatana-appindicator3-dev`(Ubuntu/Debian)。
- **Windows** — 不支持GUI(仅CLI)。
**仪表盘标签页:** 概览(实时指标和模型分布)、历史记录(最近1000个请求,带筛选器)、设置(编辑配置并热重载)。
使用`start`(而非`serve`)时,仪表盘可在`http://127.0.0.1:3445`访问。
## 快速开始
```bash
# 1. 安装
brew tap routatic/tap && brew install routatic-proxy
# 2. 初始化配置
routatic-proxy init
# 3. 设置您的API密钥
export ROUTATIC_PROXY_API_KEY=sk-opencode-your-key-here
# 4. 启动代理
routatic-proxy serve
# 5. 配置Claude Code
export ANTHROPIC_BASE_URL=http://127.0.0.1:3456
export ANTHROPIC_AUTH_TOKEN=unused
# 6. 运行Claude Code
claude
```
**Fedora / RHEL:** 每个版本都附带`x86_64`和`aarch64` RPM包——
`sudo dnf install https://github.com/routatic/proxy/releases/download/vX.Y.Z/routatic-proxy-X.Y.Z-1.x86_64.rpm`。
有关Homebrew、Scoop、Docker和从源码构建的选项,请参阅[INSTALLATION.md](INSTALLATION.md)。
更喜欢用GUI切换提供商?routatic-proxy可与[CC-Switch](https://github.com/farion1231/cc-switch)配合使用。
## CLI命令
```
routatic-proxy start 启动代理 + 仪表盘 (http://127.0.0.1:3445)
routatic-proxy start -b 在后台启动代理 + 仪表盘
routatic-proxy serve 仅启动代理服务器(无头模式,无仪表盘)
routatic-proxy serve -b 仅在后台启动代理(与终端分离)
routatic-proxy stop 停止正在运行的代理服务器
routatic-proxy status 检查代理是否正在运行
routatic-proxy init 创建默认配置文件
routatic-proxy validate 验证配置文件
routatic-proxy models 列出所有可用模型
routatic-proxy autostart enable 启用登录时自动启动
routatic-proxy update 更新到您频道上的最新版本
routatic-proxy update check 检查是否有新版本而不安装
routatic-proxy update-channel 显示或切换发布频道 (stable|beta)
routatic-proxy --version 显示版本
```
## 文档
| 文档 | 描述 |
|----------|-------------|
| [MODELS.md](MODELS.md) | 所有提供商的模型参考——能力、成本、端点、路由建议 |
| [docs/openrouter.md](docs/openrouter.md) | OpenRouter提供商设置和配置 |
| [CONFIGURATION.md](CONFIGURATION.md) | 配置文件参考、环境变量、模型路由、故障转移链 |
| [INSTALLATION.md](INSTALLATION.md) | Homebrew、Scoop、从源码构建、Docker |
| [CONTRIBUTING.md](CONTRIBUTING.md) | 开发设置、架构 |
| [TROUBLESHOOTING.md](TROUBLESHOOTING.md) | 常见问题和调试模式 |
| [docs/architecture.md](docs/architecture.md) | 系统设计和请求流程 |
| [docs/fedora-setup.md](docs/fedora-setup.md) | Fedora 44设置 (systemd, SELinux) |
| [docs/reference-api.md](docs/reference-api.md) | HTTP API参考 |
| [docs/howto-add-model.md](docs/howto-add-model.md) | 添加新模型(零代码更改) |
| [docs/howto-custom-routing.md](docs/howto-custom-routing.md) | 自定义场景检测和路由 |
| [docs/howto-debug-routing.md](docs/howto-debug-routing.md) | 调试路由问题 |
## 发布频道
此项目在两个频道上发布。稳定版是默认的;测试版让您提前获得最新功能。
```bash
routatic-proxy update-channel beta # 选择加入测试版
routatic-proxy update # 安装最新的测试版
routatic-proxy update-channel stable # 回到稳定版
```
### 测试版频道(自动)
- **触发:** 每次推送到`main`分支
- **版本格式:** `v{UPCOMING}-beta.{N}`(例如,`v0.6.4-beta.1`),其中`{N}`是顺序计数器,在该版本作为稳定版发布后重置
- **GitHub发布:** 标记为预发布
- **Docker标签:** `beta`(滚动),以及确切的`v{UPCOMING}-beta.{N}`
- **用例:** 立即获取最新功能和错误修复;非常适合测试
### 生产频道(手动)
- **触发:** 在`releases`分支上手动`workflow_dispatch`
- **版本格式:** `vX.Y.Z`(语义化版本)
- **GitHub发布:** 标记为稳定版
- **Docker标签:** `vX.Y.Z`、`vX.Y`、`vX`、`latest`
- **用例:** 用于生产环境的稳定、经过测试的版本
## 贡献
我们欢迎贡献!请参阅[CONTRIBUTING.md](CONTRIBUTING.md)了解开发设置、架构概述以及如何提交拉取请求。
## 许可证
[AGPL-3.0](LICENSE)
评论
0 评分人数达到10人后显示
登录后参与讨论。