把多家 AI 桌面客户端的登录态,变成一个本地 OpenAI 兼容 API 网关
简体中文 | English | 繁體中文 | 日本語 | 한국어 | Português (BR)
✨ 核心特性 • 💬 社区与支持 • 🤝 支持的提供商 • 🚀 快速开始 • 🐳 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 帮到了你,欢迎请作者喝杯咖啡;赞赏完全自愿,不解锁任何功能。
- 🤝 赞助 / 商务合作:想赞助本项目,或想让你的产品出现在这里?发邮件到 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。
本项目与各上游厂商及其官方产品均无关(名单见使用声明);接口形态来自对各家客户端通信的观察,上游随时可能调整。
从 Releases 下载安装包(NSIS,简体中文,默认装到 C:\Program Files\Agent2API,安装时需要管理员授权),安装后启动即可,无需安装 Node 或任何其它运行时。
- 首次启动即在应用进程内启动本机网关(端口 3065)并打开主窗口;若检测到旧版本的数据目录或数据文件,会弹窗提示迁移,按指引操作即可。
- 点「账号」页的「添加账号」,选提供商后按弹窗提示完成登录或填写凭证即可(方式以弹窗为准:网页登录 / 手机验证码 / 粘贴凭证 / 导入本机登录态)。
- 把 OpenAI 客户端的
base_url填成http://127.0.0.1:3065/v1,api_key随便填(例如sk-local,未启用鉴权时服务端不校验)。
关闭窗口默认最小化到托盘,网关继续在后台转发;彻底退出请在托盘图标右键选「退出」。
网关起来后,用 curl 确认联通性(model 填 GET /v1/models 里任一实际存在的名字):
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):
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 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 都有镜像):
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)
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。本项目中的接口形态、协议字段等信息来自对各官方客户端公开网络通信的观察与整理,相关商标与服务的权利归其各自所有者;若权利方认为本项目存在不当之处,请联系作者,将及时调整或删除。
本项目基于 MIT License,可自由使用、修改与分发,须保留版权声明。
需要留意的是:LICENSE 正文之后附有一份使用声明,其中第 3 条在 MIT 之上追加了限制(禁止商业用途、禁止二次分发牟利、禁止批量账号运营)。因此本项目不是纯粹的 MIT 项目——MIT 条款与使用声明共同构成完整的授权与使用约定,两者对同一行为给出不同结论时以更严格的一方为准。这也是 Cargo.toml 用 license-file 指向 LICENSE、而不声明 SPDX "MIT" 的原因。







