1. Antigravity 里 code review skills 到底解决什么问题
Antigravity 是 Google 推出的 AI 编辑器,它和普通补全工具最大的区别在于:它内置了一套 Skills 机制,允许你把「代码审查」这种重复性动作固化成可复用的技能包。你只要在对话框里指定文件、敲一句code review,它就会自动加载对应的 SKILL.md,按你定义的检查清单逐条过一遍代码。
但真正落地时会撞上一个很现实的问题:Antigravity 默认走的是 Google 自家的模型通道,而做代码审查这件事,不同模型的表现差异极大。有的模型擅长抓边界条件,有的模型对安全漏洞更敏感,有的模型在重构建议上更靠谱。如果你只用一个模型从头审到尾,很容易漏掉某一类问题。更麻烦的是,每换一个模型就要重新配一次 Key、改一次 Base URL,来回折腾的时间比写代码还长。
我试过在三个模型之间来回切换做审查,结果光配置就花了半小时。后来换成 TaoToken 的统一 Key 通道,所有模型走同一个 Base URL 和同一个 API Key,Antigravity 里只需要维护一份 auth.json,切换模型只改一个 Model ID 字段就行。这篇就把这套配置完整拆开,从目录结构到 auth.json 写法,再到触发审查和验证返回结果,每一步都能直接复制。
适合谁看:已经在用 Antigravity、想让 code review skills 真正跑起来、并且需要多模型切换做代码审查的开发者。如果你还没配过 Skills,也能跟着从零搭起来。
2. TaoToken 统一 Key 接入 Antigravity 的前置准备
在动手改配置之前,先把几个概念理清楚,不然后面看到 auth.json 里的字段会懵。
Antigravity 的模型调用走的是 OpenAI 兼容协议,也就是说它期望一个 Base URL 加一个 API Key,然后用标准的/v1/chat/completions格式发请求。TaoToken 提供的正是这样一个统一入口:你拿一个 Key,就能访问它背后挂载的多个模型,不需要为每个模型单独申请账号。Base URL 固定为https://taotoken.net/api,注意这里不带任何查询参数,直接填这个地址就行。
为什么要在 Antigravity 里用统一 Key 而不是每个模型单独配?核心原因是 code review skills 的触发逻辑和模型绑定是分离的。Skills 本身只定义「怎么审」,模型决定「审得多深」。当你把模型通道统一后,可以在同一个 Skills 配置下快速换模型对比审查结果,而不用动 SKILL.md 一个字。
前置准备分三步。第一步,去 TaoToken 控制台创建一个 API Key,地址是https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=console,创建后复制那串以sk-开头的字符串,后面 auth.json 要用。第二步,确认你的 Antigravity 版本支持自定义模型端点,目前主流版本都在设置里留了Model Provider或Custom Endpoint入口。第三步,找到 Antigravity 的配置目录,Windows 下一般在C:\Users\你的用户名\.gemini\antigravity\,macOS 和 Linux 在~/.gemini/antigravity/,auth.json 就放在这个目录下。
这里有个容易踩的坑:很多人把 auth.json 放到项目根目录,结果 Antigravity 读不到。它只认全局配置目录下的 auth.json,项目级的配置是另一套机制。所以第一步先把目录确认对,后面所有操作都在这个目录里进行。
另外提醒一句,TaoToken 的 Key 是敏感信息,不要提交到 Git 仓库。auth.json 本身应该加进.gitignore,如果你在团队里共享配置,用环境变量注入的方式更安全。Antigravity 支持从环境变量读取 Key,字段名通常是TAOTOKEN_API_KEY,这个后面配置章节会给出两种写法。
3. 可复制的 auth.json 与 code-review SKILL.md 配置
这一节是整篇的核心,所有配置都能直接复制。先配模型通道,再配 Skills,顺序不要反,因为 Skills 触发时要先能连上模型。
3.1 auth.json 完整写法
在~/.gemini/antigravity/auth.json(Windows 是C:\Users\你的用户名\.gemini\antigravity\auth.json)里写入以下内容:
{ "provider": "openai-compatible", "baseUrl": "https://taotoken.net/api", "apiKey": "sk-你的TaoToken密钥", "model": "claude-sonnet-4-20250514", "models": { "review-fast": "gpt-4o-mini", "review-deep": "claude-sonnet-4-20250514", "review-secure": "deepseek-chat" } }三个关键字段说明:baseUrl必须是https://taotoken.net/api,不要加/v1后缀,Antigravity 会自动补全路径;apiKey填你在控制台创建的那串;model是默认模型,models里可以预置多个别名,方便在 Skills 里按场景切换。比如做快速扫描用review-fast,做深度逻辑审查用review-deep,做安全专项用review-secure。
如果你不想把 Key 写死在文件里,改成环境变量引用:
{ "provider": "openai-compatible", "baseUrl": "https://taotoken.net/api", "apiKey": "${TAOTOKEN_API_KEY}", "model": "claude-sonnet-4-20250514" }然后在系统环境变量里设置TAOTOKEN_API_KEY=sk-你的密钥。这样 auth.json 可以安全地放进版本控制。
3.2 code-review SKILL.md 完整写法
在~/.gemini/antigravity/skills/code-review/SKILL.md里写入:
--- name: code-review description: Reviews code changes for bugs, style issues, and best practices. Use when reviewing PRs or checking code quality. model: review-deep --- # Code Review Skill When reviewing code, follow these steps: ## Review checklist 1. **Correctness**: Does the code do what it's supposed to? 2. **Edge cases**: Are error conditions handled? 3. **Style**: Does it follow project conventions? 4. **Performance**: Are there obvious inefficiencies? 5. **Security**: Any injection, exposure, or unsafe defaults? ## How to provide feedback - Be specific about what needs to change - Explain why, not just what - Suggest alternatives when possible - Mark severity: [blocker] [major] [minor] [nit]注意 frontmatter 里的model: review-deep,它会去 auth.json 的models映射里找对应模型。这样你改审查深度时,只改 SKILL.md 这一行,不用动 auth.json。如果你想让安全审查走另一个模型,复制一份 SKILL.md 改名为code-review-security,把model改成review-secure即可。
3.3 目录结构确认
配完后目录应该是这样:
~/.gemini/antigravity/ ├── auth.json └── skills/ └── code-review/ └── SKILL.mdWindows 下路径对应C:\Users\你的用户名\.gemini\antigravity\。确认 skills 目录名是复数skills,不是skill,这个拼写错误会导致 Skills 完全不加载,而且没有任何报错提示,非常隐蔽。
4. 触发 code review skills 并验证审查结果返回
配置写完后,重启 Antigravity 让 auth.json 生效。然后打开一个你想审查的代码文件,在对话框里输入:
code review @src/utils/parser.js@后面跟文件路径,Antigravity 会把文件内容注入上下文,然后匹配到code-review这个 Skill 并加载 SKILL.md。如果配置正确,你会看到它按 checklist 逐条输出,每条带严重级别标记。
验证请求是否真的走了 TaoToken 通道,有两个方法。第一个方法看 Antigravity 的输出面板,如果模型返回的格式是标准的 Markdown 列表加严重级别标记,说明 SKILL.md 被正确加载了。第二个方法更直接:去 TaoToken 控制台的用量页面看请求记录,地址是https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=console,每次触发审查都会有一条记录,包含模型名和 token 消耗。
如果你想单独验证模型通道是否通,可以用 curl 直接打一发:
curl https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer sk-你的TaoToken密钥" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-20250514", "messages": [{"role": "user", "content": "回复 OK 两个字母"}] }'返回里如果有choices[0].message.content字段且内容是OK,说明 Key 和 Base URL 都没问题。这一步能帮你把「模型通道问题」和「Skills 配置问题」分开定位,省很多排查时间。
实测下来,一个 200 行左右的 JS 文件,用review-deep模型审查大约 8 到 12 秒返回,输出包含 3 到 5 条具体建议。如果超过 30 秒没返回,大概率是模型通道卡住了,先跑上面的 curl 确认通道。
5. 常见报错排查:401、local proxy failed、reading choices
这一节按真实报错逐条拆,每条给出原因和修法。
401 Unauthorized。最常见的原因是 apiKey 填错或者带了多余空格。检查 auth.json 里sk-开头那串是否完整复制,前后有没有换行符。另一个原因是 Key 过期或被禁用,去控制台确认 Key 状态。如果用的是环境变量写法,确认TAOTOKEN_API_KEY在当前 shell 里能echo出来,Antigravity 启动时如果读不到环境变量会直接 401。
local proxy failed / connection refused。这个报错说明 Antigravity 尝试连本地代理但失败了。检查 auth.json 里baseUrl是不是被误改成了http://localhost:xxxx。正确值必须是https://taotoken.net/api。如果你之前配过其他工具留下的代理设置,去 Antigravity 设置里把Proxy字段清空。
reading choices 报错 / Cannot read property 'choices' of undefined。这个通常发生在模型返回了非标准格式,或者 Base URL 多了/v1导致路径变成/v1/v1/chat/completions。检查baseUrl是否严格等于https://taotoken.net/api,不要加任何后缀。另一个可能是model字段填了一个 TaoToken 不支持的模型名,去控制台看可用模型列表,确认拼写。
Skills 不触发,输入 code review 没反应。三个检查点:skills 目录名是不是复数;SKILL.md 的 frontmatter 里name字段是不是code-review;文件编码是不是 UTF-8 无 BOM。这三个任意一个不对,Skills 都会静默失败。
OAuth 相关报错。如果你之前用 Google 账号登录过 Antigravity,它可能缓存了 OAuth token 并优先走官方通道。去设置里把登录状态退出,强制走 auth.json 里的自定义 provider。有些版本需要在设置里显式把Model Provider切成Custom。
排查顺序建议:先 curl 验通道,再验 auth.json 字段,最后验 Skills 目录。这样能把问题范围快速缩小到某一层。
6. 多模型切换做代码审查的长期用法
配置跑通之后,真正的价值在于多模型对比审查。同一个文件,你可以用review-fast先扫一遍抓明显问题,再用review-deep深挖逻辑,最后用review-secure做安全专项。三次审查走同一个 Key、同一个 Base URL,切换成本几乎为零。
如果你要把这套流程固化到日常开发里,建议把 code review 作为提交前的固定动作。Antigravity 支持在保存文件时触发 Skills,你可以在设置里绑定onSave事件到code-review,这样每次保存自动跑一遍快速审查。深度审查还是手动触发,避免每次保存都等十几秒。
对于长期做代码审查和 Agent 类任务的场景,可以考虑用 Coding Plan 来管理额度,地址是https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=coding-plan,它比按量计费更适合高频审查的用法。如果你只是想先验证模型对话效果,可以直接用模型对话页面试,地址是https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=model-chat。
最后给一个实用技巧:把审查结果里的[blocker]和[major]单独过滤出来,作为合并前的硬性门槛。[minor]和[nit]可以攒着批量处理。这样 code review skills 就不只是一个「看看建议」的工具,而是真正卡住代码质量的关卡。SKILL.md 里的严重级别标记就是为这个设计的,用起来别浪费。