調査レポート: エージェント間連携とAGENTS.mdのベストプラクティス
調査概要
調査目的: 「エージェント間連携がうまくいくようになってきた」という記事を作成するため、エージェント間連携、AGENTS.md、プロンプトエンジニアリングのベストプラクティスについて調査・情報収集を行う
調査実施日: 2025-12-20
想定読者:
- GitHub Copilotを使い始めたばかりでまだなにもわかっていない人
- GitHub Copilotに興味があって色々と試してみたい人
- 目標: AGENTS.mdやカスタムエージェントを定義してAIエージェントを活用できるようになる
1. GitHub Copilot のカスタムエージェントとAGENTS.md
1.1 AGENTS.mdの役割と仕様
概要
AGENTS.mdは、AIエージェント向けの「README」として機能する特別なファイルで、リポジトリのルートディレクトリに配置される。人間向けのREADME.mdが人間にプロジェクトを説明するように、AGENTS.mdはAIエージェントにプロジェクトの構造、規約、制約を説明する。
命名規則の標準化
- 推奨名称:
AGENTS.md(複数形) - 根拠: 60,000以上のオープンソースリポジトリで採用されており、業界標準となっている
- 配置場所: リポジトリのルートディレクトリ(README.mdやCONTRIBUTING.mdと並列)
- モノレポ対応: サブディレクトリにも配置可能で、スコープごとに異なる指示を提供できる
信頼性: 高(GitHub公式ドキュメント、agents.mdドメイン、複数の技術ブログで一貫して推奨)
参考URL:
- https://agents.md/
- https://github.blog/ai-and-ml/github-copilot/how-to-write-a-great-agents-md-lessons-from-over-2500-repositories/
- https://docs.github.com/en/copilot/reference/custom-agents-configuration
AGENTS.mdの基本構造
| |
重要なポイント:
- 具体的なコード例を含める(説明だけでなく実例を示す)
- 境界を明確にする(編集禁止のファイル、実行禁止の操作)
- バージョンや依存関係を明記する
- 簡潔で実行可能な指示にする
参考URL:
- https://github.blog/ai-and-ml/github-copilot/how-to-write-a-great-agents-md-lessons-from-over-2500-repositories/
- https://build5nines.com/unlock-github-copilots-full-potential-why-every-repo-needs-an-agents-md-file/
1.2 カスタムエージェント定義ファイル(.github/agents/*.agent.md)
ファイル構造とYAMLフロントマター
カスタムエージェントは .github/agents/ ディレクトリに {role}.agent.md 形式で配置する。
| |
主要なフロントマター項目
| 項目 | 説明 | 例 |
|---|---|---|
name | エージェントの一意な識別子 | backend-specialist |
description | エージェントの役割説明 | バックエンド実装専門のエージェント |
tools | 利用可能なツールのリスト | ["read", "edit", "search"] |
model | 使用するモデル(任意) | copilot-pro |
handoffs | 他エージェントへの引き継ぎ設定 | 後述 |
参考URL:
- https://docs.github.com/ja/copilot/concepts/agents/coding-agent/about-custom-agents
- https://zenn.dev/studypocket/articles/github-copilot-agents-md-best-practices
- https://it-araiguma.com/github-copilot-custom-agents-md-guide/
1.3 エージェント間連携のベストプラクティス
連携を成功させる3つのポイント
1. 名前の一致(Name Consistency)
エージェント間で引き継ぎを行う際、handoffs で指定する agent 名は、参照先エージェントの name フィールドと完全に一致させる必要がある。
良い例:
| |
| |
悪い例:
| |
2. エージェント定義の場所の明示(Location Definition)
エージェントファイルの配置場所を統一し、命名規則を守る。
- 推奨配置:
.github/agents/{role}.agent.md - 命名規則:
{役割名}.agent.md(例:perl-monger.agent.md,sql-otaku.agent.md)
3. ワークフローとしての定義(Workflow Definition)
エージェント間の連携をワークフローとして明確に定義する。
例: 記事作成ワークフロー
| |
このワークフローをAGENTS.mdまたは各エージェントの定義に明記する。
参考URL:
- https://zenn.dev/studypocket/articles/github-copilot-agents-md-best-practices
- https://blog.serverworks.co.jp/getting-started-custom-agents-github-copilot-agent-mode
- https://blog.wadan.co.jp/ja/tech/github-copilot-agent-mode
2. プロンプトエンジニアリング基礎
2.1 役割付与の効果(Role Prompting)
概要
AIに明確な役割や専門性を付与することで、一貫性のある回答を引き出す手法。
効果
- 視点の一貫性: 特定の専門家としての視点で回答
- 語彙の最適化: その分野に適した専門用語を使用
- 深い洞察: 表面的な回答ではなく、本質的な理解に基づく説明
実践例
基本形:
| |
具体例(perl-mongerより):
| |
効果の実例:
- Rubyについて質問すると、「Perl好きから見て一言」という独自の視点が出現
- 単なる技術比較ではなく、「魔術性」「アプローチの違い」といった本質的な特徴を指摘
- 寛容さも示す(「どちらも愛でる派です :)」)
参考URL:
2.2 ハルシネーション防止
プロンプト設計5原則
目的と前提を明示
1 2あなたは中立的な法務アドバイザーです。 契約書のリスクを解説してください。情報範囲の制限
1 2以下の資料のみを根拠に回答してください。 資料に書かれていない推測は含めないでください。出典・根拠を明示させる
1 2必ず公式ソースのURLを併記してください。 引用する場合は出典を明記してください。思考プロセスを可視化
1回答の根拠や考え方を段階的に説明してください。不明点は"わからない"と答えるよう指示
1 2根拠がない場合は「わからない」と答えてください。 推測で回答しないでください。
実践テンプレート
| |
参考URL:
- https://ai-keiei.shift-ai.co.jp/hallucination-prompt-measures/
- https://taskhub.jp/useful/prompt-hallucination/
- https://ai-market.jp/howto/chatgpt-hallucination/
- https://engineering.dena.com/blog/2025/12/llm-study-1201/
2.3 重要な部分の強調方法
優先順位の明示
| |
出力フォーマット指定
| |
良例・悪例の併記
| |
参考URL:
3. ドメイン特化型AIの重要性
3.1 専門性を高めるメリット
研究で示されている効果:
- ドメイン内性能の向上: 特定領域に特化することで、より正確で詳細な回答
- ハルシネーションとリスク低減: 専門知識に絞ることで、誤情報生成の確率が低下
- 専門知識・語彙のキャプチャ: ドメイン固有の用語や概念を適切に理解
- 少量データでの有効性: 微調整手法により、少ないデータでも高性能
- コストと効率のトレードオフ: 必要な機能に絞ることで効率的に動作
参考URL:
- https://www.getguru.com/reference/domain-specific-ai
- https://arxiv.org/html/2305.18703v7
- https://www.researchgate.net/publication/391326622_The_Future_of_AI_How_Domain-Specific_LLMs_RAG_Agentic_AI_Are_Redefining_Intelligence
3.2 定義の粒度 - Less is More
シンプルな定義の強み
問題: 細かく定義しすぎると、定義しなかったことが抜けてしまう
例:
| |
この場合、定義にないフレームワークやモジュールについて聞かれると対応が硬直化する。
良い例(シンプル):
| |
AIの基礎知識と推論能力が、シンプルな性格設定から適切な回答を導く。
教訓: 定義しすぎない感じが良い
参考URL:
4. 内部リンク(関連記事)
タグ検索結果
リポジトリ内の関連記事で使用されているタグ:
GitHub Copilot関連:
github-copilotcopilotcustom-agentscustom-agent
AI関連:
aiai-developmentdomain-specific-ai
エージェント関連:
agentsawesome-copilot
プロンプト関連:
promptprompt-engineering(提案)
既存の関連記事
エージェントガイドラインを作成するプロンプトを試してみた
- パス:
/content/post/2025/11/27/233234.md - タグ:
ai,copilot,prompt - 内容: GitHub Blogのプロンプトを使ったAGENTS.md作成体験
- パス:
エージェントパネルから記事を生成してみた
- パス:
/content/post/2025/11/29/010643.md - タグ:
ai,copilot,prompt - 内容: エージェントパネルからの記事生成体験、AGENTS.mdの自動改善
- パス:
GitHub Copilot の awesome-copilot で開発体験を向上させる
- パス:
/content/post/2025/12/06/212332.md - タグ:
github-copilot,awesome-copilot,custom-agents,ai-development,domain-specific-ai - 内容: awesome-copilotリポジトリの紹介、ドメイン特化型AIの重要性
- パス:
perl-mongerをカスタムエージェントとして定義した
- パス:
/content/post/2025/12/07/012345.md - タグ:
perl,custom-agent,github-copilot,ai,perl-monger - 内容: ドメイン特化型エージェントの実例、定義の粒度、A2Aプロトコル
- パス:
5. 追加の重要情報
5.1 A2Aプロトコル(Agent to Agent)
エージェント間通信の標準化プロトコル。
目的: 異なるベンダーや実装のAIエージェント同士が標準化された方法で連携
中核要素:
- Agent Card(能力公開)
- Task(作業単位)
- Message/Parts(多モーダルなやり取り)
- Artifact(成果物)
通信: JSON-RPC 2.0 over HTTP(S)、SSEストリーミング対応
利点:
- カスタム連携の減少
- 相互運用性の向上
- マイクロサービス的に専門エージェントを組み合わせやすい
参考URL:
5.2 AGENTS.md vs その他の設定ファイル
AGENTS.mdの位置づけ:
- ベンダー中立的なフォーマット
.cursor,CLAUDE.md,gemini.mdなどツール固有の設定を統合
使い分け:
README.md: 人間向けのプロジェクト説明AGENTS.md: AIエージェント向けの指示・制約copilot-instructions.md: GitHub Copilot固有の設定.github/agents/*.agent.md: カスタムエージェント定義
参考URL:
- https://agents.md/
- https://devcenter.upsun.com/posts/why-your-readme-matters-more-than-ai-configuration-files/
6. ベストプラクティスまとめ
AGENTS.md作成のベストプラクティス
- ✅ ルートディレクトリに配置 - リポジトリルートに
AGENTS.md - ✅ 具体的なコード例を含める - 説明だけでなく実例を示す
- ✅ 境界を明確にする - 編集禁止のファイル、実行禁止の操作
- ✅ バージョン情報を明記 - 技術スタック、依存関係のバージョン
- ✅ 簡潔で実行可能な指示 - 曖昧な表現を避け、具体的なコマンドを記載
- ✅ 定期的な更新 - プロジェクトの進化に合わせて更新
カスタムエージェント定義のベストプラクティス
- ✅ 役割を特化させる - 汎用的ではなく、明確で狭い目的
- ✅ シンプルな定義 - 細かく定義しすぎない(Less is More)
- ✅ 名前の一致 - handoffs での agent 名と参照先の name を一致
- ✅ 配置場所の統一 -
.github/agents/{role}.agent.md - ✅ ツールの最小化 - 必要なツールのみを許可
- ✅ ワークフローの明示 - エージェント間の連携フローを定義
プロンプトエンジニアリングのベストプラクティス
- ✅ 役割を付与 - 専門家としての視点を与える
- ✅ 優先順位を明示 - 正確性、簡潔性などの優先順位
- ✅ 出典要求 - 必ず公式ソースを併記させる
- ✅ 不明点の扱い - わからない場合は推測せず「わからない」と答えさせる
- ✅ 出力形式指定 - Markdown、コードブロックなど形式を明確に
- ✅ 良例・悪例の提示 - 期待する出力の具体例を示す
7. 記事執筆時の推奨事項
技術的な正確性を担保するための情報源
公式ドキュメント:
GitHub Copilot カスタムエージェント公式ドキュメント
AGENTS.md 公式サイト
GitHub Blog
研究論文:
- ドメイン特化型AI
技術ブログ(信頼性:中~高):
Zenn記事
企業技術ブログ
DeNA技術ブログ
プロトコル仕様:
- A2Aプロトコル
記事の構成提案
導入
- エージェント間連携がうまくいくようになってきた経緯
- 読者への約束(この記事を読むと何ができるようになるか)
基礎知識
- AGENTS.mdとは何か
- カスタムエージェントとは何か
- なぜドメイン特化型が効果的か
実践編:3つのポイント
- 名前の一致
- 定義の場所の明示
- ワークフローとしての定義
プロンプトエンジニアリングの基礎
- 役割付与
- ハルシネーション防止
- 強調方法
実例紹介
- このリポジトリでの実装例
- perl-monger の事例
- ワークフローの実例
まとめ
- ベストプラクティスの再確認
- 次のステップの提案
内部リンクの配置推奨箇所
- 導入部: 「エージェントガイドラインを作成するプロンプトを試してみた」へのリンク
- ドメイン特化型の説明: 「GitHub Copilot の awesome-copilot で開発体験を向上させる」へのリンク
- 実例紹介: 「perl-mongerをカスタムエージェントとして定義した」へのリンク
- エージェントパネルの説明: 「エージェントパネルから記事を生成してみた」へのリンク
8. 調査結論
主要な発見
AGENTS.mdは業界標準: 60,000以上のリポジトリで採用され、ベンダー中立的なフォーマットとして確立
エージェント間連携の成功は3つのポイント:
- 名前の一致
- 定義の場所の明示
- ワークフローとしての定義
ドメイン特化型AIの有効性: 研究で裏付けられた、専門性を高めることの効果
Less is More: 細かく定義しすぎるより、シンプルな役割付与の方が効果的
プロンプトエンジニアリングの5原則: ハルシネーション防止のための明確な設計原則
次のステップ
記事作成時には以下を含めることを推奨:
- ✅ 実際のコード例(YAML、Markdown)
- ✅ ワークフロー図(テキストまたはmermaid)
- ✅ 良い例・悪い例の対比
- ✅ 内部リンクによる関連記事への誘導
- ✅ 公式ドキュメントへの参照
- ✅ 初心者にも分かりやすい説明
9. 参考資料一覧
公式ドキュメント
- Creating custom agents - GitHub Docs
- Custom agents configuration - GitHub Docs
- カスタム エージェントについて - GitHub ドキュメント
- AGENTS.md Official Site
GitHub Blog
- How to write a great agents.md: Lessons from over 2,500 repositories
- 5 tips for writing better custom instructions for Copilot
- Copilot coding agent now supports AGENTS.md custom instructions
技術記事(日本語)
- GitHub Copilot カスタムエージェントのための agents.md 作成ベストプラクティス - Zenn
- GitHub Copilot カスタムエージェント実践ガイド - IT-ARAIGUMA
- はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】- ServerWorks
- プロンプトでハルシネーションは対策できる!- Taskhub
- ChatGPTでハルシネーションを抑制する対策 - AI Market
- LLM Study #1201 - DeNA Engineering
技術記事(英語)
- Build Your Own GitHub Copilot Agent: From Zero to Hero
- Build a Custom Copilot @test-agent with agents.md Guide
- Unlock GitHub Copilot’s Full Potential - Build5Nines
- What is AGENTS.md and Why Should You Care? - DEV Community
- AGENTS.md: Why your README matters more
研究・仕様
- A2A Protocol Official Site
- Domain-Specific AI - Guru
- Domain-Specific LLMs Research - arXiv
- The Future of AI: Domain-Specific LLMs - ResearchGate
リポジトリ内関連記事
- エージェントガイドラインを作成するプロンプトを試してみた
- エージェントパネルから記事を生成してみた
- GitHub Copilot の awesome-copilot で開発体験を向上させる
- perl-mongerをカスタムエージェントとして定義した
調査完了日: 2025-12-20
調査者: investigative-research エージェント
保存場所: content/warehouse/agent-coordination-best-practices.md