iT邦幫忙

2026 iThome 鐵人賽

DAY 20
2

https://ithelp.ithome.com.tw/upload/images/20260908/20124384ohGHmP5nTj.jpg

今天介紹什麼工具

  1. Plugins(外掛程式):將你開發好的 Antigravity 客製化能力(技能、自主子代理、程式碼庫規則、生命週期掛鉤與 MCP 伺服器)打包封裝,透過單一指令即可分享並安裝給團隊成員。

為什麼要用這個工具

如果你寫好了一套 Skills(技能)或 Agents(子代理),想要分享給其他工程師使用,過去的做法可能是:請對方從 GitHub 下載壓縮檔、手動解壓到本機全域設定目錄、再到 settings.json 逐一手動註冊授權……流程繁瑣且容易出錯,而且大家肯定都懶的用。

打包成 Plugins(外掛)後,團隊成員只需敲下一行指令即可自動完成下載、解壓與啟用,大幅降低協作門檻。

外掛指令命名的坑

在使用與設計外掛時,必須了解 Antigravity CLI 的斜線指令註冊機制:

TUI 斜線指令無外掛前綴機制

終端機使用者介面(TUI)輸入列中的斜線指令,嚴格且唯一對應 SKILL.md 前言(Frontmatter)的 name 欄位(即宣告 name: commit 就註冊為 /commit)。CLI 不會自動將外掛名稱作為指令前綴,系統中不存在預設的 /plugin-name:skill-name 語法。

扁平唯一鍵註冊與同名覆蓋原則

系統中的斜線指令註冊表採用扁平字典結構。如果安裝了兩個不同外掛,但兩者的 SKILL.md 都宣告 name: commit,系統在載入時會發生單一鍵覆蓋(Key Overwrite),最終註冊表裡只會保留一個 /commit,絕不可能在下拉選單中同時並列多個同名指令。

區分「診斷標籤」與「互動介面語法」

若執行 agy -p /skills 檢查系統狀態,日誌輸出會顯示 antigravity-git-flow:commit,這純屬 CLI 為了除錯而標註的來源追蹤標籤(Provenance Tracking),絕不代表終端機輸入列支援該語法。

最佳實踐

如果你的外掛提供了專屬領域的工作流程(例如 Git Flow 與 GitHub Flow),請在各技能 SKILL.md 的 name 欄位中主動加上具備辨識度的命名(例如 git-flow-commit 與 github-flow-commit),這樣在終端機輸入 / 補全時,就能清楚區分出 /git-flow-commit 與 /github-flow-commit,完全避免鍵值覆蓋問題!


Agy CLI 可以做什麼外掛

跟 Gemini CLI Extended 比起來,Antigravity CLI Plugins 能封裝的元件體系更完整,目前能封裝以下五大核心客製化能力:

  1. Skills(技能外掛):封裝團隊標準作業程序(SOP)、自動化 Runbook 或領域專業知識(如 Android 開發、發布流程等)。
  2. Subagents(自主子代理外掛):封裝具備特定角色、獨立 System Prompt 與專屬工具權限的自主子代理(如資安稽核員、代碼架構師),可由主代理調度協同作業。
  3. Rules(程式碼庫規則外掛):封裝團隊統一的編程風格與架構規範(如 rules/AGENTS.md),在對話開始時自動合併進模型的系統指令中。
  4. Hooks(事件驅動掛鉤外掛):封裝生命週期掛鉤腳本(如 PreToolUse、PostToolUse),在工具執行前後自動觸發(例如存檔後自動執行 Linter/Format,或防禦危險指令)。
  5. MCP Servers(模型上下文通訊協定外掛):封裝外掛專屬的 Model Context Protocol 伺服器連線設定(mcp_config.json),讓 AI 能即時跨接外部資料庫、Jira、GitHub API 或本地分析工具。

終端機實作

從零打造外掛實作演練

今天我們以打造一個團隊專用的開發者工具箱外掛 team-devkit 為例,從目錄架構、設定檔撰寫、本地語法校驗到發布安裝,一步一步完整實作!


步驟 1:規劃外掛目錄架構

一個符合 Antigravity 官方標準規範的外掛,必須建立於獨立的資料夾中,其標準 Layout 如下:

team-devkit/
├── plugin.json                 # [必填] 外掛資訊清單(Manifest 標記檔)
├── README.md                   # [推薦] 外掛說明文件
├── skills/                     # [選填] 技能目錄(單一外掛可包含多個技能)
│   └── code-review/            # 技能子目錄(以具體的 <skill_name> 命名)
│       ├── SKILL.md            # 技能本體說明書(含 YAML Frontmatter)
│       └── references/         # [推薦] 詳細參考文件(漸進式揭露核心)
├── agents/                     # [選填] 自主子代理目錄
│   └── reviewer/               # 子代理目錄(<agent_name>)
│       └── agent.md            # 子代理配置與指令
├── rules/                      # [選填] 程式碼庫規則
│   └── AGENTS.md               # 外掛生效時自動注入的開發規範
├── mcp_config.json             # [選填] 外掛攜帶的 MCP 伺服器連線設定
└── hooks.json                  # [選填] 外掛生命週期掛鉤設定

步驟 2:配置資訊清單 plugin.json

在 team-devkit/plugin.json 建立外掛宣告檔。此檔案是 Antigravity 識別該資料夾為合法外掛的標記:

{
  "name": "team-devkit",
  "version": "1.0.0",
  "description": "團隊專屬開發者工具包:提供代碼規範審查、自動化發布與團隊工作流程支援。",
  "author": "AndyAWD",
  "license": "MIT",
  "homepage": "https://github.com/AndyAWD/team-devkit"
}

