本来一个月前就想基于Claude Code创始人Boris Cherny公开的他使用Claude Code的方法来写一篇文章,但是无奈中间并行做几个项目,所以一直没有写完。 刚好今天发现Google的Antigravity支持了Agent Skill,那就一起把这篇文章写了。文章有点长,建议收藏了,在电脑上慢慢看。
因为我最近薅了Google的羊毛,所以这篇实践主要基于Antigravity来写,大致内容如下:
-
在Antigravity中如何使用Agent Skill
-
如何使用Antigravity Tool反向代理Antigravity中的 Claude 模型,实现低成本使用Claude Code
-
实践Boris Cherny的Claude Code用法
-
Codex使用对比
0. 模型+IDE能力对比
| 模型 | IDE | 优势 | 劣势 | 工具支持 |
|---|---|---|---|---|
| Germini 3 Pro | Antigravity | Web UI审美强,发散能力强 | 逻辑能力差 | SkillsMCP |
| Claude | Antigravityor 反向代理 | 逻辑能力强,免费 | 上下文受限,每小时用量受限 | SubAgentsSkillsMCP |
| Claude | Claude Code | 逻辑能力强 | 贵,每小时用量受限 | SubAgentsSkillsMCP |
| Codex | VSCode | 长任务基本不会出错,每小时用量限制很大 | 运行速度慢 | MCP |
一、Antigravity如何使用Skills
- Antigravity文档:
antigravity.google/docs/skills
- 基于Antropic家开源的skill库来搭建
将项目Clone到本地,然后选择你需要的skill,拷贝到项目中,我这里就拷贝了用来创建skill的skill,可以称之为 Meta Skill :)
cp -R skills/skills/skill-creator caligula/.agent/skills
在Antigravity中发送Prompt,让他帮我创建一个可以生成自动化测试的skill
“将生成单元测试脚本功能,生成一个 agent skill,保证后续新写完一个需求,可以直接生成对应的自动化单元测试。”
使用起来很方便,然后我就可以基于我新生成的这个Skill来为我的项目生成测试用例了。
二、使用Antigravity Tool反向代理Antigravity中的Claude模型
1. 下载安装 Antigravity Tool
2. 通过网页OAuth 登录账号
登录成功之后就可以看到当前各个模型的额度了
3. 在Claude Code中通过配置代理,来使用反向代理的Claude模型
export ANTHROPIC_API_KEY="sk-antigravity"export ANTHROPIC_BASE_URL="http://127.0.0.1:8045"claude
三、实践Boris Cherny的Claude Code用法
1. 终端多开并行在终端中并行运行 5 个 Claude 实例。将标签页编号为 1-5,并使用系统通知来获知哪个 Claude 需要输入。
2. 本地与 Web 端联动除了本地的 Claude,在claude.ai/code上并行运行 5-10 个 Claude 实例。在终端写代码时,我经常会将本地会话移交(handoff)给 Web 端(使用 & 符号),或者手动在 Chrome 中启动会话,有时也会使用 --teleport 在两者间来回切换。此外,我每天早晨和全天都会通过手机(Claude iOS 应用)启动几个会话,稍后再进行查看。
3. 全程使用 Opus 4.5 (Thinking 模型)我做所有事情都使用带思考功能(Thinking)的 Opus 4.5。这是我用过的最好的编码模型,尽管它比 Sonnet 更大且更慢,但因为你需要引导它的次数更少,且它更擅长使用工具,最终它几乎总是比使用较小的模型更快。
4. 团队共享 CLAUDE.md我们团队为 Claude Code 仓库共享同一个 CLAUDE.md 文件。我们将其提交到 git 中,整个团队每周都会多次贡献内容。每当我们看到 Claude 做错了什么,就会将其添加到 CLAUDE.md 中,这样 Claude 下次就知道不要再犯了。其他团队维护他们自己的 CLAUDE.md,保持更新是每个团队的职责。
5. 代码审查中的自动更新在代码审查(Code Review)期间,我经常会在同事的 PR(Pull Request)中 @.claude,作为 PR 的一部分向 CLAUDE.md 添加内容。我们使用 Claude Code Github Action (/install-github-action) 来实现这一点。这就是我们要打造的“复利工程”(Compounding Engineering)版本。
6. 计划模式 (Plan Mode) 启动大多数会话都以“计划模式”开始(按两次 shift+tab)。如果我的目标是编写一个 Pull Request,我会使用计划模式,并与 Claude 反复沟通,直到我满意它的计划为止。之后,我会切换到“自动接受编辑”模式,Claude 通常可以一次性搞定(1-shot it)。一个好的计划真的非常重要。
7. 使用斜杠命令处理高频工作对于每天要执行多次的每一个“内循环”工作流,我都使用斜杠命令(Slash commands)。这省去了重复的提示词输入,并让 Claude 也能使用这些工作流。命令被提交到 git 并保存在 .claude/commands/ 中。例如,Claude 和我每天使用几十次 /commit-push-pr 命令。该命令使用内联 bash 预先计算 git 状态和其他几条信息,以使命令快速运行并避免与模型来回对话。
8. 常驻子智能体 (Subagents)我定期使用几个子智能体:code-simplifier 在 Claude 完成工作后简化代码,verify-app 包含用于端到端测试 Claude Code 的详细指令等等。与斜杠命令类似,我将子智能体视为自动化我在大多数 PR 中执行的最常见工作流的方式。
9. 代码格式化钩子我们使用 PostToolUse 钩子来格式化 Claude 的代码。Claude 通常开箱即能生成格式良好的代码,而这个钩子负责处理最后 10% 的细节,以避免后续在 CI(持续集成)中出现格式错误。
10. 权限管理我不用 --dangerously-skip-permissions(危险地跳过权限)。相反,我使用 /permissions 预先允许我知道在我的环境中是安全的常见 bash 命令,以避免不必要的权限提示。其中大多数都提交在 .claude/settings.json 中并与团队共享。
11. 全工具集成Claude Code 会为我使用所有工具。它经常(通过 MCP 服务器)搜索并发布到 Slack,(使用 bq CLI)运行 BigQuery 查询以回答分析问题,从 Sentry 获取错误日志等。Slack MCP 配置被提交到我们的 .mcp.json 中并与团队共享。
12. 处理耗时任务对于运行时间很长的任务,我会 (a) 提示 Claude 在完成后使用后台智能体验证其工作,(b) 使用智能体 Stop 钩子更确定性地执行此操作,或 (c) 使用 ralph-wiggum 插件。我也会在沙箱中使用 --permission-mode=dontAsk 或 --dangerously-skip-permissions,以避免会话出现权限提示,这样 Claude 就可以在我无需干预的情况下“大展身手”。
13. 验证机制(至关重要)最后一条建议:要从 Claude Code 获得出色结果,最重要的一点可能是——给 Claude 提供一种验证其工作的方法。如果 Claude 拥有这种反馈循环,最终结果的质量将提高 2-3 倍。Claude 使用 Claude Chrome 扩展程序测试我对claude.ai/code所做的每一次更改。它会打开浏览器,测试 UI,并不断迭代直到代码有效且用户体验良好。每个领域的验证看起来都不同。它可能就像运行 bash 命令一样简单,或者是运行测试套件,亦或是在浏览器或手机模拟器中测试应用程序。务必在构建稳固的验证机制上进行投入。
PS. 我之前写过的一篇介绍Claude Code使用技巧的文章,可以结合着看一下右边让Claude干活的同时,左边学习如何让Claude更好的干活
四、Codex使用对比
其实Codex没什么花里胡哨的工具,只要把任务交给他,他就会吭哧吭哧的写几十分钟到几个小时,基本上代码可以一次性跑通,是个比较可靠的伙伴。但是这个速度有的时候确实会让人抓狂,所以鉴于ChatGPT我一直在用,就当他是个附赠产品吧。
五、总结
最后的最后,我认为如何能做到30倍工程师,关键还是要有一套成熟的工作流,可以让AI自己检查自己的工作结果,并继续下一个任务。 所以web的自动化测试 和 后端的自动化单元测试至关重要!同时我也在开发适用于整个从需求到交付的软件开发Agent工作流,后续会分享出来,可以通过图片初步看一下: