news 2026/10/7 7:00:21

Google Antigravity 高级技巧:利用 Skills 打造可复用的 AI 工作流

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Google Antigravity 高级技巧:利用 Skills 打造可复用的 AI 工作流

1. 为什么你的 Antigravity 提示词总是「用完即弃」

如果你已经在用 Google Antigravity 写代码,大概率经历过这样的循环:打开对话框,敲一段精心组织的提示词,Agent 给出还不错的结果,关掉窗口,第二天遇到同类任务,又得从头把那段提示词重新拼一遍。拼的时候还经常漏掉几个关键约束,比如「用 Tailwind 而不是原生 CSS」「卡片要毛玻璃效果」「先给计划再动手」,结果输出质量忽高忽低。

这个问题的本质不是模型不行,而是你把「程序性知识」当成了「一次性对话」。Antigravity 的 Skills 特性就是来解决这件事的——它允许你把重复输入的提示词固化成 Agent 的「程序性记忆」,让 Agent 在特定任务场景下自动加载对应的标准作业程序(SOP)。

Skills 是什么、能做什么、适合谁:它是 Antigravity 项目内的一套目录约定,你在.agent/skills/下放 Markdown 文件,Agent 就会在合适的时机检索并学习其中的能力。它适合那些需要把重复性 AI 操作沉淀为可复用能力的开发者,尤其是前端页面生成、代码审查、文档撰写这类有固定套路的任务。相比 Rules 和 Workflow,Skills 的优势在于按需加载、模块化组织,不会把所有指令一股脑塞进上下文。

我试过把一套前端生成流程拆成「架构师」和「艺术家」两个角色文件,Agent 的输出稳定性和专业度明显上了一个台阶。下面把这套方法完整拆给你。

2. TaoToken 前置:给 Antigravity 配一个稳定的模型入口

Antigravity 本身是编辑器侧的 Agent 框架,它需要调用底层大模型来完成推理。如果你直接用官方默认通道,在国内网络环境下经常遇到超时、限流、响应中断的问题,Agent 的思考流跑到一半断了,Skills 加载得再完美也白搭。所以第一步是把模型入口配稳。

TaoToken 在这里扮演的角色是统一的模型接入层,它提供 OpenAI 兼容的 API 格式,Antigravity 里凡是需要填 Base URL 和 API Key 的地方,都可以指向它。官网地址是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 端点是 https://taotoken.net/api ,注意 API 地址后面不加任何 UTM 参数,直接写这个就行。

你需要准备三样东西,我把它叫做「三件套」:

配置项填写内容说明
Base URLhttps://taotoken.net/api不要带末尾斜杠,不要加 UTM
API Key在控制台创建的 Key以sk-开头的一串字符
Model ID例如claude-sonnet-4-20250514按你订阅的模型填写

获取 Key 的路径是:先访问官网注册登录,然后进入控制台,在 API Keys 页面创建一个新的 Key。控制台地址是 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API Keys 管理页是 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。创建时建议给 Key 起一个能识别的名字,比如antigravity-dev,方便后续排查是哪个环境在用。

如果你用的是 Claude Code 这类命令行工具配合 Antigravity,配置方式略有不同,需要设置环境变量。Claude Code 的接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,里面有完整的 Base URL 和 Key 配置说明。对于长期做编码和 Agent 任务的场景,可以考虑 Coding Plan,地址是 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,它针对高频编码调用做了额度优化。

配好之后先别急着写 Skills,用一次最简单的对话验证通道是否通。打开模型对话页面 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,发一句「你好,请回复当前模型名称」,能正常返回就说明 Key 和模型 ID 没问题。这一步很重要,因为后面 Skills 调试时如果出问题,你需要先排除是模型通道的问题还是 Skills 配置的问题。

3. 可复制配置:Skills 目录结构与 settings 片段

Skills 的核心在于目录约定。Antigravity 会在项目根目录下寻找.agent/skills/目录,每个子目录代表一个独立的 Skill,入口文件固定叫SKILL.md。Agent 在对话时会根据当前任务和打开的文件,自动判断是否加载某个 Skill。

先看目录结构,这是我实测下来最清晰的一种组织方式:

