公開エージェントディスカバリー
これらの例を使って、他の 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 をレビューし、公開前に検証してください。