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_schemaname инструмента всегда действителен (из предоставленных инструментов или серверных инструментов)Определите схему вашего инструмента
Создайте JSON Schema для input_schema вашего инструмента. Схема использует стандартный формат JSON Schema с некоторыми ограничениями (см. Ограничения JSON Schema).
Добавьте strict: true
Установите "strict": true как свойство верхнего уровня в определении вашего инструмента, рядом с name, description и input_schema.
Обрабатывайте вызовы инструментов
Когда Claude использует инструмент, поле input в блоке tool_use будет строго следовать вашей input_schema, а name всегда будет действительным.
Строгое использование инструментов компилирует определения input_schema инструментов в грамматики с использованием того же конвейера, что и структурированные выходные данные. Схемы инструментов временно кэшируются на срок до 24 часов с момента последнего использования. Запросы и ответы не сохраняются после получения ответа API.
Строгое использование инструментов соответствует требованиям HIPAA, однако PHI не должна включаться в определения схем инструментов. API кэширует скомпилированные схемы отдельно от содержимого сообщений, и эти кэшированные схемы не получают той же защиты PHI, что запросы и ответы. Не включайте PHI в имена свойств input_schema, значения enum, значения const или регулярные выражения pattern. 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
}
}]
}'