Установка strict: true в определении инструмента гарантирует, что входные данные инструментов Claude соответствуют вашей схеме JSON Schema, ограничивая сэмплирование токенов модели только выходными данными, валидными по схеме (техника, называемая «grammar-constrained sampling» (сэмплирование, ограниченное грамматикой)). Эта страница описывает, почему строгий режим важен для агентов, как его включить и распространённые случаи использования. Для поддерживаемого подмножества 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-5",
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_schemaname инструмента всегда валидно (из предоставленных инструментов или серверных инструментов)Определите схему вашего инструмента
Создайте JSON-схему для 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 и хранение данных.
Загружайте и читайте содержимое с конкретных URL-адресов, чтобы добавить актуальный веб-контент в контекст Claude.
Кэшируйте определения инструментов между ходами, чтобы снизить стоимость и задержку.
Получайте валидированные JSON-ответы, используя то же сэмплирование, ограниченное грамматикой.
Задавайте схемы инструментов, пишите эффективные описания и контролируйте, когда Claude вызывает ваши инструменты.
Was this page helpful?