Was this page helpful?
도구 정의에서 strict: true를 설정하면 문법 제약 샘플링을 사용하여 Claude의 도구 입력이 JSON Schema와 일치함을 보장합니다. 이 페이지에서는 엄격한 모드가 에이전트에 중요한 이유, 활성화 방법, 일반적인 사용 사례를 다룹니다. 지원되는 JSON Schema 부분집합은 JSON Schema 제한사항을 참조하세요. 비엄격 스키마 지침은 도구 정의를 참조하세요.
엄격한 도구 사용은 도구 매개변수를 검증하여 Claude가 올바르게 입력된 인수로 함수를 호출하도록 합니다. 다음이 필요한 경우 엄격한 도구 사용을 사용하세요:
신뢰할 수 있는 에이전트 시스템을 구축하려면 보장된 스키마 준수가 필요합니다. 엄격한 모드가 없으면 Claude가 호환되지 않는 타입("2" 대신 2)을 반환하거나 필수 필드를 누락하여 함수를 손상시키고 런타임 오류를 발생시킬 수 있습니다.
엄격한 도구 사용은 타입 안전 매개변수를 보장합니다:
예를 들어, 예약 시스템에 passengers: int가 필요하다고 가정합니다. 엄격한 모드가 없으면 Claude가 passengers: "two" 또는 passengers: "2"를 제공할 수 있습니다. strict: true를 사용하면 응답에는 항상 passengers: 2가 포함됩니다.
응답 형식: 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 추가
도구 정의에서 "strict": true를 최상위 속성으로 설정하고, name, description, input_schema와 함께 배치합니다.
도구 호출 처리
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 및 데이터 보존을 참조하세요.
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "What is the weather in San Francisco?"}
],
"tools": [{
"name": "get_weather",
"description": "Get the current weather in a given location",
"strict": true,
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"],
"additionalProperties": false
}
}]
}'