◉ANTIGRAVITY LABEN
記事一覧/Agents & Manager
◈ Agents & Manager/2026-03-15中級

Google ADK × Antigravity: カスタムエージェントスキルを自作してAIを拡張する

Google の Agent Development Kit(ADK)を使い、Antigravity 上で動くカスタムエージェントスキルを一から構築する方法を解説。SKILL.md の書き方からスクリプト実装、実用的なGitHub Issues スキルまでステップバイステップで紹介します。

ADKエージェントスキルAntigravity386Google ADKカスタムスキル自動化40

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/ ディレクトリにテンプレートや設定ファイルを同梱できます
  • 再利用性: チームや複数プロジェクト間でスキルを共有・配布できます
ℹ️
**前提条件**: Antigravity 1.18 以降が必要です。`antigravity --version` でバージョンを確認してください。

スキルのディレクトリ構造

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 の一覧と付与したラベルをテーブル形式で出力してください。
💡
**SKILL.md 記述のコツ**: 手順は「Step 1〜N」形式で番号を振ると、エージェントが順番通りに実行しやすくなります。曖昧な表現を避け、実行すべきコマンドや出力形式を具体的に指定してください。

実践:GitHub Issues トリアージスキルを作る

ここからは、実際に動作するスキルを一から構築します。

1. スキルディレクトリの作成

# スキルの作成場所(Antigravity のスキル管理ディレクトリ)
mkdir -p ~/.antigravity/skills/github-issues-triage/scripts
mkdir -p ~/.antigravity/skills/github-issues-triage/resources

2. メインスクリプトの実装

# 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.json

Step 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 をトリアージして」
⚠️
**注意**: スキルは `SKILL.md` をエージェントが直接参照するため、セキュリティに関わる情報(API キー・トークン)は絶対に記述しないでください。シークレットは環境変数や Antigravity の Secrets 機能を使いましょう。

スキルを共有・配布する

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 Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

◈ Agents & Manager2026-09-09
Antigravity の Scheduled Tasks を組んでも走らないとき、sidecar.json と enabled を順に確かめます
Antigravity 2.0 の Scheduled Tasks が予定時刻に走らないときの切り分け手順です。sidecar.json の置き場所と ID、config.json の有効化、sidecar_data のログを順に確かめます。
◈ Agents & Manager2026-04-27
Antigravity を個人開発の「夜のもう1人」として迎え入れる運用モデル
Antigravity のエージェントを、個人開発者にとっての「夜のもう1人」として運用するための設計指針。タスクの渡し方・境界線の引き方・朝の3点確認をスクリプトにする方法まで、実際に運用して整えてきた手順を書き残します。
◈ Agents & Manager2026-10-16
エージェントに .zip を渡す前に、.git を除いて 29 MB を 15 MB にし、秘密情報の警告 28 件を見分けました
Antigravity アプリ v2.23.0 で .zip を添付できるようになりました。自分のリポジトリを実際に固めて .git の重さと秘密情報検査の誤検知を数え、除外・検査・マニフェストを一度に行う Python スクリプトの全文を残します。