Skip to content
DigitalNeuron
도구·제품

클로드와 오픈AI, 둘 다 «반드시 유효한 JSON»을 강제하는 방법을 내놨다 — 뭐가 다른가

두 회사 모두 이제 «모델이 알아서 형식을 맞춰주길 바라는» 대신 스키마를 100% 지키게 강제하는 스트릭트 모드를 제공한다. 설정 규칙은 구체적이고, 오픈AI 공식 지침은 여전히 한 번에 넘기는 도구 수를 제한하라고 말한다.

DigitalNeuron Desk3분 읽기

한 줄 답

클로드와 오픈AI 는 «검증·재시도가 필요 없는» 구조화 출력을 어떻게 받으라고 권하나?

둘 다 스트릭트 모드를 제공한다 — 클로드는 도구 정의에 `strict: true`, 오픈AI는 응답 형식에 `strict: true` 를 넣는 Structured Outputs. 오픈AI 는 `additionalProperties: false`와 모든 필드를 required 에 넣을 것을 요구하고, 선택 필드는 목록에서 빼는 대신 nullable 로 표현한다. 두 가이드 모두 모호한 함수 설명과 너무 많은 도구가 조용히 정확도를 떨어뜨린다고 경고한다.

핵심 요약

  • 오픈AI 의 Structured Outputs 와 클로드의 스트릭트 도구 사용 둘 다 스키마 준수를 «보장»한다 — 예전 방식의 JSON 모드는 보장하지 않고, 여전히 형식이 깨진 출력을 돌려줄 수 있다.
  • 오픈AI 의 스트릭트 스키마는 `additionalProperties: false` 와 모든 필드의 required 등재를 요구한다. «선택 필드»를 목록에서 빼는 방법은 없다 — 대신 nullable 로 표현한다.
  • 오픈AI 자체 지침은 한 턴 시작 시점의 가용 함수 수를 대략 20개 아래로 유지하라고 권한다. 정의 하나하나가 입력 토큰으로 잡히고, 선택지가 많을수록 정확도가 떨어지기 때문이다.
  • 클로드 문서는 모델별로 실제 신뢰도 차이가 있다고 밝힌다 — 필수 매개변수가 프롬프트에 빠졌을 때, 오퍼스는 되물을 확률이 높고 소네트는 그럴듯한 값을 추측할 확률이 더 높다.
  • 두 플랫폼 다 도구·함수 정의를 매 호출마다 일반 입력 토큰으로 과금한다. 클로드는 모델별로 이게 정확히 얼마나 더해지는지 수치를 공개한다.

LLM 에게 함수를 호출시키거나 JSON 을 받는 건 늘 «대부분은» 잘 돌아갔다 — 그런데 이게 «아예 안 되는 것»보다 나쁜 문제다. 실패는 손으로 테스트한 아흔아홉 번이 아니라, 만 번째 호출에서 파서가 죽는 순간에 나타난다. 이제 클로드와 오픈AI 둘 다 이 문장에서 «대부분은»을 빼주는 모드를 공식으로 낸다. 두 회사 공식 설정 규칙은 추측할 필요 없이 그대로 따라 하면 될 만큼 구체적이다.

양쪽 다 있는 스트릭트 모드

클로드 쪽은 커스텀 도구 정의에 strict: true 를 추가하면 클로드의 도구 호출이 스키마와 반드시 일치하게 보장된다. 오픈AI 쪽은 Structured Outputs 라고 부르며 text: { format: { type: "json_schema", strict: true, schema: … } } 로 설정한다. 오픈AI 는 이걸 예전 «JSON 모드»의 후속작이라고 명시적으로 규정한다 — JSON 모드는 스키마가 실제로 지켜진다는 보장이 전혀 없었고, Structured Outputs 는 그걸 보장한다.

낯선 사람이 봐도 되게 함수 설명을 쓴다

오픈AI 자체 조언은 함수 이름·매개변수 설명·사용 지침을 «인턴 테스트»라 부르는 기준에 맞게 명확히 쓰라는 것이다 — 다른 맥락 없이 문서만 보고 신입 직원이 그 함수를 제대로 쓸 수 있어야 한다는 뜻이다. 여기엔 «이 함수가 언제 명백히 맞는 선택인지»뿐 아니라, 시스템 프롬프트에서 «언제 부르고 언제 부르지 말아야 하는지»를 엣지 케이스 예시와 함께 명시적으로 적는 것도 포함된다.

도구는 적을수록 정확하다

가진 도구를 전부 넘기고 모델이 알아서 고르게 하고 싶어지는 건 자연스럽다. 오픈AI 지침은 이걸 정면으로 반박한다 — 정확도를 위해 한 턴 시작 시점의 가용 함수 수를 대략 20개 아래로 유지하고, 그 턴에 쓰이든 안 쓰이든 함수 정의 하나하나가 입력 토큰으로 잡힌다는 걸 기억하라는 것이다. 늘 같은 순서로 호출되는 함수 묶음이 있다면, 오픈AI 는 매번 모델이 여러 호출을 정확히 이어 붙이게 하는 대신 하나의 작업으로 합치라고 제안한다.

클로드 모델은 같은 방식으로 실패하지 않는다

