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
