The schema is your prompt
Tool descriptions and parameter descriptions are part of the prompt the model sees. They drive whether the model picks the right tool and supplies correct arguments. A vague description like "get info" gives you bad tool calls; a precise one ("Look up a stock price for a US-listed ticker (e.g. 'AAPL'). Returns current price in USD.") gives you good ones.
Multiple tools — let the model pick
You can pass an array of tools. The model decides which one (if any) to call. It can also call several in sequence or in parallel within a single turn — handle both.
What the response looks like
When the model decides to call a tool, the response message has empty content and a populated tool_calls array. Each tool call has function.name (which tool) and function.arguments (already parsed as a dict — Ollama parses the JSON for you, unlike OpenAI which returns a JSON string).