클로드 문서에는 실제 서비스에서 발견하기 전에 미리 계획해둘 만한, 모델별 신뢰도 차이에 대한 구체적인 언급이 있다 — 사용자가 실제로 적은 내용에 필수 매개변수가 빠져 있을 때, 오퍼스는 그 공백을 알아채고 되물을 확률이 훨씬 높은 반면, 소네트는 스스로 그럴듯한 값을 추론할 확률이 더 높다(예를 들어 어느 위치인지 묻는 대신 하나를 추측하는 식). 어느 쪽이든 «보장된» 동작은 아니지만, 각 모델이 기우는 방향은 그렇고, 모호한 프롬프트에 성능이 낮은 모델을 쓸수록 이 경향은 더 심해진다.

강제 호출과 동시 호출

두 플랫폼 다 «도구를 쓸지 말지»에 대한 클로드·오픈AI 의 기본 판단을 건너뛸 수 있게 해준다. 클로드는 기본값인 {"type": "auto"} 대신 tool_choice 로 강제 호출을 노출한다. 오픈AI 는 GPT-5 이후 모델의 내장 도구에서 병렬 함수 호출을 지원하고, 턴당 정확히 하나만 원한다면 parallel_tool_calls: false 를 쓰면 된다 — 단, 내장 도구는 이 설정과 무관하게 병렬 그룹으로 묶이지 않는다.

날짜를 확인하시라. 오픈AI 문서는 새 Structured Outputs 프로젝트에 gpt-5.6 을 권하고, 도구 검색은 gpt-5.4 이후 모델에서만 된다고 적어둔다. 클로드의 도구 사용 토큰 오버헤드는 현재 모델 세대 기준으로 공개된 수치다. 두 숫자 다 새 모델이 나올 때마다 바뀐다 — 위 수치를 영구적인 값으로 여기지 말고 링크된 원문을 직접 확인하시라.

자주 묻는 질문

Structured Outputs 는 예전 JSON 모드와 같은 건가?
아니다. 오픈AI는 Structured Outputs 를 JSON 모드의 «진화형»이라고 설명한다 — JSON 모드는 스키마 준수를 보장하지 않지만 Structured Outputs 는 보장한다. 오픈AI 자체 비교표는 gpt-4o-2024-08-06 이전 모델에 한해서만 예전 JSON 모드를 권한다.
스트릭트 모드는 스키마에 실제로 무엇을 요구하나?
오픈AI 쪽은 모든 객체에 `additionalProperties: false`, 그리고 모든 속성을 required 에 등재 — 선택 필드는 목록에서 빼는 대신 nullable 타입으로 표현한다. 클로드 쪽은 도구 정의에 `strict: true` 를 추가하면 된다.
도구가 많을수록 모델에게 늘 도움이 되나?
아니다. 오픈AI 지침은 정확도를 위해 한 턴당 가용 함수를 대략 20개 아래로 유지하라고 명시하고, 그 턴에 쓰이든 안 쓰이든 정의 하나하나가 입력 토큰으로 과금된다고 밝힌다.
모델에게 특정 도구를 «반드시» 부르게 강제할 수 있나?
두 플랫폼 다 가능하다. 클로드는 도구 사용 강제 문서에 나온 `tool_choice` 파라미터로 노출한다. 오픈AI 는 `parallel_tool_calls: false` 설정을 명시적 도구 선택과 함께 써서 정확히 한 번만 호출되게 할 수 있다.

출처

  1. Tool use with ClaudeAnthropic
  2. Function callingOpenAI
  3. Structured model outputsOpenAI
  4. Introduction to Structured OutputsOpenAI
태그claudechatgptfunction-callingstructured-outputapidocumentation

함께 읽기

앤트로픽과 오픈AI가 공통으로 권하는 프롬프트 작성법 5가지

두 회사의 공개 지침은 핵심이 같다. 질문이 아니라 지시로 쓸 것, 모르면 모른다고 해도 된다고 «먼저 허락»할 것, 맥락을 질문 앞에 둘 것, 한 프롬프트에 한 가지 일만 시킬 것, 얼마나 알아서 할지를 정해줄 것. 다섯의 공통점은 전부 «모호함을 지운다»는 것이다 — 붙여넣으면 숨은 성능이 열리는 주문은 하나도 없다.

4분 읽기

클로드 프로젝트·챗지피티 프로젝트, 언제 «본전»을 뽑나 — 두 회사 공식 도움말로 확인

두 회사 모두 프로젝트를 같은 방식으로 규정한다 — 자기만의 대화 기록·업로드한 참조 파일·고정 지침을 가진 작업공간이라, 매 세션 맥락을 다시 설명할 필요가 없어진다는 것. 클로드는 무료 계정을 프로젝트 5개로 제한하고 유료 플랜에서 지식 용량을 최대 10배까지 늘려주며, 챗지피티는 프로젝트의 기억 범위를 «그 프로젝트 안의 대화»로만 한정하고 계정 전체로 넓히지 않는다.

3분 읽기

앤트로픽, 연구자를 위한 워크벤치 '클로드 사이언스' 출시

앤트로픽은 과학 도구와 전문 에이전트, 데이터베이스, 컴퓨팅 자원을 결합한 연구 워크벤치 '클로드 사이언스'를 공개했다. 베타 버전은 macOS와 리눅스에서 클로드 프로, 맥스, 팀, 엔터프라이즈 이용자에게 제공되며, 재현 가능한 분석과 문헌 작업, 도표 작성, 논문 초고, 관리형 컴퓨팅 작업 등의 기능을 갖췄다.

3분 읽기