your-project/ ├── .agent/ │ └── skills/ │ └── frontend-composer/ │ ├── SKILL.md # 入口:协调任务与角色切换 │ ├── layout-architect.md # 架构师:HTML 结构与布局规范 │ └── style-artist.md # 艺术家:CSS 风格与视觉规范 ├── src/ └── package.json

注意.agent目录是隐藏目录,在 macOS/Linux 下用ls -a才能看到,Windows 下需要在文件管理器里开启「显示隐藏文件」。创建命令如下:

mkdir -p .agent/skills/frontend-composer touch .agent/skills/frontend-composer/SKILL.md touch .agent/skills/frontend-composer/layout-architect.md touch .agent/skills/frontend-composer/style-artist.md

接下来是三个文件的内容。SKILL.md是主入口,它不负责具体细节,只负责告诉 Agent「什么时候用哪个角色」:

--- name: frontend-composer description: 生成高质量前端页面,采用架构师+艺术家双角色协作 --- # Frontend Composer Skill 当用户要求创建或修改前端页面时,按以下流程执行: ## 执行原则 1. Planning First:先输出实施计划,等待用户确认后再写代码 2. 关注点分离:结构问题交给架构师,视觉问题交给艺术家 3. 不要一次性输出全部代码,分阶段交付 ## 角色调度 - Phase 1 结构分析:加载 `layout-architect.md`,设计 HTML 语义结构与响应式布局 - Phase 2 美学注入:加载 `style-artist.md`,应用视觉风格与设计规范 ## 技术栈约定 - 默认使用 Tailwind CSS - 组件粒度:每个可复用区块独立成组件 - 响应式断点:sm / md / lg / xl

layout-architect.md定义结构规范:

# Layout Architect ## 职责 负责 HTML 语义化、组件划分、响应式布局。 ## 硬性要求 - 使用语义标签:header / nav / main / section / article / footer - 布局优先用 CSS Grid,局部用 Flex - 移动端优先,断点向上适配 - 表单元素必须有关联的 label ## 输出格式 先给出组件树,再给出每个组件的 HTML 骨架。

style-artist.md定义视觉规范,这里以玻璃拟态为例:

# Style Artist ## 职责 负责视觉风格、配色、动效、设计细节。 ## 设计语言:Glassmorphism - 背景:紫色渐变,从 #667eea 到 #764ba2 - 卡片:backdrop-blur-md,背景 rgba(255,255,255,0.1) - 边框:1px solid rgba(255,255,255,0.2) - 圆角:rounded-2xl - 阴影:shadow-xl,带轻微彩色投影 ## 动效 - hover 时卡片上浮 2px,过渡 200ms - 按钮点击有 scale(0.98) 反馈

如果你用的是支持 JSON 配置的工具链(比如某些 MCP 客户端或 Codex 的auth.json),可以把模型入口写成配置文件。Codex 的auth.json典型结构如下,路径通常在~/.codex/auth.json:

{ "base_url": "https://taotoken.net/api", "api_key": "sk-你的Key", "model": "claude-sonnet-4-20250514" }

Cline 的 MCP 配置则写在cline_mcp_settings.json里,Base URL、Key、Model ID 三件套一个都不能少:

{ "mcpServers": { "taotoken": { "baseUrl": "https://taotoken.net/api", "apiKey": "sk-你的Key", "model": "claude-sonnet-4-20250514" } } }

CC Switch 用户注意,切换配置时确认 Base URL 没有多余斜杠,Key 没有前后空格,Model ID 拼写和订阅列表完全一致。这三处是最高频的出错点。

4. 验证请求:观察 Agent 的思考流与 Artifacts

配置写完之后,必须验证 Skills 是否真的被加载。Antigravity 的一个好处是它会展示 Agent 的思考流(Thought Process),你可以直接看到它有没有读取你的 Skill 文件。

验证步骤我拆成四步:

第一步,在 Antigravity 中打开项目,确保.agent/skills/frontend-composer/SKILL.md这个文件处于打开状态。Agent 会优先感知当前打开的文件,这是触发 Skill 加载的一个信号。

第二步,在对话框输入指令,并且明确要求只做计划:

创建一个登录页,只输出工作计划,不要直接写代码。

第三步,观察 Thought 日志。正常情况下你会看到类似这样的思考过程:

