Loading...
  • Construir
  • Admin
  • Modelos e preços
  • SDKs do cliente
  • Referência da API
Search...
⌘K
Log in
Uso estrito de ferramentas
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Amazon Bedrock
  • Google Cloud's Vertex AI

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Construir/Ferramentas

Uso rigoroso de ferramentas

Aplique conformidade com JSON Schema nas entradas de ferramentas do Claude com amostragem restrita por gramática.

Was this page helpful?

  • Por que o uso rigoroso de ferramentas é importante para agentes
  • Início rápido
  • Como funciona
  • Casos de uso comuns
  • Retenção de dados

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:

  • Validar parâmetros de ferramentas
  • Construir fluxos de trabalho com agentes
  • Garantir chamadas de função type-safe
  • Lidar com ferramentas complexas com propriedades aninhadas

Por que o uso rigoroso de ferramentas é importante para agentes

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:

  • As funções recebem argumentos corretamente tipados todas as vezes
  • Sem necessidade de validar e repetir chamadas de ferramentas
  • Agentes prontos para produção que funcionam consistentemente em escala

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.

Início rápido

Formato de resposta: Blocos de uso de ferramentas com entradas validadas em response.content[x].input

Output
{
  "type": "tool_use",
  "name": "get_weather",
  "input": {
    "location": "San Francisco, CA"
  }
}

Garantias:

  • A input da ferramenta segue rigorosamente o input_schema
  • O name da ferramenta é sempre válido (de ferramentas fornecidas ou ferramentas do servidor)

Como funciona

  1. 1

    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).

  2. 2

    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.

  3. 3

    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.

Casos de uso comuns

Retenção de dados

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.

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)