Antigravity の「エージェントスキル」は、AI エージェントの能力を拡張できる強力な仕組みです。デフォルトで提供されるスキルだけでなく、Google の Agent Development Kit(ADK) を活用すれば、あなた独自のワークフローやツール連携をスキルとしてパッケージ化できます。ここではADK の基礎からカスタムスキルの実装・デプロイまでを完全解説します。
Google ADK(Agent Development Kit)とは
ADK は、2025 年後半に Google が公開したエージェント開発フレームワークです。Antigravity のエージェントが外部ツール・API・ドメイン知識を活用できるよう、スキルの構造・命令・スクリプト・リソースを標準化された形式でバンドルします。
ADK によるスキルの特徴は以下のとおりです。
- SKILL.md 駆動: エージェントはスキル呼び出し時に
SKILL.mdを読み込み、詳細な手順に従って動作します - スクリプト自動化: セットアップや後処理を
scripts/ディレクトリのシェル/Python スクリプトで自動化できます - 静的・動的リソース:
resources/ディレクトリにテンプレートや設定ファイルを同梱できます - 再利用性: チームや複数プロジェクト間でスキルを共有・配布できます
スキルのディレクトリ構造
ADK スキルは以下の構造を持ちます。
my-skill/
├── SKILL.md # エージェントへの命令(必須)
├── scripts/
│ ├── setup.sh # 初期セットアップスクリプト(任意)
│ └── run.py # メイン処理スクリプト(任意)
└── resources/
├── template.json # テンプレートファイル(任意)
└── config.yaml # 設定ファイル(任意)
最低限 SKILL.md だけあれば動作しますが、複雑なワークフローには scripts/ と resources/ を活用します。
SKILL.md の書き方
SKILL.md はエージェントへの「指示書」です。フロントマターでスキルのメタデータを定義し、本文に詳細な手順を記述します。
---
name: github-issues-triage
description: GitHub Issues を自動トリアージし、優先度ラベルを付ける
---
## 概要
このスキルは指定リポジトリの未対応 Issues を取得し、
内容を分析して優先度ラベル(P0/P1/P2)を自動付与します。
## 手順
### Step 1: Issues の取得
`gh issue list --repo {REPO} --state open --json number,title,body,labels`
を実行して、未対応の Issues を JSON 形式で取得してください。
### Step 2: 優先度の判定
各 Issue について以下の基準で優先度を判定してください。
- P0(緊急): 本番障害・セキュリティ脆弱性・データ損失
- P1(高): 主要機能のバグ・パフォーマンス劣化
- P2(中〜低): 軽微なバグ・機能追加リクエスト
### Step 3: ラベルの付与
`gh issue edit {NUMBER} --add-label "{PRIORITY}"`
でラベルを付与してください。
### Step 4: サマリー出力
処理した Issues の一覧と付与したラベルをテーブル形式で出力してください。実践:GitHub Issues トリアージスキルを作る
ここからは、実際に動作するスキルを一から構築します。
1. スキルディレクトリの作成
# スキルの作成場所(Antigravity のスキル管理ディレクトリ)
mkdir -p ~/.antigravity/skills/github-issues-triage/scripts
mkdir -p ~/.antigravity/skills/github-issues-triage/resources2. メインスクリプトの実装
# scripts/triage.py
# GitHub Issues を取得して優先度スコアを算出するスクリプト
# 出力: issues_with_priority.json
import json
import subprocess
import sys
import re
def get_issues(repo: str) -> list[dict]:
"""gh CLI で Issues を取得"""
result = subprocess.run(
["gh", "issue", "list", "--repo", repo,
"--state", "open", "--limit", "50",
"--json", "number,title,body,labels,createdAt"],
capture_output=True, text=True
)
if result.returncode != 0:
print(f"Error: {result.stderr}", file=sys.stderr)
sys.exit(1)
return json.loads(result.stdout)
def score_priority(issue: dict) -> str:
"""本文・タイトルのキーワードで優先度を判定"""
text = (issue.get("title", "") + " " + issue.get("body", "")).lower()
# P0: 緊急キーワード
p0_keywords = ["production", "outage", "security", "vulnerability",
"data loss", "crash", "critical", "urgent", "本番", "障害"]
if any(kw in text for kw in p0_keywords):
return "P0"
# P1: 高優先度キーワード
p1_keywords = ["bug", "broken", "regression", "performance",
"バグ", "壊れ", "遅い", "動かない"]
if any(kw in text for kw in p1_keywords):
return "P1"
# デフォルト P2
return "P2"
def main():
repo = sys.argv[1] if len(sys.argv) > 1 else "owner/repo"
issues = get_issues(repo)
results = []
for issue in issues:
priority = score_priority(issue)
results.append({
"number": issue["number"],
"title": issue["title"],
"priority": priority
})
# JSON 出力(エージェントが読み込む)
print(json.dumps(results, ensure_ascii=False, indent=2))
if __name__ == "__main__":
main()期待出力:
[
{ "number": 42, "title": "本番サーバーがクラッシュしている", "priority": "P0" },
{ "number": 38, "title": "ログイン後にリダイレクトがバグる", "priority": "P1" },
{ "number": 35, "title": "ダークモード対応を追加したい", "priority": "P2" }
]3. SKILL.md の完成版
---
name: github-issues-triage
description: GitHub Issues を自動トリアージして優先度ラベルを付ける
---
## 概要
GitHub リポジトリの未対応 Issues を自動分析し、P0/P1/P2 の優先度ラベルを付与します。
## 事前確認
- `gh auth status` で GitHub 認証が完了していることを確認
- 対象リポジトリ名(owner/repo 形式)をユーザーに確認
## Step 1: スクリプト実行
```bash
python3 scripts/triage.py {REPO} > /tmp/triage_result.jsonStep 2: 結果の確認
/tmp/triage_result.json を読み込み、優先度ごとに Issues を整理してください。
Step 3: ラベル付与
P0/P1 の Issues に対して以下を実行してください。
gh issue edit {NUMBER} --repo {REPO} --add-label "{PRIORITY}" --add-label "needs-attention"Step 4: Slack 通知(任意)
P0 Issues がある場合、以下の形式でサマリーを出力してください。
🚨 P0 Issues: {COUNT}件 | 🔴 P1: {COUNT}件 | 🟡 P2: {COUNT}件
### 4. スキルの登録と呼び出し
```bash
# スキルを Antigravity に登録
antigravity skill add ~/.antigravity/skills/github-issues-triage
# 登録確認
antigravity skill list
# エージェントからスキルを呼び出す
# チャットで「github-issues-triage スキルを使って masakihirokawa/myapp をトリアージして」
スキルを共有・配布する
ADK スキルは Git リポジトリとして管理・配布できます。
# スキルを GitHub にプッシュ
cd ~/.antigravity/skills/github-issues-triage
git init && git add . && git commit -m "Initial skill"
git remote add origin https://github.com/yourname/antigravity-skill-github-triage.git
git push -u origin main
# 他のユーザーがインストール
antigravity skill install https://github.com/yourname/antigravity-skill-github-triage.git公開スキルは Antigravity Plugin Registry に登録することもできます。チームや OSS コミュニティへの配布に活用してください。
ADK スキルの応用アイデア
スキルは様々なユースケースに応用できます。
| スキル名 | 概要 | カテゴリ |
|---|---|---|
daily-standup | 昨日のコミットから日報を自動生成 | 生産性 |
security-audit | 依存パッケージの脆弱性を自動スキャン | セキュリティ |
api-docs-sync | コード変更時に API ドキュメントを自動更新 | ドキュメント |
deploy-rollback | 異常検知時に自動ロールバックを実行 | DevOps |
i18n-generator | コンポーネントから翻訳ファイルを自動生成 | ローカライズ |
全体を振り返って
Google ADK を使ったカスタムエージェントスキルは、Antigravity の可能性を大きく広げます。SKILL.md に明確な指示を書き、scripts/ に処理ロジックをまとめれば、複雑な自動化タスクもエージェントに委任できます。
今回作成した GitHub Issues トリアージスキルを土台に、あなた自身のワークフローに合わせたスキルを設計してみてください。
関連記事
- Antigravity × MCP サーバー活用ガイド
- カスタムエージェントの作り方
- マルチエージェントオーケストレーション入門