Agent Thought: 用户希望创建一个登录页。 当前打开的是 SKILL.md 文件,这是一个 frontend-composer 技能。 根据技能要求,我需要: 1. 先查看 SKILL.md 了解调度规则 2. 加载 layout-architect.md 设计结构 3. 加载 style-artist.md 应用视觉 4. 生成 implementation_plan.md 供用户审核

如果 Thought 里完全没有提到 Skill 文件,说明加载失败,跳到第 5 节排查。

第四步,检查 Artifacts。Agent 应该生成一份实施计划,里面明确引用你的子技能文件。一份合格的计划长这样:

# Implementation Plan: 登录页 ## Phase 1: 结构分析 (The Architect) 基于 layout-architect.md: - 组件树:LoginPage > LoginCard > (Logo, Form, Footer) - 使用语义标签 form / label / input - 移动端优先,md 断点居中 ## Phase 2: 美学注入 (The Artist) 基于 style-artist.md: - 紫色渐变背景 #667eea → #764ba2 - 毛玻璃卡片 backdrop-blur-md - Tailwind CSS 实现

看到这份计划,就说明 Skills 生效了。Agent 不仅读到了入口文件,还正确加载了两个子角色文件,并且遵守了「Planning First」的约束。接下来你确认计划,它才会进入编码阶段。

这里有个细节值得注意:计划里明确写了「紫色渐变背景 + 毛玻璃卡片」和「Tailwind CSS」,这说明 LLM 真的理解了style-artist.md里的设计规范,并把它转换成了可执行的代码约束,而不是随便糊一个默认样式。这就是 Skills 相比普通提示词的价值——规范被固化,每次输出都对齐同一套标准。

5. 本篇常见错排查:401、local proxy failed 与 OAuth 报错

Skills 配置过程中,报错基本集中在模型通道和文件加载两类。下面按真实报错逐个拆。

401 Unauthorized。这是最常见的,九成是 Key 的问题。先检查 Key 有没有复制完整,前后有没有空格。然后确认 Key 对应的账户额度是否正常,在控制台 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 可以看到每个 Key 的状态。如果 Key 没问题,检查 Base URL 是不是写成了https://taotoken.net/api/(多了末尾斜杠),有些客户端对斜杠敏感,去掉即可。

local proxy failed / connection refused。这个报错通常出现在你本地配了代理层的情况下。Antigravity 或命令行工具尝试连接本地代理端口失败。排查顺序:先确认 Base URL 直接指向https://taotoken.net/api,不要经过任何本地转发;再检查环境变量里有没有残留的HTTP_PROXY/HTTPS_PROXY,有的话临时清掉再试:

unset HTTP_PROXY unset HTTPS_PROXY

reading choices 报错 / 返回体解析失败。典型表现是 Agent 收到响应但解析不出内容,日志里出现reading 'choices'或undefined is not an object。这多半是 Model ID 填错了,或者该模型不在你的订阅范围内。回到控制台核对模型列表,把 Model ID 改成完全一致的字符串。另外确认请求走的是 OpenAI 兼容格式,TaoToken 的/api端点支持这个格式。

OAuth 相关报错。如果你用的是 Claude Code 配合 Antigravity,可能会遇到 OAuth token 过期或回调失败。Claude Code 的接入方式不走 OAuth,而是走 API Key,参考文档 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 重新配置环境变量即可。如果之前登录过官方账号,先清理旧的凭证缓存再配 Key。

Skill 不加载。Thought 日志里完全没提 Skill 文件。检查三点:.agent/skills/目录名拼写是否正确(注意是.agent不是agent);SKILL.md文件名是否全大写;YAML frontmatter 的---是否闭合。还有一个容易忽略的点:确保你在对话时打开的是 Skill 目录下的文件,Agent 对当前打开文件的感知是触发加载的重要信号。

Skill 加载了但没遵守约束。Agent 读了文件但输出还是老样子。这通常是SKILL.md里的指令太模糊,比如只写了「生成好看的页面」而没有可执行的判断条件。把约束写成明确的动作,比如「先输出计划再写代码」「使用 Tailwind 的 backdrop-blur-md 类」,越具体越容易被遵守。

6. 把 Skills 用起来:从单次提示到可复用工作流

