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

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

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

ADK2エージェントスキルAntigravity338Google ADK2カスタムスキル2自動化30

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-07-15
エージェントのコミットに .bak が混じる — 自動修正ツールの副産物がリポジトリに入る原因と対処
エージェントに --fix 系ツールを走らせた後のコミットに .bak や .orig が紛れ込む症状について、再現条件と原因、ステージ範囲の限定・副産物の即時掃除・pre-commit での拡張子ゲートという3つの対処をまとめました。
Agents & Manager2026-07-12
Antigravity のエージェントに任せる作業と任せない作業を2週間の運用で見直す
個人開発の日々のタスクを2週間ほど Antigravity のエージェントに任せてみて、任せて正解だったものと手元に残すべきだったものの線引きを、運用ログを添えて振り返ります。
Agents & Manager2026-07-01
モデルがフォールバックしても命名と書式をぶらさない — エージェント出力の一貫性を保つ契約
エージェントの実行中にモデルがフォールバックすると、コードの命名規約や書式が静かにぶれます。モデルに依存しないスタイル契約と正規化パスで、出力の一貫性を保つ実装をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →