Summary#
OpenAPI를 LLM 구조화 생성의 계약 원천으로 삼아도, 생성 타입·검증기·변환된 JSON Schema·공급자에 전달한 스키마·프롬프트·캐시는 서로 다른 시점의 계약을 참조할 수 있다. 명세 검사 통과나 ‘synced’ 표시는 런타임 계약 일치를 보증하지 않는다.
주요 실패 모드#
- enum·required·additionalProperties·oneOf/anyOf/allOf의 변환 또는 배포 누락으로 생성 스키마와 서버 검증기가 달라진다.
- OpenAPI 3.0의 nullable 의미를 JSON Schema 방식으로 변환할 때 차이가 생길 수 있다. OpenAPI 버전과 대상 공급자의 지원 스키마 범위를 함께 검사해야 한다.
- 캐시된 구버전 스키마로 모델을 호출하고 신버전 스키마로 결과를 검증하면, 같은 요청을 재시도해도 원인이 해결되지 않는다. 재시도 성공률만으로 정상 동기화를 판단해서는 안 된다.
동기화 검증과 운영 안전장치#
- 원본 명세의 버전·해시와 변환기 버전을 산출물에 기록하고, 빌드에서 생성한 기대 산출물 해시를 배포 산출물·런타임 로드 스키마의 해시와 비교한다. 원본 해시와 변환본 해시가 서로 같아야 한다는 뜻은 아니다.
- 모델 호출 시 실제 전달한 스키마의 식별자·해시, 검증기 버전, 프롬프트 버전, 검증 오류 경로 및 재시도 횟수를 기록한다.
- 변환 결과와 서버 검증기에 동일한 정상·오류 fixture를 적용하고, 첫 시도 검증 통과율과 스키마 버전 불일치를 별도로 관측한다.
- 공급자별 구조화 출력 지원 범위와 거절·불완전 응답을 일반 검증 실패와 구분한다. 계약 버전 불일치는 무조건 재시도하지 말고 먼저 계약을 정렬한다.
관련 vault 자료: LLM Structured Output Failure Modes and Retry/Repair Guardrails, OpenAPI Codegen Failure Modes: nullable, oneOf/allOf, and Schema Drift Guardrails.
Sagwan Revalidation 2026-09-27T19:26:17Z#
- verdict:
ok - note: 핵심 실패 모드와 검증·운영 권장안이 여전히 타당하며, 수정이 필요한 오류는 보이지 않는다.
Sagwan Revalidation 2026-10-01T23:53:32Z#
- verdict:
ok - note: 스키마 변환·배포 불일치와 런타임 검증에 관한 설명 및 권장안이 여전히 타당하다.
Sagwan Revalidation 2026-10-04T20:30:36Z#
- verdict:
ok - note: 스키마 드리프트와 동기화 실패에 대한 설명·권장안이 여전히 유효하며 수정할 오류가 없다.
Sagwan Revalidation 2026-10-07T21:19:58Z#
- verdict:
ok - note: 스키마 드리프트와 계약 버전 불일치에 관한 설명·권장안이 여전히 유효하다.
Sagwan Revalidation 2026-10-10T18:45:07Z#
- verdict:
ok - note: 스키마 드리프트와 계약 불일치에 관한 설명·권장안이 여전히 유효하며 수정할 오류가 없다.
Sagwan Revalidation 2026-10-13T10:25:56Z#
- verdict:
ok - note: 스키마 드리프트와 계약 불일치에 대한 설명 및 운영 권장안이 여전히 유효하다.
Sagwan Revalidation 2026-10-16T08:29:40Z#
- verdict:
ok - note: 스키마 드리프트의 실패 모드와 해시·런타임 검증 권장안이 여전히 유효하다.
Sagwan Revalidation 2026-10-19T03:32:55Z#
- verdict:
ok - note: 스키마 드리프트의 실패 모드와 해시·버전 비교 및 런타임 검증 권장안이 여전히 유효하다.