Definir strict: true em uma definição de ferramenta usa amostragem restrita por gramática para garantir que as entradas de ferramentas do Claude correspondam ao seu JSON Schema. Esta página aborda por que o modo rigoroso é importante para agentes, como ativá-lo e casos de uso comuns. Para o subconjunto de JSON Schema suportado, consulte Limitações de JSON Schema. Para orientação de schema não rigorosa, consulte Definir ferramentas.
O uso rigoroso de ferramentas valida parâmetros de ferramentas, garantindo que Claude chame suas funções com argumentos corretamente tipados. Use o uso rigoroso de ferramentas quando você precisar:
Construir sistemas com agentes confiáveis requer conformidade de schema garantida. Sem o modo rigoroso, Claude pode retornar tipos incompatíveis ("2" em vez de 2) ou campos obrigatórios ausentes, quebrando suas funções e causando erros em tempo de execução.
O uso rigoroso de ferramentas garante parâmetros type-safe:
Por exemplo, suponha que um sistema de reservas precise de passengers: int. Sem o modo rigoroso, Claude pode fornecer passengers: "two" ou passengers: "2". Com strict: true, a resposta sempre conterá passengers: 2.
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-7",
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)Formato de resposta: Blocos de uso de ferramentas com entradas validadas em response.content[x].input
{
"type": "tool_use",
"name": "get_weather",
"input": {
"location": "San Francisco, CA"
}
}Garantias:
input da ferramenta segue rigorosamente o input_schemaname da ferramenta é sempre válido (de ferramentas fornecidas ou ferramentas do servidor)Defina seu schema de ferramenta
Crie um schema JSON para o input_schema de sua ferramenta. O schema usa o formato padrão de JSON Schema com algumas limitações (consulte Limitações de JSON Schema).
Adicione strict: true
Defina "strict": true como uma propriedade de nível superior em sua definição de ferramenta, junto com name, description e input_schema.
Manipule chamadas de ferramentas
Quando Claude usa a ferramenta, o campo input no bloco tool_use seguirá rigorosamente seu input_schema, e o name sempre será válido.
O uso rigoroso de ferramentas compila definições de input_schema de ferramentas em gramáticas usando o mesmo pipeline que saídas estruturadas. Os esquemas de ferramentas são temporariamente armazenados em cache por até 24 horas desde o último uso. Prompts e respostas não são retidos além da resposta da API.
O uso rigoroso de ferramentas é elegível para HIPAA, mas PHI não deve ser incluído em definições de esquema de ferramentas. A API armazena esquemas compilados em cache separadamente do conteúdo da mensagem, e esses esquemas em cache não recebem as mesmas proteções de PHI que prompts e respostas. Não inclua PHI em nomes de propriedade input_schema, valores enum, valores const ou expressões regulares pattern. PHI deve aparecer apenas no conteúdo da mensagem (prompts e respostas), onde é protegido sob salvaguardas HIPAA.
Para elegibilidade de ZDR e HIPAA em todos os recursos, consulte Retenção de API e dados.
Was this page helpful?