제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"
    }
  ]
}

스킬 인덱스 필드

필드타입필수설명
protocolProtocolVersion프로토콜 버전
providerobject제공자 정보
provider.namestring제공자 이름
provider.urlstring아니오제공자 웹사이트
skillsSkillIndexEntry[]스킬 목록

스킬 인덱스 엔트리 필드

필드타입필수설명
idstring스킬 고유 식별자
namestring스킬 이름
capability_typeCapabilityType능력 유형
descriptionstring간략한 설명
descriptor_urlstring전체 Descriptor URL
accessAccessPolicy접근 제어 정책
versionstring스킬 버전

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에 접근할 때, 반환되는 스킬 인덱스에는 accessprivate인 스킬이 포함되지 않습니다
  • 인증된 요청은 모든 스킬(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-v1
  • org.openai.gpt4-v1
  • io.github.user.code-review-v2