引言
在调研主流 Coding Agent 的过程中,我发现一个被严重低估的话题:这些工具的”扩展体系”之间差异巨大,但表面上都叫”Plugin”或”Extension”。
Claude Code 有 Plugin,Gemini CLI 有 Extension,Antigravity 有 Workflows + Skills + Rules——三者功能重叠,但实现方式、设计哲学、能力边界都不一样。
这篇文章的目标是:基于官方文档(而非二手资料),把这三套体系讲清楚。
一、历史背景:后来者如何追赶?
Claude Code Plugin 体系随主产品同步推出(2025年2月)。
Gemini CLI Extensions 发布于 2025年10月。InfoQ 的正式报道中直接将其与”Claude Code Plugin”并列对标,X 上有用户问”和 Claude Code 的插件有什么区别”,Google 工程师亲自解释架构差异。这不是巧合——这是一次明显的竞争驱动型产品响应。
结构对比:Gemini CLI Extension 从发布之初就支持 MCP + Commands + Skills,与 Claude Code Plugin 高度对齐。截至 2026 年 3 月,三者(含 Antigravity)已向同一终局高度收敛:MCP + Commands + Skills + Hooks + Agent 定义。
二、三方核心能力对比
数据来源:code.claude.com/docs/en/plugins(官方文档,2026-03 更新)、github.com/google-gemini/gemini-cli/docs/extensions(2026-03 更新)、antigravity.google/docs(v1.20.3, 2026-03-05)
| 功能 | Claude Code Plugin | Gemini CLI Extension | Antigravity |
|---|---|---|---|
| MCP Server | ✅ .mcp.json | ✅ gemini-extension.json | ✅ MCP Store + 自定义配置 |
| Slash Commands | ✅ Markdown 格式 + /create-* 系列 | ✅ TOML 格式 + 内嵌 Shell !{} | ✅ Workflows(可互相调用) |
| Agent Skills | ✅ SKILL.md(2.0:可编程平台) | ✅ SKILL.md | ✅ SKILL.md |
| Hooks(事件钩子) | ✅ 完整 GA(3 种类型) | ✅ 默认启用(2026-03 GA) | ❌ |
| 上下文文件 | ✅ CLAUDE.md | ✅ GEMINI.md | ✅ GEMINI.md + AGENTS.md(v1.20.3+) |
| Agent 读取 LSP 诊断 | ✅ .lsp.json plugin | ❌ | ✅ getDiagnostics tool(VS Code 原生) |
| 自定义 Agent | ✅ .agent.md | ✅ subagent(实验性,Markdown 定义) | ✅ AGENTS.md(v1.20.3+) |
| AI 自动生成配置 | ✅ /create-hook、/create-agent 等 | ❌ | ✅ Workflow 可由 AI 生成 |
| 图形化管理 | 命令行 | 命令行 + /hooks panel | ✅ GUI 面板 |
| 密钥安全存储 | ❌ | ✅ 系统密钥链 | ❌ |
| 分发机制 | 去中心化 git repo | git repo + 官方 Gallery(100+ 扩展) | N/A |
三、Claude Code Plugin 深度解析
目录结构
my-plugin/
├── .claude-plugin/
│ └── plugin.json # manifest(name/version/author)
├── commands/ # Markdown 格式的用户命令
├── skills/ # SKILL.md 模型自动调用
│ └── code-review/
│ └── SKILL.md
├── agents/ # 自定义 Agent 定义
├── hooks/
│ └── hooks.json # 事件钩子
├── .mcp.json
├── .lsp.json # LSP Server(给 CLI agent 注入语言服务器能力)
└── settings.json # 默认激活的 Agent
Hooks 机制
Claude Code 的 Hooks 让你在 agent loop 的特定时刻注入逻辑,控制 agent 行为:
| 事件 | 触发时机 | 典型用途 |
|---|---|---|
PreToolUse | 工具调用之前 | 拦截危险操作、参数验证 |
PostToolUse | 工具调用之后 | 自动 lint、格式化、记录日志 |
Stop | Agent 完成时 | 发送通知、提交报告 |
Notification | Agent 发出通知时 | 二次处理通知内容 |
// hooks/hooks.json 示例:写文件后自动 lint
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }
]
}
]
}
}
三种 Hook 类型(2026-03 更新):
command:确定性,执行 shell 命令,输入/输出可预期prompt:灵活,用 LLM 处理 Hook 输入,适合复杂判断逻辑agent(新增):启动完整 sub-agent,拥有独立 tool 访问权限,可执行多步操作(如代码审查、文档生成)
此外,Claude Code 新增了 /create-hook 命令,可以在对话中直接生成 hook 配置,无需手动编写 JSON。类似的还有 /create-agent、/create-skill、/create-prompt、/create-instruction。
Skills 2.0(2026-03 重大升级)
Claude Code 的 Skills 从「纯指令文件」进化为「可编程 agent 平台」:
- 可 spawn 隔离 sub-agent,拥有独立 context
- Shell 命令可注入 live data 到 prompt(类似 Gemini CLI 的
!{}语法) - 可限制 tool 使用和 override 模型
- 可与 lifecycle events 集成
- 可在 forked context 中运行,不污染主会话
SKILL.md 格式仍然保持跨工具兼容,但 Claude Code 的 Skills 执行能力已远超其他两家。
LSP Server(CLI 环境的独特补偿)
由于 Claude Code 是 CLI 工具、没有 IDE 环境,通过 .lsp.json plugin 主动接入语言服务器(gopls / pyright / rust-analyzer 等),给 agent 提供实时类型检查和代码符号引用——本质上是把 IDE 才有的语义理解能力「搬进」了终端。
对比注意:Antigravity 作为 VS Code fork 天然内置 LSP 支持(装语言插件即可),且 agent 可通过
getDiagnosticstool 读取编辑器诊断信息。Claude Code 的.lsp.json不是「独有优势」,而是「CLI 环境的必要补偿」。
Marketplace 模型
完全去中心化:任意 git repo 可成为 Marketplace,团队内部 repo 做私有 Marketplace,无需注册或审批。
四、Gemini CLI Extension 深度解析
目录结构
my-extension/
├── gemini-extension.json # manifest(name/version/mcpServers/settings)
├── example.js # MCP Server 实现(Node.js)
├── package.json
├── GEMINI.md # 永久注入模型上下文
├── commands/ # TOML 格式命令
│ └── fs/
│ └── grep-code.toml
├── skills/
│ └── security-audit/
│ └── SKILL.md
└── hooks/ # 2026-02 加入规范,2026-03 默认启用
TOML 命令格式的独特优势
Gemini CLI 的命令用 TOML 格式,支持内嵌 Shell 命令结果(!{cmd} 语法):
# commands/fs/grep-code.toml
prompt = """
Please summarize the findings for the pattern `{{args}}`.
Search Results:
!{grep -r {{args}} .}
"""
!{grep -r {{args}} .} 会在发送给模型之前,先在本地执行 grep 命令,把结果注入 prompt。这是 Claude Code Markdown 命令格式做不到的。
密钥安全存储(Gemini 独有)
// gemini-extension.json 中的 settings 字段
{
"settings": [
{
"name": "API Key",
"envVar": "MY_SERVICE_API_KEY",
"sensitive": true // 存入系统密钥链,不以明文保存
}
]
}
用户安装扩展时,Gemini CLI 自动提示输入密钥,存入系统密钥链,以环境变量注入 MCP Server 进程。Claude Code Plugin 目前没有等价机制。
Hooks(已默认启用)
Gemini CLI Hooks 于 2026-02-17 正式加入规范,截至 2026-03 已默认启用(GA 状态),官方描述:
“Use this when you want to automate actions based on what the model is doing, like validating tool arguments, logging activity, or modifying the model’s input/output.”
功能覆盖与 Claude Code Hooks 相近(工具调用前后注入逻辑)。新增管理能力:
/hooks panel可查看所有已配置的 hooks- 支持
enable/disable命令动态启停 - Hook 指纹安全验证:CLI 会对项目 hooks 做指纹校验,如果 hook 的名称或命令被篡改,会警告用户——对不信任的项目尤为重要
五、Antigravity 的扩展体系:不叫”Plugin”,但持续对齐
Antigravity 没有独立的”Plugin”或”Extension”概念,但通过四层体系 + AGENTS.md实现了同等功能:
AGENTS.md(v1.20.3 新增,2026-03-05)
Antigravity 从 v1.20.3 起支持从 AGENTS.md 文件读取 agent 配置和规则,与 GEMINI.md 并列。这意味着 Antigravity 正式加入了 .agents/ 目录标准阵营——GitHub Copilot、VS Code Agent Mode 同样采用此格式。
这使得跨工具复用 agent 定义成为可能:同一个 AGENTS.md + .agents/ 目录结构可以被 Antigravity、Copilot、VS Code 等多个工具读取。
层级一:Rules(持久化上下文约束)
对应 CLAUDE.md / GEMINI.md,但激活模式更精细:
| 激活模式 | 触发条件 |
|---|---|
| Manual | 在 Agent 输入框 @mention 手动触发 |
| Always On | 每次会话自动注入 |
| Model Decision | Agent 根据自然语言描述自行判断是否激活 |
| Glob | 匹配特定文件时自动激活(如 *.ts 文件时注入 TypeScript 规范) |
存储位置:Global(~/.gemini/GEMINI.md)+ Workspace(.agents/rules/)
层级二:Workflows(多步骤自动化)
对应 Claude Code 的 Commands / Gemini CLI 的 TOML 命令,但有独特能力:
- Markdown 文件,
/workflow-name触发 - 支持 Workflow 互相调用:
/wf-1中可触发/wf-2,链式编排复杂任务 - AI 自动生成:对话后让 Agent 根据历史对话自动创建 Workflow
层级三:Skills(专项能力包)
基于开放标准 agentskills.io,SKILL.md 格式与 Claude/Gemini 一致——这是三款工具唯一完全统一的能力层。
存储位置:Workspace(.agents/skills/)+ Global(~/.gemini/antigravity/skills/)
层级四:MCP Store(工具/数据集成)
图形化 MCP 管理面板,内置 35+ 官方集成:
| 类别 | 代表集成 |
|---|---|
| 数据库 | Supabase / Neon / MongoDB / BigQuery / Spanner / Redis |
| 云平台 | Firebase / Heroku / Netlify |
| 项目管理 | Linear / Notion / Atlassian |
| 代码 & AI | GitHub / SonarQube / Perplexity Ask |
| 设计 & 支付 | Figma / Stripe / PayPal |
支持通过 “Manage MCP Servers” → “View raw config” 接入任意自定义 MCP server。
六、Antigravity 缺什么?
诚实说:缺 Hooks。
Hooks 是 Claude Code 和 Gemini CLI 都已 GA 的核心能力——能在 agent 行为链路中注入质量门控(比如写完代码后自动跑 lint,或在读取敏感文件前拦截确认)。Antigravity 目前没有等价机制,这是真实的能力短板。
Antigravity 的补偿方式:
- GUI 操作门槛更低(无命令行)
- Workflow 可 AI 自动生成
- Rules 的 Glob 激活模式可做上下文精准注入
AGENTS.md+.agents/目录实现跨工具 agent 定义复用
但核心问题不变:无法拦截 agent 的工具调用行为。
七、选什么用什么?一句话总结
| 场景 | 推荐 |
|---|---|
| 企业级质量门控(写后自动 lint/test/安全扫描) | Claude Code Hooks(3 种类型,含 agent hook) |
| 高级 Skills 编排(sub-agent、tool 限制、model override) | Claude Code Skills 2.0 |
| CLI 环境需要语义代码理解 | Claude Code LSP Plugin |
| IDE 环境 + Agent 读取诊断 | Antigravity(VS Code 原生 LSP + getDiagnostics) |
| 需要密钥安全存储的扩展分发 | Gemini CLI Extension(sensitive 字段) |
| 丰富的扩展生态 + 社区 | Gemini CLI Gallery(100+ 扩展) |
| 快速低门槛的团队自动化工作流 | Antigravity Workflows |
| 跨工具 Agent 定义复用 | .agents/ + AGENTS.md(Antigravity / Copilot / VS Code 通用) |
| 通用能力沉淀(Skills),与工具无关 | 三者均可,SKILL.md 格式相同 |
结语
三套体系在 2026 年 3 月已高度收敛:MCP + Commands + Skills + Hooks + Agent 定义,是所有工具都在迈向的标准结构。
真正的差距在深度和形态:Claude Code 用 .lsp.json 补偿了 CLI 缺少 IDE 的短板,同时以 3 种 Hooks 类型和 Skills 2.0 可编程平台建立了扩展体系的深度优势;Gemini CLI 以密钥链、Shell 内嵌命令和 100+ 扩展 Gallery 在广度上快速追赶,并开始支持实验性 subagent;Antigravity 作为 VS Code fork 天然拥有 LSP 和 GUI 优势,加上 AGENTS.md 实现了跨工具兼容。
三者之中,Claude Code 在扩展体系的深度上领先明显(Skills 2.0 的 sub-agent + forked context 是真正的代差);Gemini CLI 在生态广度上追赶最快;Antigravity 在易用性和跨工具兼容性上独有优势。
选工具的本质,是选最需要的那个”多了”。
数据来源:code.claude.com/docs/en/plugins(官方文档,2026-03 更新)、Claude Code v2.1.74 Release Notes(2026-03-12)、github.com/google-gemini/gemini-cli/docs/extensions(2026-03 更新)、geminicli.com/docs/changelogs(v0.33.0, 2026-03-11)、antigravity.google/docs(v1.20.3, 2026-03-05)、InfoQ 2025-10-18 Gemini CLI Extensions 报道
本文首发于 2026-02-24,2026-03-13 更新:新增 Claude Code Skills 2.0、agent hook 类型、/create-* 命令;更新 Gemini CLI Hooks 至 GA 状态、Gallery 100+ 扩展及实验性 subagent;更新 Antigravity AGENTS.md 支持;修正 LSP 对比(Antigravity 天然支持 VS Code LSP)。