
📥 项目地址:github.com/aimod-cc/agent2api/releases/latest(Windows 安装包 8.6 MB,另有 macOS dmg 与 Linux server 包)|镜像 docker pull aimodcc/agent2api
先说一个很多人有过的念头:我装了五六个 AI 编程客户端,每个都有免费额度,能不能把它们合起来当一个 API 用?
Agent2API 就是干这个的。它把十几家 AI 桌面客户端里已经登录好的账号接到一起,在本机起一个网关,任何支持自定义 base_url 的工具填上 http://127.0.0.1:3065/v1 就能调用这些账号的模型额度。
项目在 GitHub 上 1778 star、479 fork,Rust 写的,从今年 9 月建仓到现在两个月,更新频率很高。这篇拆它的原理、部署成本和边界——尤其是最后那部分,因为项目作者自己在 README 里写了一段风险声明,很多人看教程时会跳过。
一、先说结论:它解决的到底是什么问题
不是”让你免费用大模型”这么简单。要理解它的定位,得先看清楚现在的局面:
这些 AI 编程客户端(WorkBuddy、Qoder、Trae、Cline 等等)做生意的方式都差不多——送额度,但只能用在我的客户端里。你想拿这个额度去跑自己的脚本、接自己的工具链,官方通常不提供 API Key。要么买 API,要么老实用客户端。
Agent2API 填的就是这个缝:它在你本机把你已经登录的会话接出来,翻译成标准 OpenAI 协议。于是那些”只能在客户端里用”的额度,变成了任何工具都能调的标准接口。
这个定位很明确,也很敏感。它没有破解什么,用的是你自己账号的合法登录态;但它确实绕开了”只能在官方客户端内使用”这个设计意图。这两件事的边界在哪,第七节详细说。
二、原理:三个组件拼起来的东西
拆开看,它没有想象中复杂。三个部件:
① 凭证池。每家客户端的登录态存在各自的位置——有的是配置文件里的 token,有的是本地数据库,有的要通过网页登录拿 Cookie。Agent2API 的做法是”登录一次,把凭证收进自己的库”,之后按账号管理。
收凭证的方式它留了四种,面向不同情况:网页登录(弹出浏览器走 OAuth 或扫码)、手机验证码(平台走短信登录的)、粘贴凭证(你手里已经有 token,直接贴)、导入本机登录态(客户端已经登录好了,它去把现成的凭证读出来)。
最后一种最省事,也最需要留意:它读的是你本机已经登录的会话。这意味着你在装之前,那些客户端得先登好;也意味着这个工具必然要拿到读这些客户端数据目录的权限。装的时候要求的”管理员授权”,一部分就是用在这。
② 协议适配层。这是最费工的部分。上游是各家自己的私有接口,下游是标准 OpenAI 格式,中间要做请求改写、响应归一、流式转换、错误码映射。
③ 本地网关。在本机 3065 端口起一个 HTTP 服务,对外暴露 /v1/chat/completions、/v1/responses、/v1/messages、/v1/models 这几个标准端点。客户端以为在调 OpenAI,实际被转发到某个真实账号。
所以本质上它是个带凭证管理的反向代理。这个词不性感,但准确。
三、为什么能支持 17 家:适配层是怎么做的
README 里列了一张表,覆盖 WorkBuddy(国内版/国际版)、小浣熊、CatPaw、AutoClaw、Qoder、Cline、Accio、ZCode、CodeArts、Trae、Loomy、KukuAI、MonkeyCode、Command Code、Antigravity、OfficeAce,再加上自定义提供商,一共十七个。
但注意表里的细节——不是每家都全须全尾。列名分五项:LLM 请求、Token 自动续期、模型列表、余额查询、签到。你会发现:
- 请求这一列全是 ✓,说明基础转发都通了
- Token 续期有好几家是 ✗(CatPaw、ZCode、Loomy、KukuAI、MonkeyCode、Command Code),意思是这些平台的凭证到期后得手动重新登录
- 模型列表 ZCode 只有内置静态表,拉不到在线的
- 签到功能只有部分平台支持,Qoder 还限定中国版
这张表其实是全文最该看的东西。它诚实地告诉你每家支持到什么程度,而不是笼统说”支持 17 家”。你如果冲着某一家去,先在这一行找到它的 ✗,再决定要不要折腾。
节选几行直观感受一下差距:
| 平台 | LLM 请求 | Token 续期 | 模型列表 | 余额查询 | 签到 |
|---|---|---|---|---|---|
| WorkBuddy 国内版 | ✓ | ✓ | ✓ | ✓ | ✓ |
| WorkBuddy 国际版 | ✓ | ✓ | ✓ | ✓ | ✗ |
| 小浣熊 | ✓ | ✓ | ✓ | ✓ | ✓ |
| CatPaw | ✓ | ✗ | ✓ | ✓ | ✗ |
| Qoder | ✓ | ✓ | ✓ | ✓ | ✓ |
| ZCode(国内版/国际版) | ✓ | ✗ | ✗ | ✓ | — |
| Cline(Free / Pass) | ✓ | ✓ | ✓ | ✓ | — |
| Trae | ✓ | ✓ | ✓ | ✓ | — |
| Antigravity(Google) | ✓ | ✓ | ✓ | — | — |
| 自定义提供商 | ✓ | — | ✓ | — | — |
看这张表要换个读法:别看有多少个 ✓,看你要用的那家有没有 ✗。Token 续期那一列出现 ✗,意味着这家的账号到期后你得手动重新登录——如果你打算把它挂在 NAS 上跑一个月不管,这一格就是拦路虎。模型列表 ✗ 意味着拉不到在线清单,只能用内置的静态表,平台一上新模型你就看不到。
顺带说一句:这些接口形态不是官方文档给的,README 里写得很直白——「接口形态来自对各家客户端通信的观察,上游随时可能调整」。这句话的意思是:任何一家改版,对应适配就可能失效,得等作者跟进。
四、部署:两种形态,成本差别不小
形态一:Windows 桌面端。NSIS 安装包,简体中文,默认装到 C:Program FilesAgent2API,安装时要管理员授权。装完启动即可,不需要装 Node 或任何运行时——因为是 Rust + Tauri 打包的原生程序。
当前最新稳定版是 v3.0.8,Windows 安装包 8.6 MB,单个版本下载量六千多次。macOS 有 dmg,20 MB 左右。另外还有 v3.3.0-beta 在迭代,测试版更新更勤,但别拿它跑生产。
行为上有个细节值得说:关窗口默认最小化到托盘,网关继续在后台转发。想彻底退出要在托盘图标右键选「退出」。这设计对”平时挂着”的场景友好,但也容易忘——某天发现 3065 端口被占,八成就是它还在跑。
首次启动的流程是:进程内直接把网关拉起来(3065 端口)、打开主窗口、然后让你去「账号」页添加。如果是覆盖升级,检测到旧版本的数据目录会弹窗提示迁移,按指引走就行。
这里有个容易被忽略的点:它是”应用即网关”的架构,不是两个独立进程。这意味着你关掉应用(不是最小化),网关就停了,正在跑的请求会断。如果你有脚本在调用它,别随手点退出。
形态二:Docker。面板和网关同端口,适合放在 NAS 或小主机上常驻。仓库里有 Dockerfile 和 docker-compose.yml,也提供 linux-amd64 / arm64 的 server 包(8 MB 上下)。
两种形态的选择很简单:自己电脑上用选桌面端,想多设备共享选 Docker。注意 Docker 版把网关暴露到网络上,第七节说的网关鉴权就必须配。
五、五个真正值钱的工程细节
功能列表看着平淡,但有几处是”做过才知道疼”的设计,值得单独讲。
① 凭证自动续期
登录态是会过期的。手动维护十几个账号的 token,是这件事最烦的部分。它做了自动换新,还支持”临期凭证批量刷新”——一次性把快过期的一批处理掉,不用等它失效再救。这个功能直接决定了它能不能”挂着不管”。
② 多账号轮转与 429 降级
单个账号有速率限制,撞上 429 就只能等。它的做法是按优先级排队,某个账号被限流就自动换下一个,并且给被限的账号一个冷却期,冷却期内不再往上撞。
这个机制的价值在于:你有一堆账号的时候,单账号的限流对整体吞吐影响被摊薄了。这也是它相比单账号方案最大的优势。
③ 出网代理 + 出站指纹伪装
这一条既是技术亮点,也是风险点,得说清楚。
它允许给每个账号单独配出口 IP,README 里还提到”出站指纹按官方客户端伪装”。翻译一下:让上游平台看起来像是官方客户端在自己网络里正常使用,而不是一个脚本在批量调用。
为什么这么做?因为平台的风控就是靠这些特征判断的。为什么要谨慎?因为这本质上是在规避平台的风控识别。项目 README 里有赞助商卖”AI 账号专用原生住宅 IP”,就是这个需求催生的产业链。
我不评价这个设计对不对,但要提醒:你用了指纹伪装,就意味着你清楚自己在做什么,出事时”我不知道”这个理由站不住。
④ 网关鉴权
细节做得比想象中认真:多把网关 Key 可以分权限、登录有人机验证、没配 Key 时默认拒绝请求。最后这条是安全默认值,很多同类工具是”没配就全放开”,那意味着你局域网里任何人都能用你的额度。
但它也有个坑:README 的快速开始里写”api_key 随便填(例如 sk-local),未启用鉴权时服务端不校验”。这句话容易误导——未启用鉴权指的是你没配网关 Key 的状态,这种状态只适合纯本机自用。一旦你为了 Docker 或者局域网访问去改监听地址,就必须先把 Key 配上,否则等于把额度挂在公网上。
⑤ 请求报表与定时任务
请求量、成功率、Token 消耗、缓存命中率、365 天热力图,这些是”用了两周之后想知道钱花在哪”的刚需。定时任务则把自动签到、凭证维护、模型目录刷新这几件琐事收进一个页面,开关和间隔都能调。
这类功能单独看都不算亮点,但凑齐了才叫”能长期挂着跑”。
六、它做不到什么
光说能做什么容易失真,这几条边界必须讲:
① 不能给你”更多额度”。它只是把你已有的额度换个方式用。账号本身有多少就是多少,轮转只是把限流摊薄,不会凭空变多。
② 不能保证模型能力一致。各家客户端背后的模型不一定是同一个版本,参数支持程度也不同(比如有的不支持 tools 调用、有的不支持图片输入)。同一段代码在 A 账号能跑,换 B 账号可能报错。
③ 不能免疫上游改版。这是所有这类工具的通病。客户端一升级、接口一调整,适配就可能失效。README 自己写了”上游随时可能调整”。所以它不适合作为关键业务的依赖。
🔧 我整理的软件库
这些年折腾服务器、虚拟化和开发环境,装过的系统镜像、运维工具、开发套件、数据库与中间件,我都归档在自建的文件库里,持续补充新版本。没有弹窗广告,不强制注册,需要什么直接取。
常用工具随手可取 · 不定期补档
④ 不能解决合规问题。下面单独说。
和另外两种做法的区别
把这个工具放进全局看,其实是三条路的第三条:
| 做法 | 能编程调用 | 合规性 | 稳定性 | 成本 |
|---|---|---|---|---|
| 官方 API | 能 | 完全合规 | 有 SLA | 按量付费 |
| 客户端里手工用 | 不能 | 完全合规 | 跟着客户端走 | 免费额度 |
| Agent2API 这类网关 | 能 | 灰色地带 | 上游一改就失效 | 免费额度 |
这张表说明什么?它用”合规性”和”稳定性”换来了”能编程调用 + 不花钱”。这笔交换划不划算,取决于你拿来干什么。
跑个人脚本、做技术验证、研究协议实现——划算,因为这些场景失误成本低。给客户交付、跑生产任务、处理敏感数据——不划算,因为一次封号或一次失效,损失远超省下的那点 API 费。
七、三条红线,项目自己也承认
这一段是我写这篇文章最主要的原因。README 里有一段话,很多人看教程时会直接跳过:
本项目仅供学习与交流使用。它以非官方客户端形态复用你自己账号的登录态,可能不符合上游服务的使用条款,风险(含账号被风控、封禁)自负;禁止商用或绕过计费。
作者把话说得很清楚。我把它拆成三条具体的红线:
红线一:账号风险是真的。平台设计”额度只能在客户端用”,是有商业考虑的。你用指纹伪装 + 多账号轮转去突破这个限制,被判定为异常行为是合理结果。封号不是理论风险,是这类工具最常见的结局。尤其是主账号、付费账号,别拿来试。
红线二:不能商用。自己学习、自己测试,和拿它去给客户跑业务,是两件事。后者一旦出问题,你面对的不只是封号,还有对客户的违约。项目明确写了”禁止商用或绕过计费”,这句话在真出事的时候是有效的责任划分依据。
红线三:别把数据送进不确定的链路。你在客户端里聊天,数据流向是明确的。中间加了一层本地代理、一堆轮转账号、可能还有第三方出口 IP,链路变长了。处理客户资料、内部文档的时候,这条链路里多出来的每一环都是风险。涉密内容老老实实用官方 API,别省这个钱。
顺带提一句同类话题:之前写过《一个插件白嫖顶级大模型?dsh 免费模型插件实测与红线》,逻辑是一样的——技术上能跑通,不等于可以放心用。还有一篇《白嫖 74 亿 Token 是真的吗?20 家 AI 平台免费额度全景盘点与避坑指南》,讲的是同一件事的另一面:那些”免费额度”到底值多少钱。
八、什么时候值得用
不吹也不劝退,按人群分:
适合的:
- 手上真有一堆账号、且都是自己注册的。轮转和续期能省掉大量手工维护,这是它最实在的价值。
- 想统一工具链。你写脚本、跑自动化、接本地 IDE,需要一个标准 OpenAI 接口,而不是在五六个客户端之间来回切。
- 纯粹技术研究。想看协议适配层怎么写的、多家私有接口怎么归一到同一套语义,这个仓库的 Rust 实现确实值得读。
不适合的:
- 只有一个账号。没有轮转需求,直接用官方客户端就行,中间加一层纯属给自己添故障点。
- 要跑业务、要交付给客户。红线二。
- 处理涉密或客户数据。红线三。
- 需要稳定 SLA。上游一改版就失效的东西,不能拿来做基础设施。
九、如果要用,先做这四件事
顺序别乱,尤其是第一条。
① 先用小号试。别一上来就挂主账号。拿一个可有可无的账号完整跑一遍:添加、调用、续期、轮转,确认都能通,再考虑把其他账号接进来。
② 配上网关 Key。哪怕只在本机用。原因很简单——你永远不知道自己哪天会为了图方便把监听地址改成 0.0.0.0。默认拒绝(没配 Key 就拒绝请求)这个默认值是好的,别去关它。
③ 把数据目录位置搞清楚。凭证存在本地哪个目录、有没有加密、备份怎么做、卸载时会不会残留。这些 README 不一定会写得很细,自己确认一遍。那个目录里放的是你十几个账号的登录态,价值比你想的高。
④ 记下当前版本号,别盲目跟更新。这类项目迭代快,测试版一周好几个。稳定版够用就别动,更新前先看 release notes 有没有破坏性变更。
⑤ 想清楚”失效之后怎么办”。这句是给准备长期用的人说的。上游改版是必然的,不是意外。你现在能跑通,三个月后可能某一家就报错。提前准备一半的备用方案:要么留一个官方 API Key 兜底,要么确认那条业务链断了能不能手动扛过去。先想好退路,比出事之后再找方案省力得多。
十、常见问题
Q1:需要 API Key 吗?
不需要上游的 API Key,用的是客户端登录态。但它自己的网关 Key 建议配上(见上一条)。客户端那边填的 api_key 在未启用鉴权时随便填,服务端不校验。
Q2:模型名怎么填?
先 GET /v1/models 拿一份实际可用的列表,再从里面挑一个填。别照抄网上的示例名字——各家模型命名不一样,填错会直接 404 或 400。
Q3:能同时用多个账号吗?
可以,这是它的核心功能。按优先级排队,撞上限流自动换下一个。但同一时刻一个请求只走一个账号,不是把一次请求拆给多个账号加速。
Q4:Windows 上装了之后端口被占怎么办?
先确认是不是它自己在后台跑着(关窗口只是最小化)。托盘图标右键退出,或者任务管理器结束进程。3065 是默认端口。
Q5:Docker 版和桌面版能同时跑吗?
同一个端口就冲突,要么改其中一个的端口,要么只用一种。数据目录也不共用,别指望两边账号同步。
Q6:上游改版导致失效,要等多久?
看作者跟进速度。这个项目两个月更新了十几个版本,响应算快的,但没有承诺。所以别把它放在关键路径上——失效时你得有备用方案。
Q7:能不能让手机或另一台电脑用?
技术上可以,把网关监听地址从 127.0.0.1 改成 0.0.0.0 或局域网 IP 就行。但必须同时把网关 Key 配上,而且要想清楚一件事:你是在把十几家平台的登录态共享到网络上。哪怕是内网,任何能访问这个端口的人都能消耗你的额度。真要这么做,加一层反向代理做 HTTPS 和 IP 白名单,别裸奔。
Q8:卸载之后凭证还留在本机吗?
大概率有残留——账号信息和凭证通常存在数据目录里,卸载程序不一定清理。这也是为什么第九节把”搞清楚数据目录位置”排在第三条:装之前就该知道它把东西写在哪,卸的时候才能确认删干净。那个目录里是十几个账号的登录态,比很多”重要文件”更值钱。
十一、结语
Agent2API 是个工程做得挺认真的项目:Rust 重写、双形态部署、凭证池与轮转、网关鉴权默认拒绝、报表齐全。单从技术完成度看,比同类的一堆 Python 脚本高一个档次,1778 star 不算虚。
但它解决的是一个有明确边界的需求:把”只能在客户端里用”的额度,变成”哪里都能调”的接口。这个动作本身就在平台设计意图的对立面,所以风险不是”可能有点”,是”结构性的”。
我的建议很简单:把它当技术方案看,当实验工具用,别当生产基础设施。想研究协议适配、想看多账号调度怎么设计,这个仓库值得读;想拿它撑业务、跑客户项目,那是在拿账号和信誉赌一个上游随时会改的接口。
如果你正在用它,或者踩过什么坑(比如某家突然失效、某次续期失败),欢迎在评论区说说具体是哪一家、什么现象——这种一手信息比任何教程都有用。
最后补一句:这类工具的生存周期,通常和上游平台的容忍度挂钩——只要官方觉得影响可控,它就还能跑;一旦开始收紧,可能一夜之间就失效。今天跑得通,不代表半年后还跑得通。把它当临时方案,而不是长期设施,心态和使用方式都会不一样。
✍️ 关于作者
IT 峰哥,互联网技术从业者。日常折腾服务器、虚拟化、数据库与企业级应用,关注开源系统的二次开发与基础设施落地。这里记录的是踩过的坑和验证过跑得通的方案,不是转述文档。
交流:微信 / 手机 17712677007(注明来意,看到会回)
文中方案如有疏漏,欢迎在评论区指正 · 技术问题欢迎交流