用 Antigravity Skills 让 Gemini、Codex、Claude 并行干活

AI Summary (BLUF)
本文介绍如何利用Google Antigravity的Skills和invoke_subagent机制,实现多模型(Gemini、Claude、Codex)并行协作,避免手动切换代理的繁琐。作者通过自定义SKILL.md技能,让主代理自动拆分任务并在后台并行执行,再通过Reactive Wakeup机制汇总结果,从而提升开发效率并捕获单一模型可能遗漏的缺陷。
核心洞察
这篇文章最有意思的点是它把"多模型协作"从概念落到了具体操作上:用 Antigravity 的 Skills 机制把 Codex 和 Claude 拉进同一个工作流,靠 Reactive WakeupAntigravity的自动唤醒机制,当后台子代理完成时自动恢复主代理并传递结果,避免轮询。 做非阻塞回收。我比较在意的是它声称"第一次运行就抓到了主线程漏掉的 bug",这种说法需要打个问号,但思路本身值得借鉴。另外,文中提到的配额管理问题确实是多模型并行的真实痛点,第二篇应该会更有看头。
核心结论
通过 Google AntigravityA developer platform by Google enabling AI agents to autonomously collaborate across browsers, terminals, and code editors. 的 Skills(
SKILL.md)机制,可以在同一工作流中并行调度 Gemini 4 ArgonGemini平台上的前沿推理模型,适用于复杂多步推理、代码生成等任务。、OpenAI CodexOpenAI 的 Agent 全家桶,包括 CLI、Cloud、IDE 形态,是 Harness Engineering 的发源地,曾用 3 名工程师 + Codex 在 5 个月内生成近 100 万行生产代码。(gpt-6-sol)和 Claude CodeAn AI coding assistant developed by Anthropic that provides code completion and explanations.(Sonnet 5.5)三个异构模型,实现跨模型协作而非同一模型家族的重复实例。Antigravity 采用渐进披露机制加载技能:会话启动时仅注入 YAML frontmatter(
name和description),完整SKILL.md指令仅在技能被调用时读取,避免撑爆主对话上下文窗口。核心调度规则是"不要轮询":主智能体调用
invoke_subagent后立即获得conversationId并继续主线程工作或结束回合,后台子智能体完成后由 Reactive Wakeup 自动唤醒主智能体并带回报告。在构建 macOS 配额小组件(
leap-edge.swift)的首次运行中,后台agent-codex即发现主线程遗漏的 bug:解析器计算了badgeText,但drawWinBlock未将徽章胶囊绘制到卡片上,并额外提出三条针对无风扇 M1 MacBook Air 的能耗优化建议。多智能体并行并非万能:小文案修改或孤立 UI 调整应使用单线程;核心算法、操作系统集成、安全边界宜用主线程加
agent-codex后台审查;功能实现加测试框架则自动拆分到agent-codex与agent-claude并行。
通过自定义技能并行调度多个 AI 智能体
系列 1/2:多模型协作与配额管理的实战
时间到了 2026 年第四季度,你平时怎么跟 AI 智能体协作把活干完?
三年前我们第一次打开 ChatGPT 敲下提示词的时候,就已经被训练成一种习惯:问 AI 一个问题,等它回答。不管是免费版还是付费版,只要智能体卡住了、答得不行、或者撞上用量限制,我们的本能反应就是换一个智能体再试一次。
今年年初开始,市面上冒出一批切换工具,帮开发者在不同 CLI 之间跳得更快。紧接着又出现了各种技能,用来备份、同步、恢复状态,好让下一个智能体能接着上一个的进度干。即便如此,每次交接都会打断你的节奏,工作流被切得断断续续。
从去年年底开始,我一直在把十多年的工程笔记和实践整理成一套结构化的个人工作流和知识库,配了一个轻量的翻译层,让不同的智能体能原生读取和推理同一份上下文。这套东西我在 Claude Code、Gemini CLI、OpenAI Codex、Pi 上都验证过。
上周拿到 Gemini 4 Argon 的早期访问资格之后,我开始认真把主力切到 Gemini 4 上:用 Google Antigravity(AGY,底层是 Gemini 4 Argon) 作为主控面,负责长上下文架构推理和多模态截图检查,同时拉 OpenAI Codex(gpt-6-sol) 来压测边界情况,再让 Claude Code(Sonnet 5.5) 扮演 QA/PM 角色,审查项目和架构细节。
以前的做法很笨:开两个终端窗口,把同样的截图路径和背景上下文复制粘贴两遍,等两边都跑完,再用肉眼对比。
这周我把整个循环收敛到了 Google Antigravity 的 Skills(SKILL.md) 和非阻塞的 invoke_subagent 机制里。现在只需要在一个提示词里点名几个智能体,主智能体就会自动拆任务、在后台并行跑,然后把主窗口唤醒回来交叉比对结果。
内置斜杠命令与跨模型技能的区别
在 Antigravity 里敲 / 已经能看到三个内置的多智能体和深度推理命令:
| 命令 | 底层机制 | 适用场景 |
|---|---|---|
/teamwork-preview |
用 define_subagent 和 invoke_subagent 拉起角色化的子智能体,可选隔离的 Git worktree |
前端、后端、测试并行拆分 |
/boost |
强制战略规划,生成多个子智能体从不同角度验证问题 | 架构取舍和疑难根因分析 |
/goal |
跑一个自主的编辑-验证-修复循环,直到目标条件通过 | 长迁移、构建、测试修复 |
这些内置命令挺好用,但默认情况下它们拉起的每个子智能体跑的都是同一个底层模型家族。
如果一个模型家族在某个 API 或操作系统怪癖上有盲区,三个同款模型实例会共享同一个盲区。我想要的是在 Antigravity 内部做异构多模型执行,同时不把主对话的上下文窗口撑爆。
工作原理:渐进披露加响应式唤醒
Antigravity 从 ~/.gemini/config/skills/<name>/SKILL.md 加载用户技能,用的是渐进披露机制:
会话启动时,只有 YAML frontmatter(name 和 description)被注入系统提示词。完整的 SKILL.md 指令只有在某个提示词调用该技能时才会被读取。
我加了两个全局技能:
~/.gemini/config/skills/agent-codex/SKILL.md:拉起一个后台子智能体,调用codex exec(gpt-6-sol)。~/.gemini/config/skills/agent-claude/SKILL.md:拉起一个后台子智能体,调用claude(claude-sonnet-5-5)。
agent-codex/SKILL.md 的核心很简单:
---
name: agent-codex
description: Spawn an asynchronous Antigravity subagent that runs OpenAI Codex CLI (gpt-6-sol) in parallel with the primary agent, then synthesize both perspectives.
---
# SOP
1. Call `invoke_subagent` (`TypeName: "self"`, `Role: "Agent Codex (gpt-6-sol)"`).
2. Inside the subagent, pipe the task prompt and any image paths (`-i <img_path>`) to `codex exec -m gpt-6-sol --skip-git-repo-check -`.
3. Do NOT poll in a loop. Continue primary-track work or end the turn; Antigravity's Reactive Wakeup resumes automatically when the subagent returns.
4. When woken up, compare agreements, disagreements, and blind spots caught by each model.
这里最重要的一条规则是不要轮询。
主智能体调用 invoke_subagent 之后,立刻拿到一个 conversationId,可以继续干主线程的活,或者直接结束当前回合。后台子智能体跑完 codex 或 claude 之后,Antigravity 的响应式唤醒会自动带着子智能体的报告恢复主智能体:
sequenceDiagram
autonumber
actor Dev as Developer
participant AGY as Google Antigravity (Gemini 4 Argon)
participant Sub1 as Subagent · agent-codex (gpt-6-sol)
participant Sub2 as Subagent · agent-claude (Sonnet 5.5)
Dev->>AGY: Build & audit Leap EDGE across macOS and Ubuntu using agent-codex and agent-claude
par Parallel Non-Blocking Execution
AGY->>AGY: Primary track — macOS Swift CoreGraphics HUD & Universal Makefile
and Background Track A
AGY->>Sub1: invoke_subagent (Role = Agent Codex)
Sub1-->>AGY: Reactive Wakeup — catches missing Pace Badge draw call + builds Linux X11 client
and Background Track B
AGY->>Sub2: invoke_subagent (Role = Agent Claude)
Sub2-->>AGY: Reactive Wakeup — sets up headless Xvfb/X11 E2E screenshot verification
end
AGY->>Dev: Synthesizes code, fixes, and visual verification screenshots
它真的抓到了主线程漏掉的 bug 吗
抓到了,而且第一次跑就抓到了。
在构建配额小组件的初始 macOS 版本(leap-edge.swift)时,主线程写了 JSON 解析器和 CoreGraphics 卡片渲染器。与此同时,agent-codex 在后台审查文件,立刻标出了一个遗漏:
解析器计算了
badgeText(▲ RUNS OUT 11:30对比⏱ LASTS TO RESET),但drawWinBlock根本没把徽章胶囊画到卡片上。
除了补上 CoreGraphics 胶囊渲染器,它还指出了三条针对无风扇 M1 MacBook Air 上常驻小组件的能耗优化:
- 监听
NSWindow.didChangeOcclusionStateNotification,这样当桌面小组件被全屏窗口完全遮住时,60 秒的时钟重绘会暂停。 - 缓存
DateFormatter实例,而不是在绘制循环里反复分配。 - 300 秒的配额轮询用
URLSessionConfiguration.ephemeral,避免不必要的磁盘缓存写入。
后来我们把小组件扩展到 ThinkPad X1 Carbon 和 Surface Pro 7 平板(跑 Ubuntu X11,带自动旋转)时,同样的拆分工作流又发挥了作用:agent-codex 实现了响应式的横竖卡片几何布局,agent-claude 跑了远程 X11 截图管线,Gemini 4 Argon 直接检查生成的截图,抓到了窄屏竖版卡片上的文字重叠问题。
什么时候用单线程,什么时候用多智能体并行
每改一个错别字都跑三个模型,纯属浪费配额。我用的经验法则:
| 工作负载 | 方案 |
|---|---|
| 小文案修改或孤立的 UI 调整 | 主 Antigravity 会话单线程 |
| 核心算法、操作系统集成、安全边界 | 主线程加 agent-codex 后台源码真值审查 |
| 功能实现加测试/验证框架 | 自动拆分到 agent-codex 和 agent-claude 并行 |
| 跨设备 UI 布局调优(macOS Retina / Linux X11 / 竖版平板) | 子智能体改代码并截图,Gemini 4 Argon 检查图片 |
一旦你开始同时往 Gemini、Claude、Codex 上分发任务,马上就会撞上一个新的运维问题:
每家厂商都有自己的 5 小时和每周滑动配额窗口。哪家会先撞上速率限制?
在第二篇里,我会展示我们怎么构建 Leap EDGE一个483KB、空闲CPU占用0%的原生macOS和Ubuntu HUD工具,用于配额管理,提供pace-aware耗尽预测。:一个 483 KB、空闲 CPU 占用 0% 的原生 macOS 和 Ubuntu HUD,用带节奏感知的耗尽预测取代那些没用的"已用 40%"进度条。
常见问题(FAQ)
Antigravity 怎么让 Gemini、Claude、Codex 并行干活?
通过自定义 SKILL.md技能的主要配置文件,包含YAML前置元数据(名称、描述)和详细使用说明。Claude在技能激活时读取这些指令,是技能发现和执行的核心文件。 技能(如 agent-codex、agent-claude),主代理用 invoke_subagentAntigravity的非阻塞子代理调用机制,主代理调用后立即返回conversationId,后台执行任务,完成后通过Reactive Wakeup通知主代理。 在后台拉起子智能体,分别调用 codex exec 和 claude,实现异构多模型并行执行,无需手动切换代理。
invoke_subagent 的响应式唤醒机制是怎么工作的?
主代理调用 invoke_subagent 后立即拿到 conversationId,可继续主线程工作或结束回合,不轮询。子智能体跑完后,Antigravity 的 Reactive Wakeup 自动带报告唤醒主代理,再交叉比对结果。
内置斜杠命令和跨模型技能有什么区别?
/teamwork-preview、/boost、/goal 等内置命令拉起的子智能体默认跑同一模型家族,会共享盲区;自定义跨模型技能则能拉入 Codex、Claude 等异构模型,避免同款模型共享同一盲区。
版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。
文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。
若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。