Skills 真正的价值不在于省几次打字,而在于它把你的工程经验变成了项目资产。一套调好的 Skill 可以跟着仓库走,团队里任何人拉下代码,Agent 的行为都是一致的。新同学不需要知道「我们团队的前端规范是什么」,Agent 会自动按 Skill 里的标准执行。

回到最开始那个「架构师 + 艺术家」的例子,这套结构可以继续扩展。比如加一个accessibility-auditor.md负责无障碍检查,加一个performance-optimizer.md负责打包体积和加载性能。每个文件只关心一件事,Agent 按阶段调度,上下文不会被无关信息污染。

如果你想把 Skills 和更长期的编码任务结合,可以考虑 Coding Plan,地址是 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,它适合那种需要 Agent 持续参与、反复迭代的项目。日常验证模型响应是否正常,用模型对话页面 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 就够了。接入配置的完整说明在文档 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,遇到通道问题先翻文档再排查。

最后给一个实用建议:每次调好一个 Skill,在SKILL.md顶部用注释记下版本和修改原因。比如<!-- v2: 增加 Planning First 约束,修复 Agent 直接写代码的问题 -->。这样几个月后回头看,你知道每个约束是为了解决什么坑,而不是对着一堆规则发懵。Skills 是活的,跟着项目一起演进才有意义。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/7 7:00:11

claude-mem 记忆层实战:写入、存储、检索、注入四段式架构

1. 从“聊完就忘”说起&#xff1a;claude-mem 到底想解决什么如果你用 Claude 这类对话式 AI 做过稍微长一点的项目&#xff0c;大概率遇到过这种尴尬&#xff1a;昨天聊了三个小时&#xff0c;把需求、约束、命名规范、踩过的坑都对齐了&#xff0c;今天开个新会话&#xff0…

作者头像 李华
网站建设 2026/10/7 6:58:54

数学艺术图案画-曼陀罗(96)

数学艺术图案画&#xff0d;曼陀罗&#xff08;96&#xff09; 本系列曼陀罗图案创制一直以来都是我的最爱。我总是被色彩绚烂和美轮美奂的图案感动。 在前些时候完成了曼陀罗图案系列 9 轮既定目标&#xff0c;&#xff08; 图1&#xff09;至&#xff08; 图 90&#xff09;。…

作者头像 李华
网站建设 2026/10/7 6:58:16

Web2App事件回传与归因:链路、优化目标和排查清单

Web2App 链路的关键&#xff0c;是从广告点击、链接中转、App Store 到 App 内事件&#xff0c;能够衔接到当前投放 campaign。后台能看到事件&#xff0c;并不等于当前优化目标已经在使用这些事件。这篇根据我的实投经历&#xff0c;先说明使用场景和测试成本&#xff0c;再梳…

作者头像 李华
网站建设 2026/10/7 6:57:25

血沉报告为什么越来越常见?聊聊全自动血沉分析仪

体检或住院化验单里&#xff0c;"血沉"往往只是一个带着箭头的单项。它既不能拿来确诊某一种疾病&#xff0c;也不是可有可无的摆设。想要读懂这项指标&#xff0c;先要知道它是怎么被测出来的——这比盯着箭头本身更有意义。关键词&#xff1a;什么是血沉。 血沉的正…

作者头像 李华
网站建设 2026/10/7 6:56:43

网工的最大底气,就是咱手里有技术

做网络工程师这些年,很多人都会经历一个阶段。 年轻的时候觉得技术就是本钱,交换机、路由器、防火墙、无线、服务器,什么都愿意学。碰到故障就上,碰到新设备就研究,晚上回家还会折腾实验环境。那时候虽然累,但心里其实挺踏实,因为自己会的东西越来越多。 等工作几年之…

作者头像 李华
网站建设 2026/10/7 6:56:06

Cadence Allegro镜像器件及模块:原理与实操全解

在 PCB 布局阶段&#xff0c;我遇到过不少这样的需求&#xff1a;某一块电源电路本来放在顶层&#xff0c;后来因为结构干涉、整机厚度或者其他模块的占位&#xff0c;需要整体翻到底层&#xff1b;或者一个连接器、一颗大封装器件&#xff0c;在布局评审时被要求“放到背面去”…

作者头像 李华