公開エージェントディスカバリー
これらの例を使って、他の A2A クライアントがあなたのエージェントがタスクを完了できるか判断する前に取得する JSON の形を決めましょう。
6 件のコピー可能な JSON テンプレート · A2A v1.0
実用的な A2A v1.0 テンプレートを閲覧し、その設計上の判断を理解した上で、あなた自身のエージェント向けに例を適応させましょう。
これらの例を使って、他の A2A クライアントがあなたのエージェントがタスクを完了できるか判断する前に取得する JSON の形を決めましょう。
プロバイダー、スキル、タグ、能力、セキュリティメタデータを適応させ、レビュアーがエージェントの機能と運営者を理解できるようにしましょう。
チームがワークフローに統合する前に、社内エージェント間でエンドポイント、認証、スキルの説明を標準化しましょう。
JSON テンプレート
製品に関する質問、注文の照会、返品、エスカレーション対応を処理します。
このように設計されている理由
{
"name": "カスタマーサポートエージェント",
"description": "カスタマー サポートの質問に答え、注文のコンテキストを取得し、未解決の問題を人間のチームにエスカレーションします。",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/customer-support",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "株式会社イ例",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": true,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"text/plain",
"application/json"
],
"skills": [
{
"id": "resolve-customer-support-request",
"name": "カスタマーサポートリクエストを解決する",
"description": "顧客サポートのリクエストを分類し、必要なコンテキストを収集し、解決策を提案し、信頼性が低い場合はエスカレーションします。",
"tags": [
"support",
"orders",
"returns"
],
"examples": [
"注文品の返品を手伝ってください。"
]
}
],
"securitySchemes": {
"oauth2": {
"oauth2SecurityScheme": {
"flows": {
"clientCredentials": {
"tokenUrl": "https://api.example.com/a2a/customer-support/oauth/token",
"scopes": {
"agent.invoke": "Invoke agent skills"
}
}
}
}
}
},
"security": [
{
"oauth2": [
"agent.invoke"
]
}
]
}利用可能な予約枠を見つけ、予約確認を準備します。
このように設計されている理由
{
"name": "予約エージェント",
"description": "空き状況を検索し、予約オプションを提案し、承認を受けるための予約を準備します。",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/booking",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "株式会社イ例",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": false,
"pushNotifications": true,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "find-and-prepare-booking",
"name": "予約を見つけて準備する",
"description": "リソースの可用性を確認し、予約ウィンドウを比較し、構造化された予約提案を返します。",
"tags": [
"booking",
"calendar",
"availability"
],
"examples": [
"明日の午後に 30 分間の約束を見つけてください。"
]
}
],
"securitySchemes": {
"apiKey": {
"apiKeySecurityScheme": {
"location": "header",
"name": "X-API-Key"
}
}
},
"security": [
{
"apiKey": []
}
]
}商品、在庫状況、価格、購入制約を比較します。
このように設計されている理由
{
"name": "ショッピングエージェント",
"description": "製品をユーザーの制約と比較し、トレードオフのあるランク付けされた購入オプションを返します。",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/shopping",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "株式会社イ例",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": false,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "compare-shopping-options",
"name": "ショッピングオプションを比較する",
"description": "候補製品を評価し、制約によってフィルタリングし、根拠を付けてランク付けされた推奨事項を返します。",
"tags": [
"shopping",
"commerce",
"recommendations"
],
"examples": [
"1,200 ドル以下の軽量ラップトップを比較します。"
]
}
],
"securitySchemes": {
"oauth2": {
"oauth2SecurityScheme": {
"flows": {
"clientCredentials": {
"tokenUrl": "https://api.example.com/a2a/shopping/oauth/token",
"scopes": {
"agent.invoke": "Invoke agent skills"
}
}
}
}
}
},
"security": [
{
"oauth2": [
"agent.invoke"
]
}
]
}コーディングタスクをレビューし、パッチを提案し、実装の決定を説明します。
このように設計されている理由
{
"name": "コーディングエージェント",
"description": "コードを分析し、変更を提案し、実装メモを返すことにより、ソフトウェア エンジニアリングのタスクを支援します。",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/coding",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "株式会社イ例",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": true,
"extendedAgentCard": true
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"text/plain",
"application/json"
],
"skills": [
{
"id": "implement-code-change",
"name": "コード変更を実装する",
"description": "コーディング要求を読み取り、関連ファイルを検査し、パッチ提案を返し、検証手順を要約します。",
"tags": [
"coding",
"review",
"patches"
],
"examples": [
"ユーザー API にページネーションを追加します。"
]
}
],
"securitySchemes": {
"apiKey": {
"apiKeySecurityScheme": {
"location": "header",
"name": "X-API-Key"
}
}
},
"security": [
{
"apiKey": []
}
]
}情報源を収集し、証拠を抽出し、構造化されたリサーチノートを返します。
このように設計されている理由
{
"name": "リサーチエージェント",
"description": "ソース資料を収集し、証拠を抽出し、引用を含む構造化された研究ノートを作成します。",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/research",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "株式会社イ例",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": false,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain"
],
"defaultOutputModes": [
"text/plain",
"application/json"
],
"skills": [
{
"id": "prepare-research-brief",
"name": "研究概要を準備する",
"description": "承認された情報源を検索し、主張と証拠を抽出し、簡潔な研究概要を返します。",
"tags": [
"research",
"evidence",
"citations"
],
"examples": [
"再生可能エネルギー政策に関する引用された概要を準備します。"
]
}
]
}承認、ステータスチェック、バックオフィスのワークフロー更新を調整します。
このように設計されている理由
{
"name": "社内ワークフローエージェント",
"description": "内部の承認を調整し、システムのステータスを確認し、運用チーム向けのワークフローの更新を準備します。",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/workflow",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "株式会社イ例",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": false,
"pushNotifications": true,
"extendedAgentCard": true
},
"defaultInputModes": [
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "coordinate-internal-workflow",
"name": "社内ワークフローを調整する",
"description": "ワークフローの意図を受け取り、ポリシー要件を確認し、承認を収集し、最終ステータスを報告します。",
"tags": [
"workflow",
"operations",
"approval"
],
"examples": [
"給与更新を展開するための承認をリクエストします。"
]
}
],
"securitySchemes": {
"oauth2": {
"oauth2SecurityScheme": {
"flows": {
"clientCredentials": {
"tokenUrl": "https://api.example.com/a2a/workflow/oauth/token",
"scopes": {
"agent.invoke": "Invoke agent skills"
}
}
}
}
}
},
"security": [
{
"oauth2": [
"agent.invoke"
]
}
]
}自信を持って適応させる
各 Agent Card の例は、コピーするのに十分なほど意図的に完成されていますが、Agent Card は変更せずに公開すべきではありません。あなた自身の A2A サーバーのフィールドマップとして扱ってください:ID、エンドポイント、プロバイダー、認証、能力、モード、スキルの詳細を本番の値に置き換えます。
最も優れた Agent Card は、平易な言葉と機械可読なメタデータの両方でエージェントのタスク境界を説明します。クライアントは、エージェントが何をできて何をできないか、どの URL を呼び出すべきか、資格情報が必要かどうかを判断できるはずです。
すべての example.com の URL を、デプロイ済みの A2A エンドポイントとプロバイダーのウェブサイトに置き換えます。
実際のタスク境界に合わせて、スキル名、説明、タグ(v1.0 で必須)、例を書き直します。
provider.organization を設定し、Agent Card の内容が変わるたびにトップレベルの version を上げます。
エンドポイントが意図的に公開されている場合にのみ、認証フィールドを削除します。
defaultInputModes と defaultOutputModes を、あなたのサーバーが実際に受け入れ、返す内容と一致させておきます。
最終的な JSON を検証し、サービスドメインの /.well-known/agent-card.json に公開します。
構築の準備ができました
Agent Card ジェネレーターでどのパターンでも開き、JSON をレビューし、公開前に検証してください。
ブログから
Learn how to create an agent.json file for A2A v1.0, including required Agent Card fields, the well-known URL, response headers, and common mistakes.
11 min readガイドを読むIntegrationLearn how to publish an A2A Agent Card from Google ADK, LangGraph, CrewAI, or Semantic Kernel by mapping framework concepts to standard discovery fields.
10 min readガイドを読むComparisonCompare A2A vs MCP: what each protocol connects, where they overlap, and why production AI agent systems often use both for tools and agent collaboration.
9 min readガイドを読む記事は英語で公開されています。