본문으로 건너뛰기

KnowledgeUnit 프로토콜

KnowledgeUnit 프로토콜은 AI 생성 지식을 표현하기 위한 표준 형식을 정의합니다. 모든 지식 유닛은 잘 정의된 스키마, 유형 식별자, 버전 관리 계약을 가진 JSON-LD 문서입니다.

JSON-LD 형식

모든 KnowledgeUnit은 두 개의 필수 컨텍스트 필드를 가진 JSON-LD 문서입니다:

{
"@context": "https://openknowledgepulse.org/schema/v1",
"@type": "Trace",
"id": "kp:trace:a1b2c3d4",
...
}
  • @context -- 스키마 네임스페이스 URI. 모든 v1.x 문서는 https://openknowledgepulse.org/schema/v1 컨텍스트를 공유합니다. 새 메이저 버전은 새 컨텍스트 URI(예: .../v2)를 도입합니다.
  • @type -- 유형 식별자. Trace, Pattern, SOP 중 하나.

KnowledgeUnit 유형

프로토콜은 각각 고유한 ID 접두사를 가진 세 가지 지식 유닛 유형을 정의합니다:

유형ID 접두사설명
Tracekp:trace:단일 에이전트 상호작용의 기록 -- 무엇이 일어났고, 무엇을 시도했고, 결과가 무엇이었는지. 추적은 패턴이 추출되는 원재료입니다.
Patternkp:pattern:여러 추적에서 추출된 반복적인 솔루션이나 접근 방식. 패턴은 "X가 발생하면 Y를 수행"과 같은 재사용 가능한 지식을 캡처합니다.
SOPkp:sop:표준 운영 절차 -- 패턴에서 조합된 큐레이트된 단계별 워크플로우. SOP는 시스템에서 가장 높은 충실도의 지식을 나타냅니다.

Trace에서 Pattern, SOP로의 진행은 큐레이션과 신뢰도의 증가를 반영합니다:

Trace (원시 관찰)
→ Pattern (반복적인 솔루션)
→ SOP (큐레이트된 워크플로우)

스키마 버전 관리 전략

KnowledgePulse는 스키마에 시맨틱 버전 관리를 사용하며, 각 버전 수준에 대한 명확한 규칙이 있습니다:

패치 버전 (예: 1.0.0 → 1.0.1)

  • 필드 설명의 버그 수정 및 명확화.
  • @context URI 변경 없음.
  • 새 필드 없음, 삭제된 필드 없음.
  • 모든 기존 소비자가 수정 없이 계속 작동.

마이너 버전 (예: 1.0.0 → 1.1.0)

  • 추가만 가능 -- 새로운 선택적 필드가 도입될 수 있음.
  • @context URI 변경 없음 (여전히 https://openknowledgepulse.org/schema/v1).
  • 기존 필드가 삭제되거나 의미가 변경되지 않음.
  • 기존 소비자가 계속 작동; 새 필드를 단순히 무시.

메이저 버전 (예: v1 → v2)

  • 호환성이 깨지는 변경 -- 필드가 삭제, 이름 변경, 또는 의미가 변경될 수 있음.
  • @context URI (예: https://openknowledgepulse.org/schema/v2).
  • 명시적 마이그레이션 필요.

하위 호환성 규칙

두 가지 규칙이 버전 간 상호 운용성을 관리합니다:

  1. v1 소비자는 모든 v1.x 문서를 파싱할 수 있어야 하며, 알 수 없는 필드를 무시합니다. v1.0에 맞춰 작성된 소비자는 v1.3 문서를 오류 없이 수용해야 합니다 -- 인식하지 못하는 필드를 단순히 폐기합니다.

  2. v2 소비자는 자동 마이그레이션으로 v1 문서를 수용해야 합니다. v2 소비자가 v1 문서를 만나면, 등록된 마이그레이션 함수를 적용하여 문서를 즉시 업그레이드합니다.

버전 협상

REST API

클라이언트는 KP-Schema-Version 요청 헤더를 사용하여 선호하는 스키마 버전을 선언합니다:

GET /v1/knowledge/kp:trace:abc123
KP-Schema-Version: 1.2.0

서버는 요청된 버전(또는 가장 가까운 호환 버전)으로 지식 유닛을 응답하고, 해결된 버전을 다시 반환합니다:

HTTP/1.1 200 OK
KP-Schema-Version: 1.2.0
Content-Type: application/ld+json

서버가 요청된 버전을 만족시킬 수 없으면 406 Not Acceptable을 반환합니다.

MCP 도구

MCP 도구는 schema_version 매개변수를 받습니다:

{
"tool": "knowledgepulse_retrieve",
"arguments": {
"id": "kp:trace:abc123",
"schema_version": "1.2.0"
}
}

반환된 지식 유닛은 요청된 스키마 버전을 준수합니다.

마이그레이션 시스템

마이그레이션 함수는 packages/sdk/src/migrations/에 위치하며 체인 가능합니다. 각 마이그레이션 함수는 버전 N에서 버전 N+1로 문서를 변환합니다:

v1 → v2 → v3

v1 문서를 v3로 마이그레이션하기 위해 SDK는 v1→v2와 v2→v3 마이그레이션을 자동으로 체인합니다. 이 설계는 각 마이그레이션이 단일 버전 단계만 처리하면 되므로 로직을 단순하고 테스트 가능하게 유지합니다.

import { migrate } from "@knowledgepulse/sdk";

// v1 문서를 최신 버전으로 마이그레이션
const upgraded = migrate(v1Document, { targetVersion: "3.0.0" });

마이그레이션 함수는 순수합니다 -- 문서를 받아 부작용 없이 새 문서를 반환합니다.

지원 중단 정책

새 메이저 버전이 출시될 때:

  1. 이전 메이저 버전은 새 버전 출시일로부터 12개월 동안 지원됩니다.
  2. 지원 중단 기간 동안, 이전 버전에 대한 응답에 KP-Deprecated: true 헤더가 포함되어 소비자에게 업그레이드를 알립니다.
  3. 12개월 기간이 지나면 서버는 이전 버전 제공을 중단하고 410 Gone을 반환할 수 있습니다.
HTTP/1.1 200 OK
KP-Schema-Version: 1.5.0
KP-Deprecated: true
Content-Type: application/ld+json

클라이언트는 KP-Deprecated 헤더를 모니터링하고 그에 따라 마이그레이션을 계획해야 합니다.