Correct, here's an implementation example using the Claude SDK [0] but it's the same approach on other platforms: you tell the model what tools it has available, it sends back a response saying it wants to use a specific tool with given parameters, your code executes that tool then sends the output back to the model on the next turn.
[0] https://platform.claude.com/docs/en/agents-and-tools/tool-us...
I think I might've phrased something in ways that were confusing to people, because now two people have explained tool calls to me for some reason?