Rainytoken/docs/PROXY-ROADMAP.md
Liuxinyu176 9d3c004617 feat(proxy): 新增反代网关骨架与开发路线图
- docs/PROXY-ROADMAP.md:M0-M4 里程碑、Provider 矩阵、风险与参考仓库
- data/proxy/:ProviderKind/ProviderRegion/ProxyModels/ProviderAdapter/AccountPool/RegionRouter/LocalProxyServer 接口骨架
- .gitignore:忽略 _tmp_* 调试文件,防止真实接口响应/账号数据入库
2026-10-08 22:22:45 +08:00

5.4 KiB
Raw Blame History

RainyToken 反代网关开发路线图(PROXY-ROADMAP)

分支:dev-proxy 目标:在雨晴Token App 内嵌一个多提供商 OpenAI 兼容反代网关,支持双区、签到、反代、多账号池,并尽量覆盖 agent2api / fleet-kit 等开源项目已支持的平台。


1. 最终目标

App 内启动一个本地 HTTP 服务(默认 127.0.0.1:8787),对外暴露:

  • GET /v1/models
  • POST /v1/chat/completions(OpenAI 兼容,流式/非流式)
  • POST /v1/responses(Codex Responses API)
  • POST /v1/messages(Anthropic Messages,Claude Code 直连)

请求按「模型名 → Provider + Region + 账号」路由,复用现有 CredentialRepository / SecureStorage / 各 Repository。

2. 架构

LocalProxyServer (127.0.0.1:8787)
   │
   ├── /v1/chat/completions
   ├── /v1/responses
   ├── /v1/messages
   └── /v1/models
        │
        ▼
  ProviderRouter(模型名 → Provider + Region + Account)
        │
  ┌──────┼──────────┬─────────────┬──────────────┐
  ▼      ▼          ▼             ▼              ▼
WBAdpt TraeAdpt  QoderAdpt  RaccoonAdpt  OfficialPassthrough
(CN/INTL)(CN/INTL)(CN)      (CN)        (DeepSeek/Gemini/Kimi…)
        │
        ▼
 AccountPool(多账号轮询 + 熔断冷却 + 会话粘性)
        │
        ▼
 StreamNormalizer(各家上游 SSE 分片 → 标准 OpenAI/Anthropic 流)

3. 已编码骨架(data/proxy)

  • ProviderKind.kt:全部计划支持的 Provider 枚举
  • ProviderRegion.kt:CN / INTL
  • ProxyModels.kt:统一 Chat 请求 / 响应 / 模型 / 用量
  • ProviderAdapter.kt:统一 Provider 适配器接口
  • AccountPool.kt:账号池骨架(round-robin,后续加权)
  • RegionRouter.kt:模型 → Provider/Region 路由骨架
  • LocalProxyServer.kt:本地服务接口 + 配置

4. 里程碑

M0:地基(当前)

  • 新增 data/proxy 骨架,能编译
  • 新增本路线图
  • 验收:./gradlew :app:assembleDebug 绿

M1:先打通“已经有凭据体系”的三家

  • WorkBuddy 国内版 Chat 适配器(参考 workbuddy2api / workbuddy-gateway)
  • Trae CN Chat 适配器(参考 Trae2api-cn / trae2api)
  • Sub2API 透传(本身是 OpenAI 兼容协议)
  • 本地 HTTP 服务可用,任意 OpenAI 客户端可连
  • 验收:真机 + 真凭据,WorkBuddy / Trae / Sub2API 各能回复一条消息

M2:双区 + 多账号治理

  • WorkBuddy 国际版、Trae INTL/Solo/Work 适配器
  • RegionRouter 按模型家族自动选区(glm/deepseek/kimi → CN,gpt/claude/gemini → INTL)
  • AccountPool 加权轮询 + 429 熔断 + 会话粘性
  • 验收:国内/国际账号混挂,同模型自动走对应区,单号故障自动换号

M3:覆盖 agent2api 全家桶

  • Qoder CN、小浣熊、CatPaw、AutoClaw CN/INTL、Cline、Accio CN/INTL、ZCode CN/INTL、CodeArts、Loomy
  • 每家一个 Adapter,抄 agent2api providers/ 目录
  • 验收:每家至少能在有凭据的情况下完成一次对话;签到/余额尽量复用现有页

M4:长尾 + 官方直连

  • 灵犀、团结AI、TokenDance、Kimi Code、MiniMax、Gemini
  • 官方 OpenAI 兼容平台统一走 OfficialPassthrough(配置 base_url + key)
  • 设置页新增「代理网关」管理:端口、启动/停止、API Key、运行状态
  • 验收:所有支持平台可在 UI 中启用/禁用

5. Provider 支持矩阵(规划)

Provider 区域 Chat 签到 参考实现
WorkBuddy CN / INTL ✅ CN 有 agent2api / fleet-kit / proxy-hub
Trae / SOLO / Work CN / INTL ✅ CN 有 agent2api / proxy-hub
Qoder CN ✅ CN 有 agent2api / proxy-hub
小浣熊 CN ✅ 桌面登录积分 agent2api / fleet-kit
CatPaw CN ✅ - agent2api
AutoClaw CN / INTL ✅ CN 有 agent2api
Cline INTL ✅ - agent2api
Accio CN / INTL ✅ - agent2api
ZCode CN / INTL ✅ - agent2api
CodeArts CN ✅ 每日福利 agent2api
Loomy CN ✅ 每日积分 agent2api / fleet-kit
灵犀 / 团结AI / TokenDance CN ✅ 待确认 fleet-kit
Kimi Code / MiniMax / Gemini INTL/CN ✅ - 官方 API 透传

6. 关键风险与对策

  1. 上游协议会变:所有解析做防御式多候选扫描(项目现有惯例);接口变动时快速适配。
  2. 设备指纹/风控:Trae 签到 9074、WorkBuddy 设备指纹;沿用现有 checkinDeviceId / derive_id 思路。
  3. Token 单次轮换:WorkBuddy refresh 单次消费,沿用 RefreshWriteSession 落库再用的机制。
  4. SSE 分片差异:各家流式事件格式不同,用统一 StreamNormalizer 归一。
  5. Android 后台:若只给本机内客户端用,App 前台运行即可;若希望后台常驻,需前台服务 + 通知。

7. 参考仓库