You run tool definitions through strict mode. What does strict: true on a tool give you?
Why C is the answer
Tool input follows the input_schema
Strict tool use constrains sampling so that the input matches the schema and the tool name is valid. It says nothing about whether your tool works or whether it was the right one to call.
In detail
- Strict tool use constrains sampling so that the input matches the schema.
- It also ensures the tool name is valid.
- It says nothing about whether the tool works or was the right one.
- Strict mode needs a schema that fully describes the input.
Use case
An illustrative scenario, not a real incident.
A booking tool gets malformed dates in its input. With strict: true, the input matches the schema. It can still fail on a closed date, so the tool checks that itself.
See it in different ways
sequenceDiagram participant A as Your code participant C as Claude A->>C: Request with tools C-->>A: tool_use blocks A->>A: Run the tools A->>C: tool_result blocks first, then any text C-->>A: Final answer
mindmap
root(("strict true"))
n1["Guarantees"]
n2["Input matches the schema"]
n3["Valid tool name"]
n4["Does not guarantee"]
n5["The tool succeeds"]
n6["It was the right tool"]Key point: Strict mode guarantees shape, not correctness.
Why the other options are wrong
- A. The tool always succeeds when it runs
- Your tool can still fail when it runs.
- B. Claude must call that tool on every request
- tool_choice controls whether a tool must be called, not strict.
- D. Tool results are checked for accuracy
- Strict mode checks shape, and it never inspects tool results.

