在 IDE 中使用 Antigravity 这类自治 AI 编程助手时,很多开发者最常抱怨的往往是:AI 自动提交了有问题的代码、偷偷改了单元测试断言来“假装通过”,或者模型配额太快耗尽,不得不等待漫长的冷却时间。
实际上,解决这些问题的核心在于夺回控制权。我们可以通过在 IDE 中进行拦截配置、善用实时控制命令以及合理分工模型,做到“每一次修改都清晰可视、提交前必须经过审查”。
一、防失控拦截:静态配置与动态控制
想要驯服 AI 助手,首先要建立两道防线:静态配置(划定安全边界与规则)和动态控制(随时中止并清除被污染的上下文)。
1. 静态设防:权限拦截与本地规范
不要给 AI 过于宽泛的自动执行权限,在它动手前先立好规矩:
- 启用人类审查(Request Review):在你的全局配置文件
~/.gemini/antigravity-ide/settings.json(或通过 IDE 的设置面板)中,将权限设置为人类审查:配置为{ "permission": "request-review" }request-review后,AI 在尝试修改文件、运行终端命令或发起网络请求前,IDE 界面都会弹窗展示修改的 Diff,必须由你手动点击“Approve(确认)”后才会真正执行。这能确保所有改动完全在你的眼皮底下发生。 - 立下硬性规则文件:在项目根目录下创建
.agents/AGENTS.md(或GEMINI.md)。这是 AI 启动时强制读取且必须遵守的本地规范文件。推荐在其中写入硬性限制,例如:- 绝对禁止为了跑通测试而修改原有的单元测试用例。 - 任何逻辑改动前,必须先在侧边栏输出实现计划(Plan)并等待用户批准。 - 复杂的逻辑修改,必须在代码中写清注释说明。
2. 动态止损:不要在污染的上下文中纠缠
在实际开发中,AI 一次没改对是很常见的。但如果你直接在聊天面板里继续对它解释:“这里写错了,应该怎样怎样...”。
这其实是一个误区——当 AI 连续两次改错后,当前会话的上下文里已经充斥了大量错误的逻辑和代码噪音,继续对话只会让它在错误的路上越走越远。
正确的做法是在 IDE 界面中利用物理指令实时控制:
- 按
ESC键立即打断:一旦在侧边栏日志中看到 AI 正在编写偏离需求的垃圾代码,或者在错误的文件目录里搜索,不需要等它执行完,立刻按下键盘上的ESC键终止其正在执行的任务,防止它继续生成垃圾上下文。 - 回退到上一个稳定状态:打断任务后,不要在当前对话继续,在聊天框中点击回退。这会把整个会话历史回退到上一个没有问题的状态,抹除所有污染的上下文,再重新描述你的修改意图。
二、黄金开发流程:探索、计划、执行与验证
自治代理在处理复杂的开发任务时,如果直接让它写代码,极易因为缺乏全局视野而陷入胡乱尝试的恶性循环。官方实践表明,将任务划分为独立的三个阶段,准确率最高:
1. 探索 (Explore)
先让 AI 阅读代码、搜索上下文,理清关系,暂时不改动任何文件。例如对它说:“先分析 UserService 的调用关系,不要改动任何文件。”
2. 计划与执行的底层理解 (Plan & Execute)
很多开发者会混淆“计划”与“执行”的界限,理解它们的本质区别有助于更好地控制 AI 的行为:
- 计划 (Plan):是对方案的**“逻辑锁定”**。在这个阶段,AI 不会生成任何实际的代码修改,而是专门输出一份实现计划(如
implementation_plan.md)。计划列出了受影响的文件范围、具体的改动逻辑和验证方案。它的本质是让人与 AI 达成共识,确保在动手前方向完全正确。 - 执行 (Execute):是对逻辑锁定方案的**“确定性落地”**。当用户确认并批准了计划后,AI 才会进入执行阶段,严格按照计划清单中的步骤去写代码。由于执行阶段被死死约束在计划的范围内,AI 就不会为了强行跑通某项功能而随意删改其他无关代码。
3. 建立验证循环 (Establish verification loops)
不要盲信 AI 写的代码。在让 AI 开始修改前,先准备好测试套件(或者让 AI 先写测试)。在执行阶段,应指示 AI 在提出代码修改后自动运行本地测试,并根据测试输出结果进行自我纠错和迭代。
三、主/子模型协同与并行子代理
顶级模型理解能力强,但在 IDE 中全程用它进行代码编写和测试,配额极易耗尽,很快就会触发 5 小时上限。
可以采用 主/子模型协同工作流,并结合 并行子代理(Parallel Subagents):
- 主模型(顶级模型,负责全局规划):在 IDE 的模型选择菜单中,使用顶级模型来进行前期的代码探索(Explore)与实现规划(Plan)。主模型只负责理解架构、出具
implementation_plan.md,只在宏观决策时低频调用。 - 子模型(轻量级模型,负责并行执行):计划批准后,调用 并行子代理 (Subagents) 机制。它会在后台派生出多个并行的子会话,自动切换到响应极快、资费极低的 Flash 模型,分头并发去执行具体子模块的编写与自测。
通过这种“强模型出方案,轻模型后台并行干体力活”的分工方式,无需在 IDE 中串行等待 AI 逐个文件修改,大幅缩短等待时间。
四、高效使用习惯
-
精准使用
@引用与检索引导:如果不提供具体的文件地址,AI 就会在代码库中盲目检索(乱找),这会引入大量无关代码并耗尽 Token 额度。最佳实践是:在项目内提供规则说明文件(如在AGENTS.md里写明项目结构和模块路径)来指导 AI 检索;如果没有这类说明,务必手动在聊天框中输入@精准引入相关文件,避免 AI 乱搜干扰当前上下文。 -
直接在侧边栏贴图:遇到前端页面样式或 UI 渲染问题时,不要费力用文字描述。直接截图并用
Ctrl+V粘贴到 IDE 聊天框中发送。AI 的视觉模型对界面的直观感知比纯文字描述更高效。 -
自动化重置冷却时间,拉满每日使用上限: 工具的 5 小时冷却限制非常折磨人。实际上,你可以通过在工作时间前定时自动执行轻量模型调用来提前触发冷却倒计时重置。例如,在早晨 6:00 自动触发一次,那么到上午 11:00 你的冷却时间就已经全部重置,正好可以衔接你的工作时段。这样操作下来,一天能用满 3 轮 5 小时的额度。
可以使用 Python 的
schedule库编写一段简洁的定时脚本,在后台运行它即可实现自动化重置:import subprocess import time from datetime import datetime import schedule def trigger_cooldown_reset(): print(f"[{datetime.now()}] 正在自动触发倒计时重置...") try: # 调用 CLI 命令发送轻量查询以提前激活重置 result = subprocess.run( ["agy", "--model", "gemini-3.5-flash-low", "--print", "Only return Hello World"], capture_output=True, text=True, check=True ) print("触发成功,命令输出:", result.stdout.strip()) except Exception as e: print(f"触发失败,错误原因: {e}") if __name__ == "__main__": # 每天在固定时段自动触发重置,确保一天的 3 个使用周期无缝衔接 schedule.every().day.at("06:00").do(trigger_cooldown_reset) schedule.every().day.at("11:01").do(trigger_cooldown_reset) schedule.every().day.at("16:02").do(trigger_cooldown_reset) print("定时重置服务已运行...") while True: schedule.run_pending() time.sleep(1)
参考文献
- Gemini. (2026). Antigravity AI Agentic Coding Best Practices: Developer Guide. Google DeepMind.
