实测 Agent Skills:用 SKILL.md 一次编写,在 AI IDE 与 Antigravity 全网通用
1. 先搞清楚 Agent Skills 到底解决什么问题Agent Skills 是给 AI Agent 配置的一份“最佳实践手册”核心载体就是一个文件夹加一个SKILL.md文件。它能做什么简单说把你反复纠正 AI 的那套流程固化成可复用的技能包让 Agent 在特定任务上稳定按你的标准执行。适合谁适合那些已经在用 AI IDE、CLI Agent 或类似 Antigravity 这类 agent-first 工具并且希望“一次编写、多端复用”的开发者。我试过最典型的场景是发票去重直接让多模态模型看图找重复它会用视觉相似度去匹配结果把背景相同但交易号完全不同的发票判成重复。后来我把“OCR 提取交易号 → 正则匹配 20-30 位数字 → 模糊匹配容错 → 分组输出”这套流程写进SKILL.md同一个技能在 Claude Code、Codex、Antigravity 上都能触发输出结果一致。这就是 Agent Skills 的价值把正确路径写死把错误路径封死而不是每次临场靠 prompt 纠正。这篇文章聚焦跨工具复用用同一份SKILL.md在 AI IDE 与 Antigravity 中验证能否直接加载运行。我会给出目录骨架、TaoToken 统一 Key/API 通道的config.toml配置片段以及逐工具的加载与调用验证动作。你跟着做就能得到一份可提交 git、团队 clone 即用的技能包。2. TaoToken 前置统一 Key 与 API 通道多端复用最大的摩擦不是SKILL.md本身而是每个工具都要单独配模型接入。TaoToken 在这里的作用是提供统一的 API 通道和 Key让 Claude Code、Codex、Antigravity 这类工具共用同一套接入配置减少重复填 Key、换 base_url 的麻烦。你需要先拿到一个可用的 API Key。访问控制台创建https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite创建后复制 Key形如sk-xxxxxxxx。接入文档在这里包含各工具的 base_url 与参数说明https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite注意API 地址统一用https://taotoken.net/api不要带 UTM 参数拼到 API 请求里UTM 只用于页面跳转统计。如果你主要做长期编码或 Agent 任务可以了解 Coding Plan它更适合高频调用场景https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite想先验证模型对话是否通用模型对话页面快速测一条https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite3. SKILL.md 目录骨架与可复制配置3.1 目录结构Antigravity 支持两种 Skills项目级放在workspace-root/.agent/skills/skill-folder/全局放在~/.gemini/antigravity/skills/skill-folder/。项目级可以提交 git团队 clone 后自动获得。下面是一个通用骨架AI IDE 侧也按同样结构组织my-project/ ├── .agent/ │ └── skills/ │ └── invoice-dedup/ │ ├── SKILL.md │ ├── references/ │ │ └── ocr-rules.md │ └── scripts/ │ └── extract_txn.py └── config.toml3.2 SKILL.md 内容模板SKILL.md开头是 YAML 元数据正文是具体指令。元数据里的name和description决定 Agent 能否正确识别与触发--- name: invoice-dedup description: 通过 OCR 提取交易号来识别重复发票。当用户上传多张发票截图并询问是否有重复时调用。 --- ## 怎么用 1. 对每张发票图片执行 OCR提取全部文本。 2. 用正则提取交易号规则为 20-30 位连续数字。 3. 对提取结果做模糊匹配容忍 OCR 误差允许 1-2 位差异。 4. 按交易号分组输出重复发票的文件名与交易号。 ## 输出格式 返回纯 JSON 数组每项包含 txn_id 和 files不要包裹 markdown 代码块。3.3 config.toml 统一接入片段把模型接入统一到 TaoToken工具侧只改 base_url 和 api_key。下面是一个可复制的config.toml片段[llm] provider openai-compatible base_url https://taotoken.net/api api_key sk-你的Key model claude-opus-4-5 timeout 120 [agent] skills_dir .agent/skills auto_load true提示model字段按你实际可用的模型名填写不同工具对模型名的映射略有差异以接入文档为准。4. 逐工具加载与调用验证4.1 Antigravity 加载验证把技能包放到项目根目录的.agent/skills/下启动 Antigravity 对话。它会扫描所有可用 skills匹配任务后自动加载。你也可以明确指定用 invoice-dedup 帮我检查这批发票有没有重复验证是否加载成功观察它是否按SKILL.md的步骤执行而不是自由发挥视觉匹配。如果它跳过了 OCR 直接看图说明description写得不够明确需要补上触发条件。4.2 AI IDE 侧加载验证AI IDE 侧同样把.agent/skills/放在工作区根目录确保config.toml的skills_dir指向正确路径。发起一次调用请加载 invoice-dedup 技能处理 uploads/ 下的发票图片成功时你会看到它先调用 OCR再走正则提取最后输出 JSON。失败时常见的是技能未被识别此时检查SKILL.md的 YAML 是否合法name是否与调用名一致。4.3 跨端一致性检查同一份SKILL.md在两个工具上跑完后对比输出结构。重点看三点是否正确解析 YAML frontmatter、是否输出纯 JSON、是否真实生成文件。可以用下面的命令检查落盘结果ls -la output/ cat output/duplicates.json | python -m json.tool如果python -m json.tool报解析错误说明 Agent 输出了多余的解释文字或 markdown 代码块需要在SKILL.md里强化“纯 JSON、无代码块”的约束。5. 本篇常见错排查技能不触发最常见原因是description太模糊。它需要写清楚“在什么场景下调用、能做什么”。比如“处理发票”不如“当用户上传多张发票截图并询问是否有重复时调用”。YAML 解析失败SKILL.md开头的---必须成对出现name和description的冒号后要有空格。缩进用空格不用 Tab。输出带 markdown 代码块在SKILL.md的输出格式章节明确写“不要包裹 markdown 代码块”并给出纯 JSON 示例。文件没落盘检查技能目录是否有写权限以及SKILL.md里是否明确要求“创建文件”而非仅“返回内容”。多端行为不一致优先检查各工具的config.toml是否都指向https://taotoken.net/api模型名是否映射正确。接入问题看文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewriteKey 无效或额度问题到控制台确认 Key 状态https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite6. 把技能包用起来一次编写、多端复用的关键是把SKILL.md当成团队资产来维护。项目级技能提交 git 后新成员 clone 即得不需要口头传授流程。全局技能放在~/.gemini/antigravity/skills/下本机所有项目都能调用。如果你还在选长期编码方案Coding Plan 对高频 Agent 调用更友好https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite想快速验证某个模型在技能场景下的表现用模型对话页面测一条最短路径https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewriteClaude Code 相关接入参考https://taotoken.net/claude-code?utm_sourcetaotoken_aicg_blog_endutm_contentclaude_codeutm_campaignrewrite我的建议是先从一个你每天都在重复纠正 AI 的小任务开始写成SKILL.md在 Antigravity 和你的 AI IDE 上各跑一遍。跑通后再逐步加references/和scripts/。技能包不在多在于每个都真正封住了一条错误路径。