# Agent2API
**Repository Path**: COLORREF/Agent2API
## Basic Information
- **Project Name**: Agent2API
- **Description**: 本地反向代理 + OpenAI 兼容 AI 网关:复用桌面客户端登录态,一个 base_url 调用十余家模型额度
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: https://github.com/aimod-cc/Agent2API
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2026-10-22
- **Last Updated**: 2026-10-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: fork
## README
# Agent2API
**把多家 AI 桌面客户端的登录态,变成一个本地 OpenAI 兼容 API 网关**
[简体中文](./README.md) | [English](./docs/README.en.md) | [繁體中文](./docs/README.zh-Hant.md) | [日本語](./docs/README.ja.md) | [한국어](./docs/README.ko.md) | [Português (BR)](./docs/README.pt-BR.md)
[](./LICENSE)
[](https://github.com/aimod-cc/agent2api/releases/latest)
[](https://hub.docker.com/r/aimodcc/agent2api)
[](https://github.com/aimod-cc/agent2api/stargazers)
[](https://github.com/aimod-cc/agent2api/releases/latest)
[✨ 核心特性](#-核心特性) • [💬 社区与支持](#-社区与支持) • [🤝 支持的提供商](#-支持的提供商) • [🚀 快速开始](#-快速开始) • [🐳 Docker 部署](#-docker-部署) • [📸 界面预览](#-界面预览) • [🔧 开发与构建](#-开发与构建) • [📜 使用声明](#-使用声明)
---
Agent2API 把多家 AI 桌面客户端里已登录的账号接到一起,共用一套 OpenAI 兼容接口。任何支持自定义 `base_url` 的客户端,填上 `http://127.0.0.1:3065/v1` 就能直接调用这些账号的模型额度 —— **不需要上游 API Key,也不需要改客户端**。
## ✨ 核心特性
- 🔌 **OpenAI 兼容** —— 客户端填个 `base_url` 就能用,Chat / Responses / Messages 三种协议都支持
- 🏪 **内置 17 家提供商** —— WorkBuddy、小浣熊、CatPaw、Qoder、Trae 等开箱即用,也支持自定义提供商
- 🔁 **凭证自动续期** —— Token 到期自动换新,临期凭证可批量刷新,模型目录也不会过期
- 🪂 **多账号轮转** —— 按优先级排队,429 自动换账号,限额冷却期内不空等
- 🛡️ **出网代理** —— 每个账号可配独立出口,出站指纹按官方客户端伪装
- 🔑 **网关安全** —— 多把网关 Key 可分权、登录有人机验证,没配 Key 时默认拒绝请求
- 📊 **请求报表** —— 请求量、成功率、Token 消耗一览,还有缓存命中率与 365 天热力图
- ⏰ **定时任务** —— 自动签到、凭证维护、模型目录刷新,开关与间隔在一页里管理
- 💰 **余额与用量** —— 账号行内直接看余额与用量,支持跨账号并发查询
- 🖥️ **两种部署** —— 桌面端托盘常驻、免装 Node;Docker 版面板与网关同端口,界面六语
## ❤️ 赞助商
 |
感谢 ProxyLane 赞助了本项目!ProxyLane 提供 AI 账号专用的原生静态住宅 IP(Static Residential ISP):IP 来自真实家庭宽带运营商,Scamalytics 低欺诈评分,每个 IP 独享,不限流量,$3.90 起。在「网络代理」页给每个账号配一个出口即可。首次购买使用优惠码 AGENT2API25 享 75 折。 |
## 💬 社区与支持
- **QQ 群**:Agent2API 交流群,群号 `1127656296` —— 在 QQ 里搜索群号即可加入,使用答疑与问题反馈都在这里。
- **💖 赞赏**:如果 Agent2API 帮到了你,欢迎[请作者喝杯咖啡](docs/SPONSOR.md);赞赏完全自愿,不解锁任何功能。
- **🤝 赞助 / 商务合作**:想赞助本项目,或想让你的产品出现在这里?发邮件到 [541675139@qq.com](mailto:541675139@qq.com)。
## 🤝 支持的提供商
支持情况一览(✓ 支持 · ✗ 不支持 · — 无此概念):
| 平台 | LLM 请求 | Token 自动续期 | 模型列表 | 余额查询 | 签到 | 领取类 |
| --- | :--: | :--: | :--: | :--: | :--: | :--: |
| WorkBuddy 国内版 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| WorkBuddy 国际版 | ✓ | ✓ | ✓ | ✓ | ✗ | — |
| 小浣熊 | ✓ | ✓ | ✓ | ✓ | ✓ | — |
| CatPaw | ✓ | ✗ | ✓ | ✓ | ✗ | — |
| AutoClaw(国内版 / 国际版) | ✓ | ✓ | ✓ | ✓ | ✓ | — |
| Qoder | ✓ | ✓ | ✓ | ✓ | ✓ | — |
| Cline(Free / Pass) | ✓ | ✓ | ✓ | ✓ | — | — |
| Accio(国际版 / 国内版) | ✓ | ✓ | ✓ | ✓ | — | — |
| ZCode(国内版 / 国际版) | ✓ | ✗ | ✗ | ✓ | — | ✓ |
| CodeArts | ✓ | ✓ | ✓ | ✓ | — | ✓ |
| Trae | ✓ | ✓ | ✓ | ✓ | — | — |
| Loomy(讯飞) | ✓ | ✗ | ✓ | ✓ | ✓ | — |
| KukuAI(百度文库) | ✓ | ✗ | ✓ | ✓ | ✓ | — |
| MonkeyCode(长亭科技,国内版 / 国际版) | ✓ | ✗ | ✓ | — | — | — |
| Command Code | ✓ | ✗ | ✓ | — | — | — |
| Antigravity(Google,Gemini) | ✓ | ✓ | ✓ | — | — | — |
| OfficeAce(华为云果办 / OfficeClaw) | ✓ | ✓ | ✓ | ✓ | ✓ | — |
| 自定义提供商 | ✓ | — | ✓ | — | — | — |
> 注:模型列表的 ✓ 表示支持在线自动拉取,部分平台另有内置静态表兜底;ZCode 仅有内置静态表。Token 续期列 ✗ 表示该平台没有可用的续期接口(账号在有效期内不受影响)。Qoder 签到仅中国版可用。
`/v1/chat/completions`、`/v1/responses`、`/v1/messages`(含 `count_tokens`)与 `/v1/models` 对所有平台一视同仁;模型映射、全局优先级队列、429 降级、出网代理、出站指纹脱敏与请求报表同样全平台通用。
> **本项目仅供学习与交流使用。** 它以非官方客户端形态复用你自己账号的登录态,可能不符合上游服务的使用条款,风险(含账号被风控、封禁)自负;禁止商用或绕过计费。详见[使用声明](#-使用声明)与 [LICENSE](./LICENSE)。
>
> 本项目与各上游厂商及其官方产品均无关(名单见[使用声明](#-使用声明));接口形态来自对各家客户端通信的观察,上游随时可能调整。
## 🚀 快速开始
从 [Releases](https://github.com/aimod-cc/agent2api/releases/latest) 下载安装包(NSIS,简体中文,默认装到 `C:\Program Files\Agent2API`,安装时需要管理员授权),安装后启动即可,**无需安装 Node 或任何其它运行时**。
1. 首次启动即在应用进程内启动本机网关(端口 3065)并打开主窗口;若检测到旧版本的数据目录或数据文件,会弹窗提示迁移,按指引操作即可。
2. 点「账号」页的「添加账号」,选提供商后按弹窗提示完成登录或填写凭证即可(方式以弹窗为准:网页登录 / 手机验证码 / 粘贴凭证 / 导入本机登录态)。
3. 把 OpenAI 客户端的 `base_url` 填成 `http://127.0.0.1:3065/v1`,`api_key` 随便填(例如 `sk-local`,未启用鉴权时服务端不校验)。
关闭窗口默认最小化到托盘,网关继续在后台转发;彻底退出请在托盘图标右键选「退出」。
### 验证
网关起来后,用 curl 确认联通性(`model` 填 `GET /v1/models` 里任一实际存在的名字):
```bash
curl http://127.0.0.1:3065/health
curl http://127.0.0.1:3065/v1/models
curl http://127.0.0.1:3065/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"deepseek-v4.1-flash","messages":[{"role":"user","content":"你好"}],"stream":true}'
```
客户端接入示例(Python SDK):
```python
from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:3065/v1", api_key="sk-local")
resp = client.chat.completions.create(
model="deepseek-v4.1-flash", # 名单里有哪家就是哪家,见 GET /v1/models
messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)
```
**浏览器页面**(自建 Web UI 等)用 `fetch` 直连会被跨源预检拒绝——网关默认不应答 CORS,预检落到 API Key 校验上得 401。两种解法:① 设置页「安全 → 网关跨域访问」打开(来源 `*`;此时任何网页都能借本机网关打上游,建议同时配「网关 Key」);② 页面与网关同源——本地静态服务托管页面并把 `/v1` 反代到 `127.0.0.1:3065`。
### 局域网访问
默认只监听 `127.0.0.1`。开启「设置 → 通用 → 局域网访问」后改听所有网卡,局域网设备把 API 地址指向本机 IP 即可共用(界面会给出完整地址)。出于安全,开启前必须注册面板管理员:管理接口要求管理员会话或网关 Key,无可用 Key 时转发接口同样拒绝服务(开启流程会自动补一把「默认」Key);也可选择同时开放网页面板(默认关闭)。改动重启生效。
## 🐳 Docker 部署
```bash
docker run -d --name agent2api --restart unless-stopped \
-p 3065:3065 -v ./data:/data \
aimodcc/agent2api:latest
```
浏览器打开 `http://<主机>:3065`,首次进入会引导**注册管理员账号**;登录后在「网关 Key」页建一把 API Key 给客户端用 —— `http://<主机>:3065/v1` 即 OpenAI 兼容端点(未建 Key 前拒绝转发)。状态(SQLite 库 / 配置 / 日志)都在 `./data` 一个卷里。
compose 用户(amd64 / arm64 都有镜像):
```yaml
services:
agent2api:
image: aimodcc/agent2api:latest
container_name: agent2api
restart: unless-stopped
ports:
- "3065:3065"
volumes:
- ./data:/data
```
环境变量(都可选):
| 变量 | 说明 |
| --- | --- |
| `AGENT2API_ADMIN_USER` + `AGENT2API_ADMIN_PASSWORD` | 预置管理员账号密码(密码明文填,启动时自动转哈希);不填走面板注册 |
| `AGENT2API_PANEL_PORT` | 面板分端口:设后面板(界面 + `/api/*`)单独监听该端口,公网只映射主端口即可把管理面留在内网(面板端口绑回环,写 `127.0.0.1:3066:3066`) |
| `AGENT2API_HOST` / `AGENT2API_PROXY_PORT` | 监听地址(默认 `0.0.0.0`)/ 端口(默认 `3065`) |
| `AGENT2API_ALLOW_NO_KEY` | 置 `1` 关闭 fail-closed(未配 Key 也放行 `/v1`,仅限纯内网) |
| `AGENT2API_CAPTCHA_ENABLED` | 登录页人机验证:默认 `1` 开启,`0` 关闭 |
| `AGENT2API_SELF_UPDATE` | 容器内的更新入口:默认 `1` 开启(面板可「下载并更新」);置 `0` 关闭,只走手动升级 |
| `WORKBUDDY_UPDATE_REPO` + `WORKBUDDY_UPDATE_API_BASE` | 进阶:把「检查更新 / 下载更新」换成自建源。前者换仓库(默认跟上游 `aimod-cc/agent2api`,fork 后可改),后者换 API 根(默认 `https://api.github.com`,需返回与 GitHub 同形的 release JSON)。配了自建源后,下载白名单只额外放行**该源自己的域名**(按源的 scheme:配 `http://` 就允许明文下载,仅建议本地演练/内网镜像用)|
从源码构建:克隆本仓库后 `docker compose up -d --build`(镜像里只有网关与面板,不含 Rust 工具链)。
**网页端功能差异**(源于「没有本机桌面客户端」):网页登录(WorkBuddy / Qoder / Cline)、手机验证码、粘贴凭证完全可用;需要本机回调的网页登录(AutoClaw / CatPaw / Accio / CodeArts / Trae)与「导入本机登录态」不可用,请改用粘贴凭证。
## 📸 界面预览
### 账号

添加账号:

### 模型管理

### 报表
概览:请求数 / 成功率 / Token 总量 / Top 模型与账号、提供商排名,附用量环图与 365 天活跃热力图:

趋势:24 小时**缓存命中率**(折线)与 **Token 消耗**(面积)双轴同图,底部按天 Token 柱状图:

### 签到中心

## 🔧 开发与构建
### 环境要求
- Rust >= 1.77 与 Tauri 2 工具链(编译桌面端本体;Windows 上还需 WebView2 运行时)
- Node.js >= 18.17(只用于 `npm run tauri:*` 与前端构建脚本,桌面端运行时不依赖 Node)
### 常用脚本
```bash
npm run tauri:install # 安装桌面端依赖(等价 npm --prefix desktop-tauri install)
npm run tauri:dev # 开发模式调起桌面端(自动热重载)
npm run tauri:build # 构建桌面端安装包
npm run build:icon # 生成图标源图(改图标设计后执行,再跑 tauri icon)
```
打包产物为 `target/release/bundle/nsis/Agent2API_<版本>_x64-setup.exe`(当前约 3.0 MB;`src-tauri/.cargo/config.toml` 把 cargo 的 `target-dir` 指到了项目根的 `target/`)。
## 📜 使用声明
### 仅供学习与交流
本项目是一个用于学习 HTTP 反向代理、SSE 流式透传、多上游协议适配与桌面端打包(Tauri)等技术主题的实践项目,**仅供个人学习与研究使用**。它不是官方产品,与腾讯公司及 WorkBuddy / CodeBuddy、美团及 CatPaw、商汤及小浣熊、智谱及 AutoClaw / autoglm、阿里巴巴及 Qoder / Accio、华为云及 CodeArts / OfficeAce、字节跳动及 Trae、科大讯飞及 Loomy、百度文库及 KukuAI、长亭科技及 MonkeyCode、Command Code、Google 及 Antigravity 均无任何关联,未获得其授权、认可或赞助。
### 关于反向代理行为
本项目实现的是本地反向代理:在你自己的机器上复用你自己账号的登录态,把请求转发到官方上游网关。它不破解、不绕过任何付费或权限校验,使用的额度始终来自你自己账号本就拥有的配额。但需要明确的是,这种「以非官方客户端形态复用登录态」的转发方式,**可能不符合上游服务的用户协议或使用条款**;是否使用、由此产生的一切后果(包括但不限于账号被限流、被风控、被冻结或封禁),均由使用者自行承担。
### 禁止用途
禁止将本项目用于任何商业用途、二次分发牟利、批量账号运营、绕过上游计费或配额限制、或其他违反当地法律法规的活动。如需在生产环境或商业场景中调用相关模型服务,请使用官方渠道与官方 API。
### 凭证与数据风险
本项目会把账号凭证(`accessToken` / `refreshToken` 等)以**明文**形式保存在本机配置目录(默认 `~/.agent2api/`)中,导出功能生成的文件同样包含明文凭证。请自行妥善保管,切勿提交到公开仓库、上传到网盘或分享给他人。因凭证泄露造成的损失由使用者自行承担。
### 无担保与权利通知
本项目按「现状」提供,作者不对其可用性、稳定性、安全性或对特定用途的适用性作任何承诺。上游接口随时可能变更,本项目可能随时失效而不再维护。完整条款见 [LICENSE](./LICENSE)。本项目中的接口形态、协议字段等信息来自对各官方客户端公开网络通信的观察与整理,相关商标与服务的权利归其各自所有者;若权利方认为本项目存在不当之处,请联系作者,将及时调整或删除。
## 📄 许可
本项目基于 [MIT License](./LICENSE),可自由使用、修改与分发,须保留版权声明。
需要留意的是:LICENSE 正文之后附有一份**使用声明**,其中第 3 条在 MIT 之上**追加了限制**(禁止商业用途、禁止二次分发牟利、禁止批量账号运营)。因此本项目**不是**纯粹的 MIT 项目——**MIT 条款与使用声明共同构成完整的授权与使用约定**,两者对同一行为给出不同结论时以更严格的一方为准。这也是 `Cargo.toml` 用 `license-file` 指向 LICENSE、而不声明 SPDX `"MIT"` 的原因。
## ⭐ Star History
**[下载最新版](https://github.com/aimod-cc/agent2api/releases/latest)** • **[问题反馈](https://github.com/aimod-cc/agent2api/issues)**
如果这个项目对你有帮助,欢迎点一个 ⭐️ Star!