反重力代理服务器
反重力代理服务器
使用任何 AI 提供者 与 抗重力2.0 ——NVIDIA,OpenRouter,OpenAI,格罗克,Anthropic,Google双子座,OpenCode Zen,OpenCode Go,或9+本地推论解决方案.
快速安装
npm install -g @12errh/antigravity-proxy
antigravity setup # interactive wizard — picks provider, enters API key, configures port
antigravity start # starts proxy + dashboard + launches Antigravity desktop
无需克隆 . Npm包包括一切:CLI,代理,仪表板,certs,以及所有提供者. 安装一次,到处跑.
快速启动
先决条件
- 反重力2.0 桌面 (温道,macOS,或Linux)
- 节点.js 20+
- 管理员/基层权限 (第443口)——关于Linux/macOS运行
sudo antigravity start; CLI 在您机器( nvm, fnm, volta, 或系统) 下重新执行 20+ 节点, 因此 sudo 不需要 root 上的节点PATH - 至少一个 API 密钥或本地模式服务器
平台支持
| 平台 | 状态 | 页:1 |
|---|---|---|
| 视窗 10/11 | 已测试 | CLI 处理证书安装( UAC), 端口绑定, 并启动 |
| 马科斯 | 获支持 | CLI 信任系统密钥链中的 cert( sudo 提示) 、 端口绑定和启动 |
| 链接 | 获支持 | CLI 在NSS DB中信任证书(~/.pki/nssdb,电子应用读取的内容) 财务报告和审定财务报表 系统 CA 存储; 安装 libnss3-tools 何时通过apt/dnf/paceman certutil 缺少 |
每个平台的前提条件不同: 端口 443 需要管理员 和 根/苏多 在 Linux/macOS 上。 桌面应用程序总是在443上连接(通过主机文件与代理程序连接),因此代理模式必须绑定443来截取应用程序流量——a
PROXY_PORT例如,8443在从根开始时自动修正为443.--port 8443运行代理, 仅用于直接 API 测试; 桌面应用程序的登录不会被截取到其他端口 .
通过CLI发射(建议)
npm install -g @12errh/antigravity-proxy
antigravity start # background mode — runs silently, launches desktop
antigravity start --foreground # foreground mode — see live logs in terminal
antigravity start --port 8443 # no admin needed (testing only — app sign-in needs 443)
antigravity start --trust-cert # auto-trust TLS certificate
antigravity stop # stop everything cleanly
从来源发射(发展)
获取仓库
git clone https://github.com/12errh/antigravity-proxy.git
cd antigravity-proxy
Windows( PowerShell 作为管理员)
.\start.ps1
macOS / Linux 系统
chmod +x start.sh
./start.sh
无管理员(第8443号港口——仅测试)
./start.sh --port 8443
桌面应用程序总是在443上连接;使用
--simple在没有代理的情况下启动应用程序,或与sudo/管理员运行以进行应用程序截取.
然后打开 http://localhost:4000 (英语) 在浏览器中配置提供者、模型映射和查看实时数据.
关键特性
| 特性 | 状态 | 说明 |
|---|---|---|
| 自动上下文收缩 | ✅ | 接近上下文限制时基于 LLM 的归纳 |
| 每个供应商的模型倒置 | ✅ | 在失败前在同一供应商内尝试多个模型 |
| 多供应商故障 | ✅ | 具有指数备份的优先链 |
| 按型号排列 | ✅ | 每个模型别名一行,每个提供者一列 |
| 重试 + 后退 | ✅ | 可配置的每供应商和全球 |
| 热重装配置 | ✅ | 更改不需要重新启动 |
| 工具正常化 | ✅ | 别名分辨率, 类型强制, 默认填充 |
| 模型能力检测 | ✅ | 自动检测推理、视觉、工具 |
| 提供者优化 | ✅ | 格罗克(图像剥离),Zen/NVIDIA(合理努力) |
| 实时仪表板 | ✅ | 实时日志、 数据、 配置编辑器 |
| 费用跟踪 | ✅ | 每天,每名模特,每名提供者 |
| 本地发现 | ✅ | 9+ 自动检测到的推论解决方案 |
| 全文搜索 | ✅ | 搜索请求、会话、日志 |
| 块状 | ✅ | 提供者、模型、内容过滤 |
| 会话比较 | ✅ | 逐会分析 |
* 如何运作
graph TD
A[Antigravity 2.0 Desktop] --> B[TLS 443]
B --> C[Proxy]
C --> D[Cloud APIs]
C --> E[Local APIs]
C --> F[Dashboard]
D --> G[OpenRouter]
D --> H[NVIDIA]
D --> I[OpenAI]
D --> J[Groq]
D --> K[Anthropic]
D --> L[Google Gemini]
D --> M[Zen]
E --> N[Ollama]
E --> O[vLLM]
E --> P[LM Studio]
E --> Q[llama.cpp]
F --> R[Live Logs]
F --> S[Request History]
F --> T[Config Editor]
F --> U[Model Matrix]
F --> V[Provider Priority]
请求管道
- TLS 截取 - 接收双子座API呼叫端口443
- 脱下上下文 ——去掉批量上下文,注入紧凑
agent-context.md参考文献 - 工具规范化 ——解决异名,强迫类型,填补缺省
- 决议范本 ——通过重试+后置的优先权顺序的路由
- 能力检测 ——自动检测推理/视觉/工具支持
- 努力的理由 - 应用
reasoning_effort如果配置的话 - 翻译 — 转换为目标提供者的 API 格式
- 流线 ——以双子座格式包裹的返回SSE响应
- 日志 - 记录到SQLite,用于成本跟踪、历史、会议
* 支助提供者
云的 APIs
| 提供者 | 类型 | 信封瓦尔 | 页:1 |
|---|---|---|---|
| 打开路透社 | 云类 API | OPENROUTER_API_KEY | 300+ 一个键的模型 |
| NVIDIA 尼姆语 | 云类 API | NVIDIA_API_KEY | 注册时免费信用 |
| 开放AI | 云类 API | OPENAI_API_KEY | GPT-4o,O系列 |
| 格罗克 | 云类 API | GROQ_API_KEY | 超快LPU推论 |
| 安东尼 | 云类 API | ANTHROPIC_API_KEY | 克劳德 3.x / 4.x |
| 谷歌双子座 | 云类 API | GOOGLE_API_KEY | 双子座 2.5 亲子/闪光 |
| 打开代码禅 | 云门 | OPENCODE_API_KEY | Claude、GPT、双子座、Grok、Kimi、GLM——一把钥匙 |
| 打开代码去 | 云门 | OPENCODE_GO_API_KEY | Depseek, Quen, MiniMax, GLM, Kimi, MiMo — 10美元/分 |
本地推论
| 提供者 | 类型 | 页:1 |
|---|---|---|
| 奥拉玛 | 当地 | 在端口11434上自动发现 |
| vLLM 数据 | 当地 | 自动发现于端口 8000 |
| LM 工作室 | 当地 | 1234端口自动发现 |
| 拉玛.cpp | 当地 | 自动发现于端口 8080 |
| 文本生成-webui | 当地 | 在端口5000上自动发现 |
| 塔比API | 当地 | 在端口5000上自动发现 |
| 当地AI | 当地 | 自动发现于端口 8080 |
| 列表 | 当地 | 在4000号端口自动发现 |
| Aphrodite 发动机 | 当地 | 自动发现于端口 8000 |
• 模型标签-矩阵
模型分页显示一个矩阵:每个反重力模型别名一行,每个提供者一列.
graph TD
A[Model Alias] --> B[Default]
A --> C[OpenRouter]
A --> D[Zen]
E[claude-sonnet-4-6] --> F[claude-sonnet-4-5]
E --> G[anthropic/claude-3-5-sonnet-20241022]
E --> H[claude-sonnet-4-5]
I[gemini-2.5-flash] --> J[gemini-2.5-flash]
I --> K[google/gemini-2.0-flash-exp]
I --> L[deepseek-v4-flash]
M[gpt-4o] --> N[openai/gpt-4o]
M --> O[openai/gpt-4o]
特征 :
- 双击任意单元格以打开活模式拾取器
- 隐藏未使用的提供者的列切换
- 快速添加按钮( E)
+ Claude, (中文(简体) ),+ Gemini, (中文(简体) ),+ GPT(中文(简体) ) - 空单元格使用默认值
- 已填入单元格的提供者标识
* 示范选项——努力的理由
一些模型支持 reasoning_effort 来控制思维深度 :
| 模范家庭组织 | 职等 |
|---|---|
| 深搜索 R 序列 | 低、中、高、最大 |
| NVIDIA 步调 | 低、中、高、最大 |
| OpenAI 系列 | 低、中、高 |
| Quen 思考, GLM 想想吧,基米,你觉得呢 | 低、中、高 |
自动检测 : 模式选项标签检测支持的模型,并允许您设定每个模型的级别。 设置持续在 proxy/reasoning-effort.json 不重新启动.
配置标签 — API 密钥
| 密钥 | 提供者 |
|---|---|
OPENROUTER_API_KEY | 开口/钥匙 |
NVIDIA_API_KEY | 建置. nvidia.com (中文(简体) ) 注册时的免费信贷 |
OPENAI_API_KEY | 平台. openai.com/api-keys (中文(简体) ) |
GROQ_API_KEY | 控制台.groq.com/键盘 |
ANTHROPIC_API_KEY | 控制台. harmanic.com/设置/钥匙 |
GOOGLE_API_KEY | aistudio.google.com/ apikey (英语) |
OPENCODE_API_KEY | 打开码.ai/auth - Claude、GPT、双子座、Grok、Kimi、GLM的钥匙 |
所有密钥都是热重装的 .env - 不需要重新开始.
建筑
graph TD
%% Root level
A[agent-context.md] --> B[start.ps1]
B --> C[README.md]
C --> D[CHANGELOG.md]
C --> E[docs/]
C --> F[proxy/]
%% docs/ directory
E --> G[SETUP.md]
E --> H[CONFIGURATION.md]
E --> I[DEVELOPER.md]
%% proxy/ directory
F --> K[src/]
%% src/ directory - main components
K --> L[adapters/]
K --> M[adapter.ts]
K --> N[provider-plugin.ts]
K --> O[provider-registry.ts]
K --> P[plugins/]
K --> Q[tool-capabilities.ts]
K --> R[tool-normalizer.ts]
K --> S[model-capabilities.ts]
K --> T[router.ts]
K --> U[models.ts]
K --> V[index.ts]
K --> W[engine.ts]
K --> X[mapper.ts]
K --> Y[config.ts]
K --> Z[provider-cache.ts]
%% adapters subdirectory
L --> A1[openai.ts]
L --> A2[anthropic.ts]
L --> A3[google.ts]
L --> A4[groq.ts]
L --> A5[zen.ts]
L --> A6[nvidia.ts]
L --> A7[types.ts]
%% plugins subdirectory
P --> B1[builtin-plugins.ts]
%% dashboard subdirectory
F --> C1[dashboard/]
C1 --> C2[index.html]
C1 --> C3[login.html]
%% Other files in proxy/
F --> D1[models.json]
F --> D2[pricing.json]
F --> D3[reasoning-effort.json]
F --> D4[blocklist.json]
F --> D5[.env]
F --> D6[.env.example]
F --> D7[certs/]
F --> D8[logs/]
%% Note: actual configuration for certs and logs are nested
---
## 🔧 Environment Variables
```env
# Provider priority (first = primary)
PROVIDER_PRIORITY=openrouter,nvidia,zen
# API keys
OPENROUTER_API_KEY=sk-or-v1-...
NVIDIA_API_KEY=nvapi-...
OPENAI_API_KEY=sk-...
GROQ_API_KEY=gsk_...
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_API_KEY=AIza...
OPENCODE_API_KEY=sk-...
OPENCODE_GO_API_KEY=sk-opencode-go-...
# Ports
PROXY_PORT=443 # TLS port the desktop app connects to (root starts auto-correct other values)
API_PORT=4000 # Dashboard + REST API port
# Retry & failover
PROXY_RETRIES=3 # Attempts per provider
PROXY_BACKOFF_MS=100 # Initial backoff (doubles each retry)
# Rate limiting (0 = unlimited)
RATE_LIMIT_GLOBAL=0
RATE_LIMIT_PROVIDER=0
RATE_LIMIT_WINDOW_MS=60000
# Logging
LOG_LEVEL=info # debug | info | warn | error
LOG_MAX_SIZE_MB=10 # Rotate when reached
LOG_MAX_FILES=5 # Keep N rotated files
LOG_MAX_AGE_DAYS=30 # Delete files older than
# Dashboard auth (optional)
DASHBOARD_USER=admin
DASHBOARD_PASSWORD=your_password
# Failover webhook (optional)
FAILOVER_WEBHOOK_URL=https://hooks.example.com/webhook
# Workspace context hardening
WORKSPACE_CONTEXT_ENVELOPE=strict # off | loose | strict
# Inline context mode
CONTEXT_STRIP_MODE=lite # lite (recommended) | strip | passthrough
\\\ 背景模式解释
字 (建议): 压缩用途
agent-context-lite.md(~3.5K令牌)——与全上下文相同的工具覆盖,使令牌减少66%. 脱去原生Antigravity上下文,注入压缩版.脱: 全部使用
agent-context.md(~10K令牌) ——去掉批量上下文(技能/插件/身份),注入完整的操作手册.过关 : 前进原生抗重力上下文不变(~28K令牌)——最简单的方法,没有注射高通.
QQ 快速链接
QQ 开发快速启动
cd proxy
npm install # Install dependencies
npm run build # Compile TypeScript → dist/
npm run typecheck # Type-check only
npm test # Run tests
npm run dev # Watch mode
新供应商 : 见 docs/DEVELOPER.md 用于插件架构指南.
运行测试 :
# All tests
npm test
# Filter by component
npx tsx test/run.ts plugin-architecture
npx tsx test/run.ts tool-translation
npx tsx test/run.ts model-discovery
npx tsx test/run.ts provider-adapters
许可证
麻省理工学院——见 自由主义。 。 。 .