What's the difference between tool calling and RAG?
Tool calling is the model deciding, mid-response, to fetch something or take an action; RAG is a fixed step that retrieves documents before the model starts answering at all, whether or not the question actually needs them.
In tool calling, the model sees the tool definitions and chooses whether to call one, which one, and with what arguments; nothing happens unless the model asks for it. In a standard RAG pipeline, retrieval runs on every request, chunks come back from a vector index, and the model answers from whatever got retrieved without ever deciding to look something up. The two aren’t exclusive: a retrieval step can itself be exposed to the model as a tool, which turns a fixed lookup into something the model calls only when it judges the question actually needs a document search rather than live data or an action.