BLUEPRINT
第5章:ディスカバリメカニズム
5.1 概要
Discovery Mechanism(ディスカバリメカニズム)は、スキル消費者が分散ネットワーク内でSkill Descriptorを特定・取得する方法を定義します。プロトコルは柔軟性と拡張性を確保するため、3つの補完的な発見パスを提供します。
5.2 Well-Known URI発見
パス仕様
スキル提供者は自身のドメイン配下に標準化されたパスを公開します:
GET https://{domain}/.well-known/skill-sharing
レスポンス形式:スキルインデックス(Skill Index)
{
"protocol": {
"version": "1.0.0"
},
"provider": {
"name": "Example Corp",
"url": "https://example.com"
},
"skills": [
{
"id": "com.example.translate-v1",
"name": "Universal Translator",
"capability_type": "api",
"description": "100以上の言語をサポートする高品質テキスト翻訳サービス",
"descriptor_url": "https://example.com/skills/translate/descriptor.json",
"access": "restricted",
"version": "2.1.0"
},
{
"id": "com.example.sentiment-v1",
"name": "Sentiment Analyzer",
"capability_type": "api",
"description": "テキスト感情分析サービス",
"descriptor_url": "https://example.com/skills/sentiment/descriptor.json",
"access": "public",
"version": "1.0.0"
}
]
}
スキルインデックスフィールド
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
protocol | ProtocolVersion | はい | プロトコルバージョン |
provider | object | はい | 提供者情報 |
provider.name | string | はい | 提供者名 |
provider.url | string | いいえ | 提供者ウェブサイト |
skills | SkillIndexEntry[] | はい | スキルリスト |
スキルインデックスエントリフィールド
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | はい | スキル一意識別子 |
name | string | はい | スキル名 |
capability_type | CapabilityType | はい | 能力タイプ |
description | string | はい | 簡潔な説明 |
descriptor_url | string | はい | 完全なDescriptor URL |
access | AccessPolicy | はい | アクセス制御ポリシー |
version | string | はい | スキルバージョン |
5.3 直接URL発見
消費者がSkill Descriptorの完全なURLを既に知っている場合、直接取得できます:
GET https://example.com/skills/translate/descriptor.json
レスポンスは完全なSkill Descriptor JSONドキュメントです。
5.4 レジストリ発見(オプション)
Skill Registryはオプションのインデックスサービスであり、クロスドメインのスキル発見を加速するために使用されます。レジストリはプロトコル運用の必須条件ではありません。
クエリインターフェース
GET {registry_url}/skills?type={capability_type}
レスポンス形式
マッチするSkill Descriptor参照のリストを返します。形式はスキルインデックスエントリと同一です。
5.5 アクセス制御と発見
ディスカバリメカニズムはアクセス制御ポリシーと密接に関連しています:
| アクセスポリシー | 未認証での発見 | 認証後の発見 | 呼び出し |
|---|---|---|---|
public | ✓ 可視 | ✓ 可視 | 認証不要 |
restricted | ✓ 可視 | ✓ 可視 | 認証必要 |
private | ✗ 不可視 | ✓ 可視 | 認証必要 |
主要ルール:
- 未認証リクエストがWell-Known URIにアクセスした場合、返されるスキルインデックスには
accessがprivateのスキルは含まれません - 認証済みリクエストはすべてのスキル(privateを含む)を参照可能
5.6 能力タイプフィルタリング
消費者は能力タイプでスキルをフィルタリングできます:
GET /.well-known/skill-sharing?type=api
フィルタリングルール:
- 結果セット内の各スキルの
capability_typeはフィルタ値と等しい - 元のセット内でそのタイプに一致するすべてのスキルが結果に含まれる
- フィルタリングはアクセス制御ルールに影響しない(privateスキルは未認証リクエストに対して不可視のまま)
5.7 スキル識別子の一意性
同一スキルインデックス内で、すべてのスキルのidフィールド値は互いに異なる必要があります。推奨されるID形式:
{reverse_domain}.{skill_name}-v{major_version}
例:
com.example.translate-v1org.openai.gpt4-v1io.github.user.code-review-v2
