Antigravity Tools 🚀
专业的 AI 账号管理与协议反代系统 (v4.0.6)
您的个人高性能 AI 调度网关
不仅仅是账号管理,更是打破 API 调用壁垒的终极解决方案。
核心功能 • 界面导览 • 技术架构 • 安装指南 • 快速接入
简体中文 | English
Antigravity Tools 是一个专为开发者和 AI 爱好者设计的全功能桌面应用。它将多账号管理、协议转换和智能请求调度完美结合,为您提供一个稳定、极速且成本低廉的 本地 AI 中转站。
通过本应用,您可以将常见的 Web 端 Session (Google/Anthropic) 转化为标准化的 API 接口,消除不同厂商间的协议鸿沟。
💖 赞助商 (Sponsors)
感谢 PackyCode 对本项目的赞助!PackyCode 是一家可靠高效的 API 中转服务商,提供 Claude Code、Codex、Gemini 等多种服务的中转。PackyCode 为本项目的用户提供了特别优惠:使用此链接注册,并在充值时输入 “Ctrler” 优惠码即可享受 九折优惠。
☕ 支持项目 (Support)
如果您觉得本项目对您有所帮助,欢迎打赏作者!
| 支付宝 (Alipay) | 微信支付 (WeChat) |…
Antigravity Tools 🚀
专业的 AI 账号管理与协议反代系统 (v4.0.6)
您的个人高性能 AI 调度网关
不仅仅是账号管理,更是打破 API 调用壁垒的终极解决方案。
核心功能 • 界面导览 • 技术架构 • 安装指南 • 快速接入
简体中文 | English
Antigravity Tools 是一个专为开发者和 AI 爱好者设计的全功能桌面应用。它将多账号管理、协议转换和智能请求调度完美结合,为您提供一个稳定、极速且成本低廉的 本地 AI 中转站。
通过本应用,您可以将常见的 Web 端 Session (Google/Anthropic) 转化为标准化的 API 接口,消除不同厂商间的协议鸿沟。
💖 赞助商 (Sponsors)
感谢 PackyCode 对本项目的赞助!PackyCode 是一家可靠高效的 API 中转服务商,提供 Claude Code、Codex、Gemini 等多种服务的中转。PackyCode 为本项目的用户提供了特别优惠:使用此链接注册,并在充值时输入 “Ctrler” 优惠码即可享受 九折优惠。
☕ 支持项目 (Support)
如果您觉得本项目对您有所帮助,欢迎打赏作者!
| 支付宝 (Alipay) | 微信支付 (WeChat) | Buy Me a Coffee |
|---|---|---|
🌟 深度功能解析 (Detailed Features)
1. 🎛️ 智能账号仪表盘 (Smart Dashboard)
- 全局实时监控: 一眼洞察所有账号的健康状况,包括 Gemini Pro、Gemini Flash、Claude 以及 Gemini 绘图的 平均剩余配额。
- 最佳账号推荐 (Smart Recommendation): 系统会根据当前所有账号的配额冗余度,实时算法筛选并推荐“最佳账号”,支持 一键切换。
- 活跃账号快照: 直观显示当前活跃账号的具体配额百分比及最后同步时间。
2. 🔐 强大的账号管家 (Account Management)
- OAuth 2.0 授权(自动/手动): 添加账号时会提前生成可复制的授权链接,支持在任意浏览器完成授权;回调成功后应用会自动完成并保存(必要时可点击“我已授权,继续”手动收尾)。
- 多维度导入: 支持单条 Token 录入、JSON 批量导入(如来自其他工具的备份),以及从 V1 旧版本数据库自动热迁移。
- 网关级视图: 支持“列表”与“网格”双视图切换。提供 403 封禁检测,自动标注并跳过权限异常的账号。
3. 🔌 协议转换与中继 (API Proxy)
-
全协议适配 (Multi-Sink):
-
OpenAI 格式: 提供
/v1/chat/completions端点,兼容 99% 的现有 AI 应用。 -
Anthropic 格式: 提供原生
/v1/messages接口,支持 Claude Code CLI 的全功能(如思思维链、系统提示词)。 -
Gemini 格式: 支持 Google 官方 SDK 直接调用。
-
智能状态自愈: 当请求遇到
429 (Too Many Requests)或401 (Expire)时,后端会毫秒级触发 自动重试与静默轮换,确保业务不中断。
4. 🔀 模型路由中心 (Model Router)
- 系列化映射: 您可以将复杂的原始模型 ID 归类到“规格家族”(如将所有 GPT-4 请求统一路由到
gemini-3-pro-high)。 - 专家级重定向: 支持自定义正则表达式级模型映射,精准控制每一个请求的落地模型。
- 智能分级路由 (Tiered Routing): [新] 系统根据账号类型(Ultra/Pro/Free)和配额重置频率自动优先级排序,优先消耗高速重置账号,确保高频调用下的服务稳定性。
- 后台任务静默降级: [新] 自动识别 Claude CLI 等工具生成的后台请求(如标题生成),智能重定向至 Flash 模型,保护高级模型配额不被浪费。
5. 🎨 多模态与 Imagen 3 支持
- 高级画质控制: 支持通过 OpenAI
size(如1024x1024,16:9) 参数自动映射到 Imagen 3 的相应规格。 - 超强 Body 支持: 后端支持高达 100MB (可配置) 的 Payload,处理 4K 高清图识别绰绰有余。
📸 界面导览 (GUI Overview)
| | |
| | |
|
仪表盘 |
账号列表 |
|
关于页面 |
API 反代 |
|
系统设置 | |
💡 使用案例 (Usage Examples)
| | |
| | |
|
Claude Code 联网搜索 |
Cherry Studio 深度集成 |
|
Imagen 3 高级绘图 |
Kilo Code 接入 |
🏗️ 技术架构 (Architecture)
graph TD
Client([外部应用: Claude Code/NextChat]) -->|OpenAI/Anthropic| Gateway[Antigravity Axum Server]
Gateway --> Middleware[中间件: 鉴权/限流/日志]
Middleware --> Router[Model Router: ID 映射]
Router --> Dispatcher[账号分发器: 轮询/权重]
Dispatcher --> Mapper[协议转换器: Request Mapper]
Mapper --> Upstream[上游请求: Google/Anthropic API]
Upstream --> ResponseMapper[响应转换器: Response Mapper]
ResponseMapper --> Client
Loading
安装指南 (Installation)
选项 A: 终端安装 (macOS & Linux 推荐)
macOS
如果您已安装 Homebrew,可以通过以下命令快速安装:
# 1. 订阅本仓库的 Tap
brew tap lbjlaq/antigravity-manager https://github.com/lbjlaq/Antigravity-Manager
# 2. 安装应用
brew install --cask antigravity-tools
提示: 如果遇到权限问题,建议添加
--no-quarantine参数。
Arch Linux
您可以选择通过一键安装脚本或 Homebrew 进行安装:
方式 1:一键安装脚本 (推荐)
curl -sSL https://raw.githubusercontent.com/lbjlaq/Antigravity-Manager/main/deploy/arch/install.sh | bash
方式 2:通过 Homebrew (如果您已安装 Linuxbrew)
brew tap lbjlaq/antigravity-manager https://github.com/lbjlaq/Antigravity-Manager
brew install --cask antigravity-tools
其他 Linux 发行版
安装后会自动将 AppImage 添加到二进制路径并配置可执行权限。
选项 B: 手动下载
前往 GitHub Releases 下载对应系统的包:
- macOS:
.dmg(支持 Apple Silicon & Intel) - Windows:
.msi或 便携版.zip - Linux:
.deb或AppImage
选项 C: Docker 部署 (推荐用于 NAS/服务器)
如果您希望在容器化环境中运行,我们提供了原生的 Docker 镜像。该镜像内置了对 v4.0.2 原生 Headless 架构的支持,可自动托管前端静态资源,并通过浏览器直接进行管理。
# 方式 1: 直接运行 (推荐)
# - API_KEY: 必填。用于所有协议的 AI 请求鉴定。
# - WEB_PASSWORD: 可选。用于管理后台登录。若不设置则默认使用 API_KEY。
docker run -d --name antigravity-manager \
-p 8045:8045 \
-e API_KEY=sk-your-api-key \
-e WEB_PASSWORD=your-login-password \
-e ABV_MAX_BODY_SIZE=104857600 \
-v ~/.antigravity_tools:/root/.antigravity_tools \
lbjlaq/antigravity-manager:latest
# 忘记密钥?执行 docker logs antigravity-manager 或 grep -E '"api_key"|"admin_password"' ~/.antigravity_tools/gui_config.json
#### 🔐 鉴权逻辑说明
* **场景 A:仅设置了 `API_KEY`**
- **Web 登录**:使用 `API_KEY` 进入后台。
- **API 调用**:使用 `API_KEY` 进行 AI 请求鉴权。
* **场景 B:同时设置了 `API_KEY` 和 `WEB_PASSWORD` (推荐)**
- **Web 登录**:**必须**使用 `WEB_PASSWORD`,使用 API Key 将被拒绝(更安全)。
- **API 调用**:统一使用 `API_KEY`。这样您可以将 API Key 分发给成员,而保留密码仅供管理员使用。
#### 🆙 旧版本升级指引
如果您是从 v4.0.1 及更早版本升级,系统默认未设置 `WEB_PASSWORD`。您可以通过以下任一方式设置:
1. **Web UI 界面 (推荐)**:使用原有 `API_KEY` 登录后,在 **API 反代设置** 页面手动设置并保存。新密码将持久化存储在 `gui_config.json` 中。
2. **环境变量 (Docker)**:在启动容器时增加 `-e WEB_PASSWORD=您的新密码`。**注意:环境变量具有最高优先级,将覆盖 UI 中的任何修改。**
3. **配置文件 (持久化)**:直接修改 `~/.antigravity_tools/gui_config.json`,在 `proxy` 对象中修改或添加 `"admin_password": "您的新密码"` 字段。
- *注:`WEB_PASSWORD` 是环境变量名,`admin_password` 是配置文件中的 JSON 键名。*
> [!TIP]
> **密码优先级逻辑 (Priority)**:
> - **第一优先级 (环境变量)**: `ABV_WEB_PASSWORD` 或 `WEB_PASSWORD`。只要设置了环境变量,系统将始终使用它。
> - **第二优先级 (配置文件)**: `gui_config.json` 中的 `admin_password` 字段。UI 的“保存”操作会更新此值。
> - **保底回退 (向后兼容)**: 若上述均未设置,则回退使用 `API_KEY` 作为登录密码。
# 方式 2: 使用 Docker Compose
# 1. 进入项目的 docker 目录
cd docker
# 2. 启动服务
docker compose up -d
访问地址:
http://localhost:8045(管理后台) |http://localhost:8045/v1(API Base) 系统要求:
- 内存: 建议 1GB (最小 256MB)。
- 持久化: 需挂载
/root/.antigravity_tools以保存数据。- 架构: 支持 x86_64 和 ARM64。 详情见: Docker 部署指南 (docker)
Copyright © 2024-2026 lbjlaq
🛠️ 常见问题排查 (Troubleshooting)
macOS 提示“应用已损坏,无法打开”?
由于 macOS 的安全机制,非 App Store 下载的应用可能会触发此提示。您可以按照以下步骤快速修复:
- 命令行修复 (推荐): 打开终端,执行以下命令:
sudo xattr -rd com.apple.quarantine "/Applications/Antigravity Tools.app"
- Homebrew 安装技巧: 如果您使用 brew 安装,可以添加
--no-quarantine参数来规避此问题:
brew install --cask --no-quarantine antigravity-tools
🔌 快速接入示例
🔐 OAuth 授权流程(添加账号)
- 打开“Accounts / 账号” → “添加账号” → “OAuth”。
- 弹窗会在点击按钮前预生成授权链接;点击链接即可复制到系统剪贴板,然后用你希望的浏览器打开并完成授权。
- 授权完成后浏览器会打开本地回调页并显示“✅ 授权成功!”。
- 应用会自动继续完成授权并保存账号;如未自动完成,可点击“我已授权,继续”手动完成。
提示:授权链接包含一次性回调端口,请始终使用弹窗里生成的最新链接;如果授权时应用未运行或弹窗已关闭,浏览器可能会提示
localhost refused connection。
如何接入 Claude Code CLI?
- 启动 Antigravity,并在“API 反代”页面开启服务。
- 在终端执行:
export ANTHROPIC_API_KEY="sk-antigravity"
export ANTHROPIC_BASE_URL="http://127.0.0.1:8045"
claude
如何接入 Kilo Code?
- 协议选择: 建议优先使用 Gemini 协议。
- Base URL: 填写
http://127.0.0.1:8045。 - 注意:
- OpenAI 协议限制: Kilo Code 在使用 OpenAI 模式时,其请求路径会叠加产生
/v1/chat/completions/responses这种非标准路径,导致 Antigravity 返回 404。因此请务必填入 Base URL 后选择 Gemini 模式。 - 模型映射: Kilo Code 中的模型名称可能与 Antigravity 默认设置不一致,如遇到无法连接,请在“模型映射”页面设置自定义映射,并查看日志文件进行调试。
如何在 Python 中使用?
import openai
client = openai.OpenAI(
api_key="sk-antigravity",
base_url="http://127.0.0.1:8045/v1"
)
response = client.chat.completions.create(
model="gemini-3-flash",
messages=[{"role": "user", "content": "你好,请自我介绍"}]
)
print(response.choices[0].message.content)
如何使用图片生成 (Imagen 3)?
方式一:OpenAI Images API (推荐)
import openai
client = openai.OpenAI(
api_key="sk-antigravity",
base_url="http://127.0.0.1:8045/v1"
)
# 生成图片
response = client.images.generate(
model="gemini-3-pro-image",
prompt="一座未来主义风格的城市,赛博朋克,霓虹灯",
size="1920x1080", # 支持任意 WIDTHxHEIGHT 格式,自动计算宽高比
quality="hd", # "standard" | "hd" | "medium"
n=1,
response_format="b64_json"
)
# 保存图片
import base64
image_data = base64.b64decode(response.data[0].b64_json)
with open("output.png", "wb") as f:
f.write(image_data)
支持的参数:
-
size: 任意WIDTHxHEIGHT格式(如1280x720,1024x1024,1920x1080),自动计算并映射到标准宽高比(21:9, 16:9, 9:16, 4:3, 3:4, 1:1) -
quality: -
"hd"→ 4K 分辨率(高质量) -
"medium"→ 2K 分辨率(中等质量) -
"standard"→ 默认分辨率(标准质量) -
n: 生成图片数量(1-10) -
response_format:"b64_json"或"url"(Data URI)
方式二:Chat API + 参数设置 (✨ 新增)
所有协议(OpenAI、Claude)的 Chat API 现在都支持直接传递 size 和 quality 参数:
# OpenAI Chat API
response = client.chat.completions.create(
model="gemini-3-pro-image",
size="1920x1080", # ✅ 支持任意 WIDTHxHEIGHT 格式
quality="hd", # ✅ "standard" | "hd" | "medium"
messages=[{"role": "user", "content": "一座未来主义风格的城市"}]
)
# Claude Messages API
curl -X POST http://127.0.0.1:8045/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: sk-antigravity" \
-d '{
"model": "gemini-3-pro-image",
"size": "1280x720",
"quality": "hd",
"messages": [{"role": "user", "content": "一只可爱的猫咪"}]
}'
参数优先级: 请求体参数 > 模型后缀
方式三:Chat 接口 + 模型后缀
response = client.chat.completions.create(
model="gemini-3-pro-image-16-9-4k", # 格式:gemini-3-pro-image-[比例]-[质量]
messages=[{"role": "user", "content": "一座未来主义风格的城市"}]
)
模型后缀说明:
- 宽高比:
-16-9,-9-16,-4-3,-3-4,-21-9,-1-1 - 质量:
-4k(4K),-2k(2K), 不加后缀(标准) - 示例:
gemini-3-pro-image-16-9-4k→ 16:9 比例 + 4K 分辨率
方式四:Cherry Studio 等客户端设置
在支持 OpenAI 协议的客户端(如 Cherry Studio)中,可以通过模型设置页面配置图片生成参数:
- 进入模型设置:选择
gemini-3-pro-image模型 - 配置参数:
- Size (尺寸): 输入任意
WIDTHxHEIGHT格式(如1920x1080,1024x1024) - Quality (质量): 选择
standard/hd/medium - Number (数量): 设置生成图片数量(1-10)
- 发送请求:直接在对话框中输入图片描述即可
参数映射规则:
size: "1920x1080"→ 自动计算为16:9宽高比quality: "hd"→ 映射为4K分辨率quality: "medium"→ 映射为2K分辨率
📝 开发者与社区
版本演进 (Changelog):
v4.0.6 (2026-01-28):
-
[核心修复] 彻底解决 Google OAuth "Account already exists" 错误:
-
持久化升级: 将授权成功后的保存逻辑从“仅新增”升级为
upsert(更新或新增) 模式。现在重新授权已存在的账号会平滑更新其 Token 和项目信息,不再弹出报错。 -
[核心修复] 修复 Docker/Web 模式下手动回填授权码失效问题:
-
Flow 状态预初始化: 在 Web 模式生成授权链接时,后端会同步初始化 OAuth Flow 状态。这确保了在 Docker 等无法自动跳转的环境下,手动复制回填授权码或 URL 能够被后端正确识别并处理。
-
[体验优化] 统一 Web 与桌面端的 OAuth 持久化路径: 重构了
TokenManager,确保所有平台共用同一套健壮的账号核验与存储逻辑。 -
[性能优化] 优化限流恢复机制 (PR #1247):
-
自动清理频率: 将限流记录的后台自动清理间隔从 60 秒缩短至 15 秒,大幅提升了触发 429 或 503 错误后的业务恢复速度。
-
智能同步清理: 优化了单个或全部账号刷新逻辑,确保刷新账号的同时即刻清除本地限流锁定,使最新配额能立即投入使用。
-
渐进式容量退避: 针对
ModelCapacityExhausted错误(如 503),将原有的固定 15 秒重试等待优化为[5s, 10s, 15s]阶梯式策略,显著减少了偶发性容量波动的等待时间。 -
[核心修复] 窗口标题栏深色模式适配 (PR #1253): 修复了在系统切换为深色模式时,应用标题栏(Titlebar)未能同步切换配色,导致视觉不统一的问题。 372: - [核心修复] 提升 Opus 4.5 默认输出上限 (Fix Issue #1244): 373: - 突破限制: 将 Claude 和 OpenAI 协议的默认
max_tokens从 16k 提升至 81,920 (80k)。 374: - 解决截断: 彻底解决了 Opus 4.5 等模型在开启思维模式时,因默认 Budget 限制导致输出被锁定在 48k 左右的截断问题。现在无需任何配置即可享受完整的长文本输出能力。 -
[核心修复] 修复账号删除后的幽灵数据问题 (Ghost Account Fix):
-
同步重载: 修复了账号文件被删除后,反代服务的内存缓存未同步更新,导致已删账号仍参与轮询的严重 Bug。
-
即时生效: 现在单删或批量删除账号后,会强制触发反代服务重载,确保内存中的账号列表与磁盘实时一致。
-
[核心修复] Cloudflared 隧道启动问题修复 (Fix PR #1238):
-
启动崩溃修复: 移除了不支持的命令行参数 (
--no-autoupdate/--loglevel),解决了 cloudflared 进程启动即退出的问题。 -
URL 解析修正: 修正了命名隧道 URL 提取时的字符串偏移量错误,确保生成的访问链接格式正确。
-
Windows 体验优化: 为 Windows 平台添加了
DETACHED_PROCESS标志,实现了隧道的完全静默后台运行,消除了弹窗干扰。
v4.0.5 (2026-01-28):
-
[核心修复] 彻底解决 Docker/Web 模式 Google OAuth 400 错误 (Google OAuth Fix):
-
协议对齐: 强制所有模式(包括 Docker/Web)使用
localhost作为 OAuth 重定向 URI,绕过了 Google 对私网 IP 和非 HTTPS 环境的拦截策略。 -
流程优化: 配合已有的“手动授权码回填”功能,确保即使在远程服务器部署环境下,用户也能顺利完成 Google 账号的授权与添加。
-
[功能增强] 新增阿拉伯语支持与 RTL 布局适配 (PR #1220):
-
国际化拓展: 新增完整的阿拉伯语 (
ar) 翻译支持。 -
RTL 布局: 实现了自动检测并适配从右向左 (Right-to-Left) 的 UI 布局。
-
排版优化: 引入了 Effra 字体家族,显著提升了阿拉伯语文本的可读性与美观度。
-
[功能增强] 手动清除限流记录 (Clear Rate Limit Records):
-
管理 UI 集成: 在“代理设置 -> 账号轮换与会话调度”区域新增了“清除限流记录”按钮,支持桌面端与 Web 端调用,允许用户手动清除所有账号的本地限流锁(429/503 记录)。
-
账号列表联动: 实现了配额与限流的智能同步。现在刷新账号额度(单个或全部)时,会自动清除本地限流状态,确保最新的额度信息能立即生效。
-
后端核心逻辑: 在
RateLimitTracker和TokenManager中底层实现了手动与自动触发的清除逻辑,确保高并发下的状态一致性。 -
API 支持: 新增了对应的 Tauri 命令与 Admin API (
DELETE /api/proxy/rate-limits),方便开发者进行编程化管理与集成。 -
强制重试: 配合清除操作,可强制下一次请求忽略之前的退避时间,直接尝试连接上游,帮助在网络恢复后快速恢复业务。
v4.0.4 (2026-01-27):
-
[功能增强] 深度集成 Gemini 图像生成与多协议支持 (PR #1203):
-
OpenAI 兼容性增强: 支持通过标准 OpenAI Images API (
/v1/images/generate) 调用 Gemini 3 图像模型,支持size、quality等参数。 -
多协议集成: 增强了 Claude 和 OpenAI Chat 接口,支持直接传递图片生成参数,并实现了自动宽高比计算与 4K/2K 质量映射。
-
文档补全: 新增
docs/gemini-3-image-guide.md,提供完整的 Gemini 图像生成集成指南。 -
稳定性优化: 优化了通用工具函数 (
common_utils.rs) 和 Gemini/OpenAI 映射逻辑,确保大尺寸 Payload 传输稳定。 -
[核心修复] 对齐 OpenAI 重试与限流逻辑 (PR #1204):
-
逻辑对齐: 重构了 OpenAI 处理器的重试、限流及账号轮换逻辑,使其与 Claude 处理器保持一致,显著提升了高并发下的稳定性。
-
热重载优化: 确保 OpenAI 请求在触发 429 或 503 错误时能精准执行退避策略并自动切换可用账号。
-
[核心修复] 修复 Web OAuth 账号持久化问题 (Web Persistence Fix):
-
索引修复: 解决了在 Web 管理界面通过 OAuth 添加的账号虽然文件已生成,但未同步更新到全局账号索引 (
accounts.json),导致重启后或桌面端无法识别的问题。 -
锁机制统一: 重构了
TokenManager的保存逻辑,复用了modules::account的核心方法,确保了文件锁与索引更新的原子性。 -
[核心修复] 解决 Google OAuth 非 Localhost 回调限制 (Fix Issue #1186):
-
问题背景: Google 不支持在 OAuth 流程中使用非 localhost 私网 IP 作为回调地址,即便注入
device_id也会报“不安全的应用版本”警告。 -
解决方案: 引入了标准化的“手动 OAuth 提交”流程。当浏览器无法自动回调至本地(如远程部署或非 Localhost 环境)时,用户可直接复制回调链接或授权码至应用内完成授权。
-
体验增强: 重构了手动提交界面,集成了全语言国际化支持(9 国语言)与 UI 优化,确保在任何网络环境下都能顺利添加账号。
-
[核心修复] 解决 Google Cloud Code API 429 错误 (Fix Issue #1176):
-
智能降级: 默认将 API 流量迁移至更稳定的 Daily/Sandbox 环境,避开生产环境 (
cloudcode-pa.googleapis.com) 当前频繁的 429 错误。 -
稳健性提升: 实现了 Sandbox -> Daily -> Prod 的三级降级策略,确保主业务流程在极端网络环境下的高可用性。
-
[核心优化] 账号调度算法升级 (Algorithm Upgrade):
-
健康评分系统 (Health Score): 引入了 0.0 到 1.0 的实时健康分机制。请求失败(如 429/5xx)将显著扣分,使受损账号自动降级;成功请求则逐步回升,实现账号状态的智能自愈。
-
三级智能排序: 调度优先级重构为
订阅等级 > 剩余配额 > 健康分。确保在同等级、同配额情况下,始终优先通过历史表现最稳定的账号。 -
微延迟 (Throttle Delay): 针对极端限流场景,当所有账号均被封锁且有账号在 2 秒内即将恢复时,系统将自动执行毫秒级挂起等待而非直接报错。极大提升了高并发下的成功率,并增强了会话粘性。
-
全量接口适配: 重构了
TokenManager核心接口,并完成了全量处理器(Claude, Gemini, OpenAI, Audio, Warmup)的同步适配,确保调度层变更对业务层透明。 -
[核心修复] 固定账号模式持久化 (PR #1209):
-
问题背景: 之前版本在重启服务后,固定账号模式(Fixed Account Mode)的开关状态会被重置。
-
修复内容: 实现了设置的持久化存储,确保用户偏好在重启后依然生效。
-
[核心修复] 速率限制毫秒级解析 (PR #1210):
-
问题背景: 部分上游服务返回的
Retry-After或速率限制头部包含带小数点的毫秒值,导致解析失败。 -
修复内容: 增强了时间解析逻辑,支持兼容浮点数格式的时间字段,提高了对非标准上游的兼容性。
v4.0.3 (2026-01-27):
-
[功能增强] 提高请求体限制以支持大体积图片 Payload (PR #1167):
-
将默认请求体大小限制从 2MB 提升至 100MB,解决多图并发传输时的 413 (Payload Too Large) 错误。
-
新增环境变量
ABV_MAX_BODY_SIZE,支持用户根据需求动态调整最大限制。 -
服务启动时自动输出当前生效的 Body Limit 日志,便于排查。
-
[核心修复] 解决 Google OAuth ‘state’ 参数缺失导致的授权失败 (Issue #1168):
-
修复了添加 Google 账号时可能出现的 "Agent execution terminated" 错误。
-
实现了随机
state参数的生成与回调验证,增强了 OAuth 流程的安全性和兼容性。 -
确保在桌面端和 Web 模式下的授权流程均符合 OAuth 2.0 标准。
-
[核心修复] 解决 Docker/Web 模式下代理开关及账号变动需重启生效的问题 (Issue #1166):
-
实现了代理开关状态的持久化存储,确保容器重启后状态保持一致。
-
在账号增删、切换、重排及导入后自动触发 Token 管理器热加载,使变更立即在反代服务中生效。
-
优化了账号切换逻辑,自动清除旧会话绑定,确保请求立即路由到新账号。
v4.0.2 (2026-01-26):
-
[核心修复] 解决开启“访问授权”导致的重复认证与 401 循环 (Fix Issue #1163):
-
修正了后端鉴权中间件逻辑,确保在鉴权关闭模式(Off/Auto)下管理接口不再强制拦截。
-
增强了健康检查路径 (
/api/health) 的免鉴权豁免,避免 UI 加载初期因状态检测失败触发登录。 -
在前端请求层引入了 401 异常频率限制(防抖锁),彻底解决了大批量请求失败导致的 UI 弹窗抖动。
-
[核心修复] 解决切换账号后会话无法持久化保存 (Fix Issue #1159):
-
增强了数据库注入逻辑,在切换账号时同步更新身份标识(Email)并清除旧的 UserID 缓存。
-
解决了因 Token 与身份标识不匹配导致客户端无法正确关联或保存新会话的问题。
-
[核心修复] Docker/Web 模式下模型映射持久化 (Fix Issue #1149):
-
修复了在 Docker 或 Web 部署模式下,管理员通过 API 修改的模型映射配置(Model Mapping)无法保存到硬盘的问题。
-
确保
admin_update_model_mapping接口正确调用持久化逻辑,配置在重启容器后依然生效。 -
[架构优化] MCP 工具支持架构全面升级 (Schema Cleaning & Tool Adapters):
-
约束语义回填 (Constraint Hints):
-
实现了智能约束迁移机制,在删除 Gemini 不支持的约束字段(
minLength,pattern,format等)前,自动将其转化为描述提示。 -
新增
CONSTRAINT_FIELDS常量和move_constraints_to_description函数,确保模型能通过描述理解原始约束。 -
示例:
{"minLength": 5}→{"description": "[Constraint: minLen: 5]"} -
anyOf/oneOf 智能扁平化增强:
-
重写
extract_best_schema_from_union函数,使用评分机制选择最佳类型(object > array > scalar)。 -
在合并后自动添加
"Accepts: type1 | type2"提示到描述中,保留所有可能类型的信息。 -
新增
get_schema_type_name函数,支持显式类型和结构推断。 -
插件化工具适配器层 (Tool Adapter System):
-
创建
ToolAdaptertrait,为不同 MCP 工具提供定制化 Schema 处理能力。 -
实现
PencilAdapter,自动为 Pencil 绘图工具的视觉属性(cornerRadius,strokeWidth)和路径参数添加说明。 -
建立全局适配器注册表,支持通过
clean_json_schema_for_tool函数应用工具特定优化。 -
高性能缓存层 (Schema Cache):
-
实现基于 SHA-256 哈希的 Schema 缓存机制,避免重复清洗相同的 Schema。
-
采用 LRU 淘汰策略,最大缓存 1000 条,内存占用 < 10MB。
-
提供
clean_json_schema_cached函数和缓存统计功能,预计性能提升 60%+。 -
影响范围:
-
✅ 显著提升 MCP 工具(如 Pencil)的 Schema 兼容性和模型理解能力
-
✅ 为未来添加更多 MCP 工具(filesystem, database 等)奠定了插件化基础
-
✅ 完全向后兼容,所有 25 项测试通过
-
[安全增强] Web UI 管理后台密码与 API Key 分离 (Fix Issue #1139):
-
独立密码配置: 支持通过
ABV_WEB_PASSWORD或WEB_PASSWORD环境变量设置独立的管理后台登录密码。 -
智能鉴权逻辑:
-
管理接口优先验证独立密码,未设置时自动回退验证
API_KEY(确保向后兼容)。 -
AI 代理接口严格仅允许使用
API_KEY进行认证,实现权限隔离。 -
配置 UI 支持: 在“仪表盘-服务配置”中新增管理密码编辑项,支持一键找回或修改。
-
日志引导: Headless 模式启动时会清晰打印 API Key 与 Web UI Password 的状态及查看方式。
v4.0.1 (2026-01-26):
-
[UX 优化] 主题与语言切换平滑度:
-
解决了主题和语言切换时的 UI 卡顿问题,将配置持久化逻辑与状态更新解耦。
-
优化了导航栏中的 View Transition API 使用,确保视觉更新不阻塞操作。
-
将窗口背景同步调用改为异步,避免 React 渲染延迟。
-
[核心修复] 反代服务启动死锁:
-
修复了启动反代服务时会阻塞状态轮询请求的竞态/死锁问题。
-
引入了原子启动标志和非阻塞状态检查,确保 UI 在服务初始化期间保持响应。
v4.0.0 (2026-01-25):
-
[重大架构] 深度迁移至 Tauri v2 (Tauri v2 Migration):
-
全面适配 Tauri v2 核心 API,包括系统托盘、窗口管理与事件系统。
-
解决了多个异步 Trait 动态派发与生命周期冲突问题,后端性能与稳定性显著提升。
-
[部署革新] 原生 Headless Docker 模式 (Native Headless Docker):
-
实现了“纯后端”Docker 镜像,彻底移除了对 VNC、noVNC 或 XVFB 的依赖,大幅降低内存与 CPU 占用。
-
支持直接托管前端静态资源,容器启动后即可通过浏览器远程管理。
-
[部署修复] Arch Linux 安装脚本修复 (PR #1108):
-
修复了
deploy/arch/PKGBUILD.template中硬编码data.tar.zst导致的提取失败问题。 -
实现了基于通配符的动态压缩格式识别,确保兼容不同版本的
.deb包。 -
[管理升级] 全功能 Web 管理界面 (Web-based Console):
-
重写了管理后台,使所有核心功能(账号管理、API 反代监控、OAuth 授权、模型映射)均可在浏览器端完成。
-
补全了 Web 模式下的 OAuth 回调处理,支持
ABV_PUBLIC_URL自定义,完美适配远程 VPS 或 NAS 部署场景。 -
[项目规范化] 结构清理与单元化 (Project Normalization):
-
清理了冗余的
deploy目录及其旧版脚本,项目结构更加现代。 -
规范化 Docker 镜像名称为
antigravity-manager,并整合专属的docker/目录与部署手册。 -
[API 增强] 流量日志与监控优化:
-
优化了流量日志的实时监控体验,补全了 Web 模式下的轮询机制与统计接口。
-
精确化管理 API 路由占位符命名,提升了 API 的调用精确度。
-
[用户体验] 监控页面布局与深色模式优化 (PR #1105):
-
布局重构: 优化了流量日志页面的容器布局,采用固定最大宽度与响应式边距,解决了在大屏显示器下的内容过度拉伸问题,视觉体验更加舒适。
-
深色模式一致性: 将日志详情弹窗的配色方案从硬编码的 Slate 色系迁移至 Base 主题色系,确保与全局深色模式风格无缝统一,提升了视觉一致性。
-
[用户体验] 自动更新体验优化:
-
智能降级: 修复了当原生更新包未就绪(如 Draft Release)时点击更新无反应的问题。现在系统会自动检测并提示用户,同时优雅降级至浏览器下载模式,确保持续可更新。
-
[核心修复] 深度优化 Signature Cache 与 Rewind 检测 (PR #1094):
-
400 错误自愈: 增强了思考块签名的清洗逻辑。系统现在能自动识别因服务器重启导致的“无主签名”,并在发送给上游前主动将其剥离,从根本上杜绝了由此引发了
400 Invalid signature报错。 -
Rewind (回退) 检测机制: 升级缓存层,引入消息计数(Message Count)校验。当用户回退对话历史并重新发送时,系统会自动重置签名状态,确保对话流的合法性。
-
全链路适配: 优化了 Claude、Gemini 及 z.ai (Anthropic) 的数据链路,确保消息计数在流式与非流式请求中均能精准传播。
-
[OpenAI 鲁棒性增强] 优化重试策略与模型级限流 (PR #1093):
-
鲁棒重试: 强制最小 2 次请求尝试,确保单账号模式下也能有效应对瞬时网络抖动;移除了配额耗尽的硬中断,允许自动轮换账号。
-
模型级限流: 引入模型级限流隔离,避免单个模型限流锁定整个账号,确保账号下其他模型可用。
-
接口修复: 修复了 TokenManager 异步接口的 Email/ID 混用漏洞,确保限流记录准确。
-
[系统鲁棒性] 统一重试与退避调度中心 (Unified Retry & Backoff Hub):
-
逻辑归一化: 将散落在各协议处理器中的重试逻辑抽象至
common.rs,实现全局统一调度。 -
强制退避延迟: 彻底修复了原先逻辑中解析不到
Retry-After就立即重试导致封号的问题。现在所有处理器在重试前必须通过共享模块执行物理等待,有效保护 IP 信誉。 -
激进参数调整: 针对 Google/Anthropic 频率限制,将 429 和 503 的初始退避时间显著上调至 5s-10s,大幅降低生产环境风控风险。
-
[CLI 同步优化] 解决 Token 冲突与模型配置清理 (PR #1054):
-
自动冲突解决: 在设置
ANTHROPIC_API_KEY时自动移除冲突的ANTHROPIC_AUTH_TOKEN,解决 Claude CLI 同步报错问题。 -
环境变量清理: 同步时自动移除
ANTHROPIC_MODEL等可能干扰模型输出的环境变量,确保 CLI 使用标准模型。 -
配置健壮性: 优化了 API Key 为空时的处理方式,避免无效配置干扰。
-
[核心优化] 用量缩放功能默认关闭与联动机制 (Usage Scaling Default Off):
-
默认关闭: 基于用户反馈,将"启用用量缩放"功能从默认开启改为默认关闭,回归透明模式。
-
联动机制: 建立了缩放与自动压缩 (L1/L2/L3) 的联动关系。只有当用户主动开启缩放时,才同步激活自动压缩逻辑。
-
解决痛点: 修复了用户反馈的"缩放致盲"问题 - 默认模式下客户端能看到真实 Token 用量,在接近 200k 时触发原生
/compact提示,避免死锁。 -
功能定位: 将缩放+压缩重新定义为"激进扩容模式",仅供处理超大型项目时手动开启,提升系统稳定性与可预测性。
-
⚠️ 升级提醒: 从旧版本升级的用户,建议在"设置 → 实验性功能"中手动关闭"启用用量缩放",以获得更稳定透明的体验。
-
[协议优化] 全协议自动流式转换 (Auto-Stream Conversion):
-
全链路覆盖: 对 OpenAI (Chat/Legacy/Codex) 和 Gemini 协议实现了强制内部流式化转换。即使客户端请求非流式 (
stream: false),后端也会自动建立流式连接与上游通信,极大提升了连接稳定性和配额利用率。 -
智能聚合: 实现了高性能的流式聚合器,在兼容旧版客户端的同时,还能在后台实时捕获 Thinking 签名,有效解决了非流式请求下签名丢失导致后续工具调用失败的问题。
-
[核心修复] 错误日志元数据补全 (Log Metadata Fix):
-
问题背景: 之前版本在 429/503 等严重错误(如账号耗尽)发生时,日志记录中遗漏了
mapped_model和account_email字段,导致无法定位出错的具体模型和账号。 -
修复内容: 在 OpenAI 和 Claude 协议的所有错误退出路径(包括 Token 获取失败、转换异常、重试耗尽)中强制注入了元数据 Header。现在即使请求失败,流量日志也能准确显示目标模型和上下文信息,极大提升了排查效率。
v4.0.0 (2026-01-25):
-
[核心功能] 后台任务模型可配置 (Background Model Configuration):
-
功能增强: 允许用户自定义“后台任务”(如标题生成、摘要压缩)使用的模型。不再强制绑定
gemini-2.5-flash。 -
UI 更新: 在“模型映射”页面新增了“后台任务模型”配置项,支持从下拉菜单中选择任意可用模型(如
gemini-3-flash)。 -
路由修复: 修复了后台任务可能绕过用户自定义映射的问题。现在
internal-background-task会严格遵循用户的重定向规则。 -
[重要通告] 上游模型容量预警 (Capacity Warning):
-
容量不足: 接获大量反馈,上游 Google 的
gemini-2.5-flash和gemini-2.5-flash-lite模型当前正处于极度容量受限状态 (Rate Limited / Capacity Exhausted)。 -
建议操作: 为保证服务可用性,建议用户暂时在“自定义映射”中将上述两个模型重定向至其他模型(如
gemini-3-flash或gemini-3-pro-high),直到上游恢复。 -
[核心修复] Windows 启动参数支持 (PR #973):
-
问题修复: 修复了 Windows 平台下启动参数(如内网穿透配置等)无法正确解析生效的问题。感谢 @Mag1cFall 的贡献。
-
[核心修复] Claude 签名校验增强 (PR #1009):
-
功能优化: 增强了 Claude 模型的签名校验逻辑,修复了在长对话或复杂工具调用场景下可能出现的 400 错误。
-
兼容性提升: 引入最小签名长度校验,并对合法长度的未知签名采取信任策略,大幅提升了 JSON 工具调用的稳定性。
-
[国际化] 越南语翻译优化 (PR #1017):
-
翻译精简: 对关于页面等区域的越南语翻译进行了精简与标点优化。
-
[国际化] 土耳其语托盘翻译增强 (PR #1023):
-
功能优化: 为系统托盘菜单增加了完整的土耳其语翻译支持,提升了土耳其语用户的操作体验。
-
[功能增强] 多语言支持与 I18n 设置 (PR #1029):
-
新增语言支持: 增加了葡萄牙语、日语、越南语、土耳其语、俄语等多国语言的更完整支持。
-
I18n 设置面板: 在设置页面新增了语言选择器,支持即时切换应用显示语言。
-
[国际化] 韩语支持与界面优化 (New):
-
韩语集成: 新增了完整的韩语 (
ko) 翻译支持,现在可以在设置中选择韩语界面。 -
UI 交互升级: 重构了顶部导航栏的语言切换器,由原来的单次点击循环切换升级为更直观的下拉菜单,展示语言缩写与全称,提升了多语言环境下的操作体验。
v3.3.49 (2026-01-22):
[核心修复] Thinking 后中断与 0 Token 防御 (Fix Thinking Interruption):
-
问题背景: 针对 Gemini 等模型在输出 Thinking 内容后流意外中断,导致 Claude 客户端收到 0 Token 响应并报错死锁的问题。
-
防御机制:
-
状态追踪: 实时监测流式响应中是否“只想未说”(已发送 Thinking 但未发送 Content)。
-
自动兜底: 当检测到此类中断时,系统会自动闭合 Thinking 块,注入系统提示信息,并模拟正常的 Usage 数据,确保客户端能优雅结束会话。
[核心修复] 移除 Flash Lite 模型以修复 429 错误 (Fix 429 Errors):
- 问题背景: 今日监测发现
gemini-2.5-flash-lite频繁出现 429 错误,具体原因为 上游 Google 容器容量耗尽 (MODEL_CAPACITY_EXHAUSTED),而非通常的账号配额不足。 - 紧急修复: 将所有系统内部默认的
gemini-2.5-flash-lite调用(如后台标题生成、L3 摘要压缩)及预设映射全部替换为更稳定的gemini-2.5-flash。 - 用户提醒: 如果您在“自定义映射”或“预设”中手动使用了
gemini-2.5-flash-lite,请务必修改为其他模型,否则可能会持续遇到 429 错误。
[性能优化] 设置项即时生效 (Fix PR #949):
- 即时生效: 修复了语言切换需要手动点击保存的问题。现在修改语言设置会立即应用到整个 UI。
[代码清理] 后端架构重构与优化 (PR #950):
- 架构精简: 深度重构了代理层的 Mapper 和 Handler 逻辑,移除了冗余模块(如
openai/collector.rs),显著提升了代码的可维护性。 - 稳定性增强: 优化了 OpenAI 与 Claude 协议的转换链路,统一了图片配置解析逻辑,并加固了上下文管理器的健壮性。
[核心修复] 设置项同步策略更新:
- 状态同步: 修正了主题切换的即时应用逻辑,并解决了
App.tsx与Settings.tsx之间的状态冲突,确保配置加载过程中的 UI 一致性。
[核心优化] 上下文压缩与 Token 节省:
- 由于 Claude CLI 在恢复历史记录时会发送大量上下文,现已将压缩阈值改为可配置并降低默认值。
- L3 摘要重置阈值由 90% 降至 70%,在 token 堆积过多前提前进行压缩节省额度。
- 前端 UI 增强:在实验性设置中新增 L1/L2/L3 压缩阈值滑块,支持动态自定义。
[功能增强] API 监控看板功能升级 (PR #951):
- 账号筛选: 新增按账号筛选流量日志的功能,支持在大流量环境下精准追踪特定账号的调用情况。
- 详情深度增强: 监控详情页现在可以完整显示请求协议(OpenAI/Anthropic/Gemini)、使用账号、映射后的物理模型等关键元数据。
- UI 与国际化: 优化了监控详情的布局,并补全了 8 种语言的相关翻译。
[JSON Schema 优化] 递归收集 $defs 并完善回退处理 (PR #953):
- 递归收集: 添加了
collect_all_defs()以递归方式从所有模式层级收集$defs/definitions,解决了嵌套定义丢失的问题。 - 引用平坦化: 始终运行
flatten_refs()以捕获并处理孤立的$ref字段。 - 回退机制: 为未解析的
$ref添加了回退逻辑,将其转换为带有描述性提示的字符串类型。 - 稳定性增强: 新增了针对嵌套定义和未解析引用的测试用例,确保 Schema 处理的健壮性。
[核心修复] 账号索引保护 (Fix Issue #929):
- 安全加固: 移除了加载失败时的自动删除逻辑,防止在升级或环境异常时意外丢失账号索引,确保用户数据安全。
[核心优化] 路由器与模型映射深度优化 (PR #954):
- 路由器确定性优先级: 修复了路由器在处理多通配符模式时的不确定性问题,实现了基于模式长度和复杂度的确定性匹配优先级。
[稳定性增强] OAuth 回调与解析优化 (Fix #931, #850, #778):
- 鲁棒解析: 优化了本地回调服务器的 URL 解析逻辑,不再依赖单一分割符,提升了不同浏览器下的兼容性。
- 调试增强: 增加了原始请求 (Raw Request) 记录功能,当授权失败时可直接在日志中查看原始数据,方便定位网络拦截问题。
[网络优化] OAuth 通信质量提升 (Issue #948, #887):
- 延时保障: 将授权请求超时时间延长至 60 秒,大幅提升了在代理环境下的 Token 交换成功率。
- 错误指引: 针对 Google API 连接超时或重置的情况,新增了明确的中文代理设置建议,降低排查门槛。
[体验优化] 上游代理配置校验与提示增强 (Contributed by @zhiqianzheng):
- 配置校验: 当用户启用上游代理但未填写代理地址时,保存操作将被阻止并显示明确的错误提示,避免无效配置导致的连接失败。
- 重启提醒: 成功保存代理配置后,系统会提示用户需要重启应用才能使配置生效,降低用户排查成本。
- 多语言支持: 新增简体中文、繁体中文、英文、日语的相关翻译。
v3.3.48 (2026-01-21):
-
[核心修复] Windows 控制台闪烁问题 (Fix PR #933):
-
问题背景: Windows 平台在启动或执行后台命令时,偶尔会弹出短暂的 CMD 窗口,影响用户体验。
-
修复内容: 在
cloudflared进程创建逻辑中添加CREATE_NO_WINDOW标志,确保所有后台进程静默运行。 -
影响范围: 解决了 Windows 用户在启动应用或 CLI 交互时的窗口闪烁问题。
v3.3.47 (2026-01-21):
-
[核心修复] 图片生成 API 参数映射增强 (Fix Issue #911):
-
功能: 支持从 OpenAI 参数 (
size,quality) 解析配置,支持动态宽高比计算,quality: hd自动映射为 4K 分辨率。 -
影响: 显著提升 Images API 兼容性,OpenAI 与 Claude 协议均受支持。
-
[功能增强] Cloudflared 内网穿透支持 (PR #923):
-
核心功能: 集成
cloudflared隧道支持,允许用户在无公网 IP 或处于复杂内网环境下,通过 Cloudflare 隧道一键发布 API 服务。 -
易用性优化: 前端新增 Cloudflared 配置界面,支持状态监控、日志查看及一键开关隧道。
-
国际化补全: 补全了繁体中文、英文、日文、韩文、越南语、土耳其语、俄语等 8 国语言的 Cloudflared 相关翻译。
-
[核心修复] 解决 Git 合并冲突导致的启动失败:
-
修复内容: 解决了
src-tauri/src/proxy/handlers/claude.rs中因多进程并行合并产生的<<<<<<< HEAD冲突标记。 -
影响范围: 恢复了后端服务的编译能力,修复了应用启动即崩溃的问题。
-
[核心优化] 三层渐进式上下文压缩 (3-Layer Progressive Context PCC):
-
背景: 长对话场景下频繁触发 "Prompt is too long" 错误,手动
/compact操作繁琐,且现有压缩策略会破坏 LLM 的 KV Cache,导致成本飙升 -
解决方案 - 多层渐进式压缩策略:
-
Layer 1 (60% 压力): 工具消息智能裁剪
-
删除旧的工具调用/结果消息,保留最近 5 轮交互
-
完全不破坏 KV Cache(只删除消息,不修改内容)
-
压缩率:60-90%
-
Layer 2 (75% 压力): Thinking 内容压缩 + 签名保留
-
压缩
assistant消息中的 Thinking 块文本内容(替换为 "...") -
完整保留
signature字段,解决 Issue #902(签名丢失导致 400 错误) -
保护最近 4 条消息不被压缩
-
压缩率:70-95%
-
Layer 3 (90% 压力): Fork 会话 + XML 摘要
-
使用
gemini-2.5-flash-lite生成 8 节 XML 结构化摘要(成本极低) -
提取并保留最后一个有效 Thinking 签名
-
创建新的消息序列:
[User: XML摘要] + [Assistant: 确认] + [用户最新消息] -
完全不破坏 Prompt Cache(前缀稳定,只追加)
-
压缩率:86-97%
-
技术实现:
-
新增模块:
context_manager.rs中实现 Token 估算、工具裁剪、Thinking 压缩、签名提取等核心功能 -
辅助函数:
call_gemini_sync()- 可复用的同步上游调用函数 -
XML 摘要模板: 8 节结构化摘要(目标、技术栈、文件状态、代码变更、调试历史、计划、偏好、签名)
-
渐进式触发: 按压力等级自动触发,每次压缩后重新估算 Token 用量
-
成本优化:
-
Layer 1: 完全无成本(不破坏缓存)
-
Layer 2: 低成本(仅破坏部分缓存)
-
Layer 3: 极低成本(摘要生成使用 flash-lite,新会话完全缓存友好)
-
综合节省: 86-97% Token 成本,同时保持签名链完整性
-
用户体验:
-
自动化:无需手动
/compact,系统自动处理 -
透明化:详细日志记录每层压缩的触发和效果
-
容错性:Layer 3 失败时返回友好错误提示
-
影响范围: 解决长对话场景下的上下文管理问题,显著降低 API 成本,确保工具调用链完整性
-
[核心优化] 上下文估算与缩放算法增强 (PR #925):
-
背景: 在 Claude Code 等长对话场景下,固定的 Token 估算算法(3.5 字符/token)在中英文混排时误差极大,导致三层压缩逻辑无法及时触发,最终仍会报 "Prompt is too long" 错误
-
解决方案 - 动态校准 + 多语言感知:
-
多语言感知估算:
-
ASCII/英文: 约为 4 字符/Token(针对代码和英文文档优化)
-
Unicode/CJK (中日韩): 约为 1.5 字符/Token(针对 Gemini/Claude 分词特点)
-
安全余量: 在计算结果基础上额外增加 15% 的安全冗余
-
动态校准器 (
estimation_calibrator.rs): -
自学习机制: 记录每次请求的"估算 Token 数"与 Google API 返回的"实际 Token 数"
-
校准因子: 使用指数移动平均 (EMA, 60% 旧比例 + 40% 新比例) 维护校准系数
-
保守初始化: 初始校准系数为 2.0,确保系统运行初期极其保守地触发压缩
-
自动收敛: 根据实际数据自动修正,