エージェントに「専門家の頭脳」を:Antigravity カスタム Agent Skills プラグインの書き方
先週、チームメンバーからまた同じ質問をされました。「この API の認証フローって、結局どうなってるんですか?」
私は埃をかぶった Confluence ページを開き、最終更新が 6 ヶ月前だと気づきました。ドキュメントとコードがまたズレています。ため息をつき、何度も説明してきた内容を手打ちし始めました。
その夜、Antigravity をいじっていたら、偶然 Skills システムを見つけました。要するに、AI エージェントに「専門家の頭脳」を植え付ける仕組みです。特定の知識を覚えさせ、決まった手順を実行させ、専用ツールを呼び出させられます。
2 時間かけて社内 API 用の Skill を書きました。翌日、新人が同じ質問をしてきたとき、Antigravity にこう打ち込みました。「ユーザーサービスの認証フローを調べて」。
エージェントが Skill を呼び出し、30 秒後にはコード例付きの正確な説明が返ってきました。新人はうなずいて、自分で調べ始めました。
その瞬間、確信しました。Skill システムは単なる拡張機能ではなく、チームの協働の仕方そのものを変えるものだと。
この記事では、Antigravity 向けカスタム Skills の書き方を、基礎概念から実践例、外部 API 統合、プライベートナレッジベース接続まで解説します。
Antigravity Skills とは
まず概念を整理しましょう。
Antigravity の Skill システムは、軽量でオープンな拡張フォーマットです。AI エージェントにインストールする「アプリ」のようなもので、各 Skill が特定能力を定義し、シーンに応じてより専門的に動かせます。
Google Codelabs によると、Skills はディレクトリ構造のパッケージで、標準フォーマットによりエージェントが確実に解析・実行できます。典型的な Skill の構成は次のとおりです。
- skill.yaml:メタデータ、能力説明、使用シーン
- README.md:機能と使い方の詳細
- scripts/:実行スクリプト(Python、Bash など)
- templates/:プロンプトテンプレートや出力テンプレート
Skills は 2 つのスコープで定義できます。
- グローバルスコープ(
~/.gemini/antigravity/skills/):プロジェクト横断で使える。例:「JSON 整形」「汎用コードレビュー」 - プロジェクトスコープ(
.agent/skills/):当該プロジェクトのみ。例:「チーム API 規約」「業務用コードテンプレート」
汎用はグローバル、業務固有はプロジェクト——この二層設計が使いやすいです。
最初の Skill を書く
では手を動かしましょう。
Git コミットメッセージを自動整形する Skill から始めます。
ステップ 1:ディレクトリ構造を作る
mkdir -p ~/.gemini/antigravity/skills/git-commit-formatter
ステップ 2:skill.yaml を書く
name: git-commit-formatter
description: Format Git commit messages following Conventional Commits spec
version: 1.0.0
author: your-name
triggers:
- commit
- git message
- format commit
actions:
- name: format_commit
description: Format a raw commit message to Conventional Commits format
input:
raw_message: string
type: enum[feat, fix, docs, style, refactor, test, chore]
output:
formatted_message: string
この YAML で、基本情報・トリガーキーワード・入出力形式を定義します。
ステップ 3:実行スクリプトを書く
scripts/format_commit.py を作成します。
#!/usr/bin/env python3
import sys
import re
def format_commit(raw_message, commit_type):
# 元メッセージを解析
scope_match = re.search(r'\(([^)]+)\)', raw_message)
scope = f"({scope_match.group(1)})" if scope_match else ""
# 説明文を抽出
desc = re.sub(r'\([^)]+\):?\s*', '', raw_message).strip()
# 整形
formatted = f"{commit_type}{scope}: {desc}"
return formatted
if __name__ == "__main__":
raw = sys.argv[1]
ctype = sys.argv[2]
print(format_commit(raw, ctype))
ステップ 4:テスト
Antigravity を再起動し、次のように入力してみてください。
「git-commit-formatter でこのコミットを整形して:ユーザーログインのバグを修正した」
正常なら、エージェントが Skill を呼び出し、fix(auth): ユーザーログインのバグを修正した のような出力を返します。
シンプルです。これが Skill の骨格です。
外部 API 統合:GitHub + Jira 実践
ローカルだけの Skill は練習に留まります。本番で効くのは外部システムとつながる Skill です。
Jira チケット処理を自動化する Skill を作りましょう。
シーン:チームは毎日、Jira でステータス更新や工数入力に時間を取られています。この定型作業をエージェントに任せます。
ステップ 1:API 認証を準備
Jira の API トークンとドメインが必要です。機密情報は環境変数に置くのがおすすめです。
export JIRA_API_TOKEN="your-token"
export JIRA_DOMAIN="your-domain.atlassian.net"
export JIRA_EMAIL="your-email@example.com"
ステップ 2:Skill 設定を書く
name: jira-assistant
description: Automate Jira workflows - search issues, update status, add worklogs
triggers:
- jira
- ticket
- issue
- worklog
actions:
- name: search_issues
description: Search Jira issues by JQL query
- name: add_worklog
description: Add time spent to an issue
- name: transition_issue
description: Move issue to a different status
ステップ 3:コアスクリプトを書く
#!/usr/bin/env python3
import os
import requests
from base64 import b64encode
class JiraClient:
def __init__(self):
self.domain = os.getenv('JIRA_DOMAIN')
self.email = os.getenv('JIRA_EMAIL')
self.token = os.getenv('JIRA_API_TOKEN')
self.auth = self._get_auth()
def _get_auth(self):
credentials = f"{self.email}:{self.token}"
return b64encode(credentials.encode()).decode()
def search(self, jql):
url = f"https://{self.domain}/rest/api/2/search"
headers = {
"Authorization": f"Basic {self.auth}",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers, params={"jql": jql})
return response.json()
def add_worklog(self, issue_key, time_spent, comment):
url = f"https://{self.domain}/rest/api/2/issue/{issue_key}/worklog"
headers = {
"Authorization": f"Basic {self.auth}",
"Content-Type": "application/json"
}
data = {
"timeSpent": time_spent,
"comment": comment
}
return requests.post(url, headers=headers, json=data)
# CLI 入口
if __name__ == "__main__":
import sys
client = JiraClient()
if sys.argv[1] == "search":
result = client.search(sys.argv[2])
for issue in result.get('issues', []):
print(f"{issue['key']}: {issue['fields']['summary']}")
elif sys.argv[1] == "worklog":
client.add_worklog(sys.argv[2], sys.argv[3], sys.argv[4])
print(f"Worklog added to {sys.argv[2]}")
ステップ 4:使い方
Antigravity では次のように指示できます。
「In Progress の Jira チケットを全部出して」
「PROJ-123 に 2 時間工数を記録。コメントは『ユーザーモジュールのリファクタリング完了』」
「PROJ-456 のステータスを Done にして」
エージェントが Jira API を呼ぶので、重い Jira UI を開く必要がなくなります。
GitHub も同様です。PyGithub や requests で GitHub API を叩けば、PR 自動作成、CI 状態確認、コードレビューまで Skill 化できます。
プライベートナレッジベース接続:NotebookLM + Antigravity
ここがいちばんワクワクする部分です。
XDA Developers の事例が面白いです。著者はプロジェクトドキュメントを NotebookLM に読み込ませ、技術仕様を生成し、それを Antigravity Skill に変換しました。結果、エージェントがプロジェクト文書に基づいて直接コードを書けるようになったのです。
実装の考え方:
NotebookLM は対話を構造化ドキュメントとしてエクスポートできます。
- NotebookLM にプロジェクト知識(設計書、API 仕様、アーキテクチャ決定)を蓄積
- 対話機能で「知識サマリー」を整理
- サマリーを Skill の context や templates に変換
もっと直接的には、MCP(Model Context Protocol)で NotebookLM を Antigravity に接続します。
GitHub の notebooklm-antigravity-skill は nlm CLI でこの統合を実装しています。
name: notebooklm-knowledge
description: Query project knowledge from NotebookLM
triggers:
- 查文档
- 看规范
- 项目知识
actions:
- name: query_knowledge
description: Query NotebookLM for project-specific knowledge
スクリプトから NotebookLM API を呼べば、エージェントがプライベートナレッジベースをリアルタイム照会できます。
こんなやり取りが可能になります。
新人:「プロジェクトのエラー処理規約って?」
あなた:(Antigravity で)「NotebookLM のエラー処理規約を調べて」
エージェント:「プロジェクトドキュメントによると:1. カスタム例外クラスを使う… 2. ログに traceback を含める… 3. ユーザー向けエラーは i18n 対応…」
眠っていたドキュメントが、エージェントの「専門家の頭脳」になります。
上級テクニック:Rules と Skill の組み合わせ
Skills に加え、Antigravity には Rules システムもあります。組み合わせると威力が跳ね上がります。
Rules はグローバルまたはプロジェクトレベルの行動制約です。例:
# .agent/rules/code-review.md
コードレビュー時:
1. ユニットテストのカバレッジが十分か確認
2. ハードコードされた機密情報がないか確認
3. エラー処理が適切か検証
4. チームの TypeScript 規約に準拠しているか確認
Rule は「いつ何をすべきか」、Skill は「具体的にどうやるか」を担います。
Atlassian の開発者ブログでは、app-deployment ルールと Jira Skills を組み合わせ、デプロイフローを自動化した事例が紹介されています。
main ブランチへのマージを検知すると:
- Rule 発火:「デプロイ前チェックを実行」
- Skill 呼び出し:Jira の関連チケット状態を確認
- Skill 呼び出し:テストスイートを実行
- Skill 呼び出し:通過したら Jira ステータス更新とデプロイログ記録
人間が十数ステップかけていた作業が、一言でトリガーできるようになります。
おわりに
要点は一言。Skills で Antigravity は「汎用ツール」から「専門アシスタント」へ進化する。
汎用 AI はコードを書けますが、あなたのビジネスは知りません。Skills 経由で業務知識・チーム規約・社内ツールを植え付ければ、エージェントは本当のチームメンバーになれます。
私は Git コミット整形 Skill から始め、今では 20 以上の内部 Skill を蓄積しています。API 照会、コード規約チェック、Jira 処理、新入社員オンボーディング——定型作業を少しずつエージェントに移しています。
怠けているわけではありません。設計、難問解決、新製品づくり——人間がやるべき仕事に集中するためです。繰り返しの知識照会と手作業のフローは、エージェントに任せましょう。
試すなら、小さな痛点から。何度も聞かれる質問、一日十回繰り返す作業——それを解決する Skill を一つ書いてみてください。
エージェントはツールではなく、チームの延長だと気づくはずです。
Skills こそ、専門性を与える鍵です。
FAQ
Antigravity Skills とは?普通の AI プロンプトと何が違うのですか?
**Skills は永続的**:一度定義すれば繰り返し使え、エージェントがトリガー条件を自動認識します
**Skills はプログラマブル**:Python/Shell スクリプトを含め、外部 API を呼び出して複雑なロジックを実装できます
**Skills は共有可能**:パッケージ化してチームと共有したり、コミュニティに公開できます
プロンプトは一回限りの指示ですが、Skills はエージェントにインストールする「能力アプリ」で、特定シーンでより専門的に動かせます。
Antigravity Skill を書くにはどの程度の技術基礎が必要ですか?
**必須スキル**:
• 基礎 YAML 構文(Skill 設定用)
• Python または Shell スクリプトの記述能力
• API 呼び出しの基本概念
**あると便利**:
• 外部 API の認証(OAuth、API Token など)
• エラー処理とログ記録
• 正規表現とテキスト処理
最もシンプルな Skill は skill.yaml ファイル一つで作れます。まず公式サンプルを真似て、徐々に機能を足していくのがおすすめです。
API キーなどの機密情報はどう安全に管理すべきですか?
**環境変数方式**(推奨):
• skill.yaml にキーをハードコードしない
• スクリプトで os.getenv() から環境変数を読み込む
• 利用前に export で環境変数を設定してもらう
**設定ファイル方式**:
• .gitignore で設定ファイルを除外する
• config.example.yaml テンプレートを用意する
• Skill はローカル設定ファイルを読み込む
**絶対にしないこと**:
• キーを Skill スクリプトに直書きする
• キーを含む Skill を公開リポジトリにコミットする
README に必要な環境変数を明記するのも良い習慣です。
Skill と Rule の違いは?どう組み合わせて使いますか?
**Rules(ルール)**:
• 「いつ、何をすべきか」という行動規範を定義
• テキスト形式の制約やチェックリスト
• エージェントの意思決定ロジックに影響
**Skills(スキル)**:
• 「具体的にどうやるか」という実行能力を定義
• 実行可能なスクリプトと設定を含む
• 具体的なツールと能力を提供
**組み合わせ例**:
• Rule:「コードレビュー時は必ずテストカバレッジを確認する」
• Skill:テストフレームワークを呼び出してテストを実行し、レポートを生成する
Rule が判断、Skill が実行を担い、両方で自動化フローが完成します。
NotebookLM のナレッジベースを Antigravity に統合するには?
**方式 1:エクスポート変換法**:
1. NotebookLM でプロジェクト知識を整理
2. 対話や要約を構造化ドキュメントとしてエクスポート
3. Skill の templates や context ファイルに変換
4. エージェントが照会時に参照
**方式 2:MCP リアルタイム接続法**(nlm CLI が必要):
• notebooklm-mcp-cli をインストール
• MCP サーバーで NotebookLM に接続
• Skill スクリプトから nlm コマンドでリアルタイム照会
• エージェントが最新知識を動的取得
GitHub の notebooklm-antigravity-skill が参考実装です。
3分で読めます · 公開日: 2026年2月27日 · 更新日: 2026年6月8日
Antigravity ハンドブック
検索からこのページに来た場合は、前後の記事もあわせて読むと同じテーマの理解がかなり早く深まります。
前の記事
Copilot から Antigravity へ:エージェント・ファースト(Agent-First)開発の新パラダイムを身につける
Antigravity の Agent-First 開発モードを深掘り。Copilot の「補完思考」と Antigravity の「委任思考」を比較し、AI プログラミングの新しいパラダイムを探る
第 1 / 3 記事
次の記事
単一モデルの囚人にならない:Antigravity で Gemini 3、Claude 4.5、GPT-OSS を自在に切り替える
Antigravity のマルチモデル戦略を徹底解説。タスクの特性に応じて Gemini 3、Claude 4.5、GPT-OSS を使い分け、チームのモデル選定基準をつくる方法を紹介します
第 3 / 3 記事
関連記事
ADHD:並列発散推論でコーディングエージェントの「早すぎる収束」を直す
ADHD:並列発散推論でコーディングエージェントの「早すぎる収束」を直す
guizang-social-card-skill:小紅書カードと WeChat カバーを再利用できる制作フローにする
guizang-social-card-skill:小紅書カードと WeChat カバーを再利用できる制作フローにする
vibecode-pro-max-kit:AI コーディングに仕様、記憶、マルチ Agent 協作を足す
コメント
GitHubアカウントでログインしてコメントできます