欄位說明:

  1. name(推薦 / 選填):外掛的識別名稱。官方規範中此欄位為選填,若未填寫,系統預設會採用該外掛所在資料夾的名稱。建議填寫並僅使用小寫英文字母、數字、連字號(-)與底線(_)。
  2. version(推薦):建議遵循語意化版本(Semantic Versioning,如 1.0.0)。
  3. description(推薦):簡短說明外掛用途,協助使用者與 AI 了解外掛功能。
  4. 無 permissions 與 dependencies 欄位:官方外掛結構保持純粹的宣告式架構。所有工具與腳本的執行安全,皆由底層執行期沙盒與全域信任清單(trusted_hooks.json)集中控管,外掛清單中不需也不支援權限宣告。

步驟 3:撰寫技能 SKILL.md 與漸進式揭露

在 team-devkit/skills/code-review/SKILL.md 建立技能:

---
name: devkit-review
description: 團隊代碼規範審查技能。當使用者要求檢查代碼品質、Conventional Commits 格式或架構合規性時觸發。
---

# 團隊代碼審查指南

本技能為團隊成員提供一致的程式碼審查指引。

## 執行檢查任務流程
當使用者要求「檢查專案規範」時:
1. 檢視專案目錄結構是否符合內部模組化標準。
2. 檢查 Git 提交訊息是否符合 Conventional Commits 格式。
3. 詳細的程式碼架構審查清單請參閱 [架構檢核表](./references/checklist.md)。

漸進式揭露(Progressive Disclosure)機制:

  • Token 節省核心:官方建議將龐大的規範與檢核手冊拆分放置於 references/ 目錄中,並以相對連結(如 架構檢核表)引用。
  • 按需讀取:AI 模型在日常對話中只會載入技能的名稱與簡介;只有當使用者明確觸發該技能或提出相關需求時,才會進一步讀取 SKILL.md 與對應的 references/ 檔案,確保上下文空間極大化。

步驟 4:選配元件配置(Rules 與 MCP)

外掛的優勢在於能一次性攜帶團隊規則與外部服務連線設定:

  1. 注入團隊共通守則(rules/AGENTS.md):
    在 team-devkit/rules/AGENTS.md 加入:

    # 團隊編程共通守則
    - 所有新功能提交必須包含單元測試(Unit Tests)。
    - 禁止在程式碼中硬編碼(Hardcode)機密資訊與金鑰。
    - 變數命名一律採用駝峰式(camelCase)。
    

    當此外掛被啟用時,這份守則會自動合併入當前對話的系統提示詞中,並由系統實體路徑自動去重(Deduplication)。

  2. 配置專屬 MCP 伺服器(mcp_config.json,選填):
    若外掛需要連接外部 API 或微服務:

    {
      "mcpServers": {
        "team-api": {
          "command": "node",
          "args": ["/path/to/server.js"]
        }
      }
    }
    

步驟 5:本地靜態語法校驗(agy plugin validate)

撰寫完成後,不需直接安裝測試。Antigravity CLI 提供了本地一鍵校驗指令:

agy plugin validate ./team-devkit

校驗檢查項目:

  1. plugin.json:驗證清單檔案是否存在、JSON 語法是否合法。
  2. skills:檢查各技能目錄下的 SKILL.md 是否具備合法的 YAML Frontmatter(name 與 description)。
  3. agents:若有自主子代理,檢查其宣告格式是否完整。
  4. mcpServers / hooks:檢查 MCP 連線設定與掛鉤生命週期事件宣告是否符合規範。

通過校驗後,終端機將呈現綠色通過標記([ok]);若有欄位語法錯誤,會直接標註行號與問題點。


步驟 6:本地掛載與日常管理指令

在終端機中,可以透過 agy plugin 系列指令進行完整管理:

# 1. 列出所有已安裝的外掛與當前啟用狀態
agy plugin list

# 2. 暫時停用外掛(停止載入其技能、規則、掛鉤與 MCP)
agy plugin disable team-devkit

# 3. 重新啟用外掛
agy plugin enable team-devkit

# 4. 卸載外掛
agy plugin uninstall team-devkit

💡 小技巧:Antigravity CLI 設計上沒有 update 子指令。若遠端儲存庫有新版本發布,直接重新執行 install 指令即可自動無痛覆蓋更新!


步驟 7:推上 GitHub 與一鍵安裝

將外掛專案推上遠端 Git 儲存庫:

# 進入外掛專案目錄初始化並發布
git init
git add .
git commit -m "feat: initial release of team-devkit"
git remote add origin https://github.com/AndyAWD/team-devkit.git
git branch -M main
git push -u origin main

現在,團隊裡的任何工程師只要打開終端機,執行一行指令:

agy plugin install https://github.com/AndyAWD/team-devkit

Antigravity CLI 會自動完成下載、解壓至 ~/.gemini/config/plugins/team-devkit/ 並立即掛載啟用!所有自訂技能、專案規範與自動化工具立刻就位,省去繁瑣的手動配置步驟。

講那麼多,其實用昨天的 /antigravity-guide/agy-customizations 指令讓 Agy CLI 幫你做就好


上一篇
115/19 - antigravity-guide & agy-customizations - 指南和客製化手冊
下一篇
115/21 - Agy 知識庫 Agent 實作 - agy-help
系列文
第一次用 Antigravity CLI 做出 Plugin 就上手21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
chiaominchang222
iT邦新手 4 級 ‧ 2026-09-08 20:29:42

這算是一種加班的活動嗎:“(

我要留言

立即登入留言