本服务将 Antigravity 代理出来,转换为标准的 Claude API 和 Gemini API 接口,支持多账号轮询、API Key 认证以及自定义代理配置。
特性:
- Thought Signatures(思考签名):按 Gemini 官方规范透传
thoughtSignature,在 thinking / 工具调用等场景中确保下一轮请求能原样带回签名,避免missing thought_signature类校验错误。 - 工具调用(Tool Use):支持 Claude
tool_use/tool_result与 GeminifunctionCall/functionResponse的互转,兼容需要工具调用的客户端/工作流。
已知问题: 在使用MCP时,claude转为antigravity的v1internal接口所使用的gemini格式后,v1internal内部判断当前model是claude,会将request转回claude格式,但是其内部接口又不能使用claude的一些字段,所以MCP会有各种奇奇怪怪的问题,这也是使用原生Antigravity时会出现各种MCP问题的原因。只能看google后续会不会去修Antigravity的MCP,本项目暂时不想去改有关于MCP的问题。
推荐启动方式:在项目根目录运行
npm run start(或node src/server.js)。本项目会以当前工作目录(process.cwd())定位.env、auths/、log/;如果你在src/目录运行,则对应路径会变成src/.env、src/auths/、src/log/。
启动后可直接访问管理界面:http://localhost:3000/(端口以 AG2API_PORT 为准,默认 3000)。
确保已安装 Node.js (建议版本 v18 或更高)。
在项目根目录执行一次即可:
npm install本项目核心逻辑可零依赖运行;但如果你启用了代理(
AG2API_PROXY_ENABLED=true),建议执行一次npm install以确保代理对fetch生效(依赖包含undici/node-fetch/*-proxy-agent等)。
注意:如果在 PowerShell 中遇到“无法加载文件...npm.ps1”的错误,请尝试使用 CMD 运行,或者使用以下命令绕过策略:
cmd /c npm install
在项目根目录下创建 .env(建议从 .env.example 复制),通过环境变量配置服务。
示例 .env:
AG2API_HOST=0.0.0.0
AG2API_PORT=3000
AG2API_API_KEYS=sk-your-secret-key-1,sk-your-secret-key-2
AG2API_PROXY_ENABLED=false
AG2API_PROXY_URL=
AG2API_DEBUG=false配置项说明:
AG2API_HOST:监听地址AG2API_PORT:监听端口AG2API_API_KEYS:API Key(逗号分隔或 JSON 数组字符串;为空表示不校验)AG2API_PROXY_ENABLED:是否启用代理(true/false)AG2API_PROXY_URL:代理地址AG2API_DEBUG:是否开启 debug(true/false)
Google OAuth Client(可选覆盖):
GOOGLE_OAUTH_CLIENT_IDGOOGLE_OAUTH_CLIENT_SECRET
运行以下命令启动服务器:
npm run start启动后打开管理界面添加/删除账号:
- 管理界面:
http://localhost:3000/ - OAuth 添加账号:点击页面中的 “OAuth 添加账号” 按钮
如果你仍然希望用命令行方式添加账号,也可以运行:
npm run add
npm run add(或node src/server.js --add)授权成功后会继续启动服务(同npm run start),无需再手动重启。
管理界面提供:
- 查看已加载账号(脱敏信息)
- OAuth 添加账号(写入
auths/*.json) - 删除账号(删除对应
auths/*.json)
如果你设置了 AG2API_API_KEYS,页面会要求你输入 Key 才能调用管理接口(Key 仅保存在浏览器本地)。
OAuth 回调默认使用:
http://localhost:<port>/oauth-callback(<port>取AG2API_PORT,默认 3000)。 若你是在远程机器访问本服务,授权完成后浏览器可能会跳转到localhost,请把地址栏里的localhost:<port>改成当前服务地址再回车即可。 如果你不方便改地址,也可以直接复制地址栏里的完整回调链接(或仅复制code),粘贴到管理页 “提交” 输入框中完成授权入库。
推荐直接使用已发布的 GHCR 镜像:ghcr.io/znlsl/antigravity2api:latest(linux/amd64 + linux/arm64)。
- 复制环境变量文件并修改(不要提交
.env):
cp .env.example .env- 启动(拉取 GHCR 镜像):
docker compose -f docker-compose.ghcr.yml up -d私有仓库/私有镜像需要先登录:
docker login ghcr.io
本地构建适合你要改代码/调试 Dockerfile 的情况。
用 compose 构建并启动:
docker compose up -d --build或手动 build + run:
构建镜像:
docker build -t antigravity2api:latest .启动容器(使用 .env 传配置):
docker run -d --name antigravity2api \
-p 3000:3000 \
--env-file .env \
-v "$(pwd)/auths:/app/auths" \
-v "$(pwd)/log:/app/log" \
antigravity2api:latest数据持久化:
./auths(账号凭证)./log(日志)
已提供工作流:.github/workflows/docker-ghcr.yml,每次 push 到 main 会自动构建并推送:
ghcr.io/znlsl/antigravity2api:latest- 平台:
linux/amd64+linux/arm64(multi-arch)
如果你使用的是 GHCR 镜像部署(docker-compose.ghcr.yml),当仓库有新提交并且 GitHub Actions 构建完成后,在服务器执行:
docker compose -f docker-compose.ghcr.yml pull
docker compose -f docker-compose.ghcr.yml up -d如果你使用的是本地构建(docker-compose.yml 的 build:),更新代码后需要重新构建:
docker compose up -d --build在客户端中添加自定义提供商(Claude):
- API 地址 (Endpoint):
http://localhost:3000(或http://<本机IP>:3000)- Claude 兼容路径:
http://localhost:3000/v1/messages - Gemini 原生路径:
http://localhost:3000/v1beta
- Claude 兼容路径:
- API 密钥 (API Key): 填写你在
AG2API_API_KEYS中配置的任意一个 Key。- 支持的传递方式:
Authorization: Bearer <key>/x-api-key/anthropic-api-key/x-goog-api-key
- 支持的传递方式:
-
401 Unauthorized: 检查客户端填写的 API Key 是否与
AG2API_API_KEYS中的一致。 -
Proxy 错误 / 超时:
- 确保已运行
npm install安装依赖。 - 检查
AG2API_PROXY_URL是否正确且代理软件已开启。 - 如果是 SOCKS5 代理,确保
socks-proxy-agent已安装。
- 确保已运行
-
OAuth 回调打不开:
- 授权完成后若跳到
http://localhost:<port>/oauth-callback,请把localhost:<port>改成当前服务地址再访问。 - 或者复制地址栏里的完整回调链接(或仅复制
code),粘贴到管理页输入框中点击 “提交”。
- 授权完成后若跳到