Your handbook changed this morning. The model was trained last year. That gap is the lesson. RAG means retrieval-augmented generation: something searches your documents, and the useful passages are placed in the prompt, your request, before the model writes. For this lesson, an agent is a loop: the model chooses a next step, code runs an allowed tool, and the result comes back for the next decision.
A search box that quotes a paragraph is RAG. A loop that looks up an order and then files a refund is an agent, if it can actually call those tools. A chat that says “I would refund that” and touches nothing is a chat.
RAG does not retrain anything
The weights, the numbers the model learned in training, stay as they were. You changed the prompt by inserting passages. That is why a new handbook page can show up tomorrow without a training job, and why a bad search still produces a confident answer: the model only sees what the search handed it. If the search misses the page, the model cannot cite it. If the search returns three conflicting pages, the model may blend them. A blend is not a source you can point to.
A vector database, a store that searches by similarity rather than exact words, is one way to search. It is not required by the definition. A person pasting the right section into the chat is retrieval too. It is slower, and you are the index.
An agent is a loop with permission
Anthropic’s tool-use overview describes the request as a conversation the model can pause by asking for a tool. Your program is the part that decides the tool is allowed to run. The Model Context Protocol, MCP, is a way to describe those tools and resources so more than one client, an app that calls the model, can call them. The linked MCP introduction explains how clients and servers exchange tools and resources. MCP is a shared plug: a chat app can ask another program for a tool without rebuilding that program. It is a specification, not a verdict on a product.
Choosing a sensible tool is not permission to act. Your code still checks whether the action is allowed. A tool named process_refund will do what the function does, not what the name hopes. The tool description is what the model reads when it picks. Write that description so the right tool is the obvious one.
A sorting rule
| You need | Start with |
|---|---|
| An answer from a document you can point at | RAG, or paste the section |
| A change in another system, after a lookup | An agent, with the tool list written down |
| A one-off draft in a chat | Neither. A prompt is enough |
Pick one thing you asked a chatbot to do this month. If it only needed words, label it a draft. If it needed a file you did not attach, label it a missing retrieval. If it needed to change a system it cannot log into, label it a tool you have not built. The label tells you what to build, and what you do not need to buy.
Sources & limits: The definitions follow the Anthropic and MCP pages linked above. This page does not rank products.