도구 정의에 strict: true를 설정하면 모델의 토큰 샘플링을 스키마에 유효한 출력으로 제한하여("grammar-constrained sampling"(문법 제약 샘플링)이라고 하는 기법) Claude의 도구 입력이 JSON Schema와 일치하도록 보장합니다. 이 페이지에서는 엄격 모드가 에이전트에 중요한 이유, 활성화 방법, 일반적인 사용 사례를 다룹니다. 지원되는 JSON Schema 하위 집합은 JSON Schema 제한 사항을 참조하세요. 엄격하지 않은 스키마에 대한 안내는 도구 정의하기를 참조하세요.
엄격한 도구 사용은 도구 매개변수를 검증하여 Claude가 올바른 타입의 인수로 함수를 호출하도록 보장합니다. 다음과 같은 경우에 엄격한 도구 사용을 활용하세요:
신뢰할 수 있는 에이전트 시스템을 구축하려면 스키마 준수가 보장되어야 합니다. 엄격 모드가 없으면 Claude가 호환되지 않는 타입(2 대신 "2")을 반환하거나 필수 필드를 누락하여 함수가 중단되고 런타임 오류가 발생할 수 있습니다.
엄격한 도구 사용은 타입 안전한 매개변수를 보장합니다:
예를 들어, 예약 시스템에 passengers: int가 필요하다고 가정해 보겠습니다. 엄격 모드가 없으면 Claude가 passengers: "two" 또는 passengers: "2"를 제공할 수 있습니다. strict: true를 사용하면 응답에 항상 passengers: 2가 포함됩니다.
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[{"role": "user", "content": "What's the weather like in San Francisco?"}],
tools=[
{
"name": "get_weather",
"description": "Get the current weather in a given location",
"strict": True, # Enable strict mode
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "The unit of temperature, either 'celsius' or 'fahrenheit'",
},
},
"required": ["location"],
"additionalProperties": False,
},
}
],
)
print(response.content)응답 형식: response.content[x].input에 검증된 입력이 포함된 도구 사용 블록
{
"type": "tool_use",
"name": "get_weather",
"input": {
"location": "San Francisco, CA"
}
}보장 사항:
input이 input_schema를 엄격하게 따릅니다name이 항상 유효합니다(제공된 도구 또는 서버 도구에서 가져옴)도구 스키마 정의
도구의 input_schema에 대한 JSON 스키마를 생성하세요. 스키마는 일부 제한 사항이 있는 표준 JSON Schema 형식을 사용합니다(JSON Schema 제한 사항 참조).
strict: true 추가
도구 정의에서 name, description, input_schema와 함께 최상위 속성으로 "strict": true를 설정하세요.
도구 호출 처리
Claude가 도구를 사용할 때 tool_use 블록의 input 필드는 input_schema를 엄격하게 따르며, name은 항상 유효합니다.
엄격한 도구 사용은 구조화된 출력과 동일한 파이프라인을 사용하여 도구 input_schema 정의를 문법으로 컴파일합니다. 도구 스키마는 마지막 사용 이후 최대 24시간 동안 임시로 캐시됩니다. 프롬프트와 응답은 API 응답 이후에 보존되지 않습니다.
엄격한 도구 사용은 HIPAA 적격이지만, 도구 스키마 정의에 PHI를 포함해서는 안 됩니다. API는 컴파일된 스키마를 메시지 콘텐츠와 별도로 캐시하며, 이러한 캐시된 스키마는 프롬프트 및 응답과 동일한 PHI 보호를 받지 않습니다. input_schema 속성 이름, enum 값, const 값 또는 pattern 정규 표현식에 PHI를 포함하지 마세요. PHI는 HIPAA 보호 조치에 따라 보호되는 메시지 콘텐츠(프롬프트 및 응답)에만 나타나야 합니다.
모든 기능에 대한 ZDR 및 HIPAA 적격성은 API 및 데이터 보존을 참조하세요.
특정 URL에서 콘텐츠를 가져오고 읽어 실시간 웹 콘텐츠를 Claude의 컨텍스트로 가져옵니다.
턴 간에 도구 정의를 캐시하여 비용과 지연 시간을 줄입니다.
동일한 문법 제약 샘플링을 사용하여 검증된 JSON 응답을 받습니다.
도구 스키마를 지정하고, 효과적인 설명을 작성하며, Claude가 도구를 호출하는 시점을 제어합니다.
Was this page helpful?