I was formulating an app that needed weather information. Early days of using AI. I opened the chat, typed a short line asking for the local weather, and hit enter. What came back read like a forecast, but it was not one. It was all sorts of crazy information pre-loaded into the model. No station, no timestamp, no live source, just a fluent paragraph that sounded like weather and was not. The wind speed looked plausible. The humidity looked plausible. The temperature was somewhere within the range a warm-country city might see on a given afternoon, so it did not read as wrong at a glance. But when I set the answer next to what I could see out of my window, the two disagreed.
I could tell the answer was wrong before I could tell why.
If the model is trained on the whole internet, why is it guessing my weather?
The first question I had was not "is the AI broken." It was "what did I forget to give it." The model has read more about weather than I ever will. It has ingested forecasts, station bulletins, meteorology textbooks, decades of news. So why was the answer for my city, on that day, at that hour, a piece of fiction?
The gap was not in the model. The gap was in the input. I had asked it to answer from memory. That is what it did. I had also asked it to answer as if memory were the same thing as observation, and it is not. A model trained on years of weather pages knows what a July afternoon in a warm city usually sounds like. It does not know what today looks like. If I want today, I have to give it a way to see today.
AI is the engine, but the data you point it at is the fuel.
A car engine does not choose its own fuel. The driver does. The same engine that hums on the right grade coughs on the wrong one. The engine is not the story. The pour at the pump is.
The model works the same way. Its input is like your learnings and memories. You can pattern-match on what has been put in front of you, and you cannot pattern-match on what has not. Data is the fuel while AI is the engine. Change the fuel and the same engine gives you a different ride, on the same road, with the same driver.
The AI algorithms work on the basis of the input that is being provided.
The people who built these models say the same thing in plainer language.
Why did the blind query return a crazy answer? Because the model was doing what it was designed to do. NIST's Generative AI Profile puts it plainly: Confabulations are a natural result of the way generative models are designed: they generate outputs that approximate the statistical distribution of their training data. That is stale training data speaking. The forecast I got was a statistical average of every forecast the model had ever seen, not the forecast for my city that morning. The engine was running fine. The tank was full of last year's fuel.
The craft move that closes the gap has a name. IBM Research's explainer calls it exactly what it is: RAG is an AI framework for retrieving facts from an external knowledge base to ground large language models (LLMs). In plainer words, retrieval augmented generation is grounding AI in a source. That is what I did with the meteorological website, by hand, at the prompt.
Why grounding matters, from the same IBM post: It ensures that the model has access to the most current, reliable facts. Which is the gap between "pre-loaded" and "live" in one sentence.
And the operational shape of the move, from OpenAI's prompt engineering guide, the phrase I keep in my head when I write a prompt: To constrain the model's response to a specific set of resources. The meteorological-site instruction is that constraint, one line, hand-added, at the prompt level. No new tool. No plug-in. Just a named place for the model to read from.
Grounding a prompt in a named reference source is not the same craft move as supplying role and background. Those two live in different sections of my prompting playbook, and collapsing them is how a post like this becomes a rewrite of a different one. Role and background tell the model who it is and what the task is. Source grounding tells the model where to look for the facts. Both help. Neither substitutes for the other.
The model already trained on that website. Why do I have to tell it again?
This is the honest objection, and it deserves an honest answer. Yes, the meteorological site was almost certainly in the training corpus. The model has seen thousands of pages from sites like it. So why does naming it a second time change anything.
Because training data is a frozen snapshot. "The local weather right now" is not in any frozen snapshot. It cannot be. It did not exist when the snapshot was taken. Naming the source is not the model remembering the site. It is the model being told to go read the current page instead of guessing from a memory of past pages. The instruction is the difference between "recall" and "fetch."
For evergreen facts, the objection has more weight. If I ask the model when a country was founded, the training data usually has it. The win from source grounding is largest when the answer is time-sensitive or specific, weather being both. Also true for stock prices, court rulings, product changelogs, and every piece of a customer's own operating reality that no public corpus contains.
The second answer was accurate because the input changed, not the model.
Back to the app. Same task, same model, same session. I changed one thing. I asked the AI to refer to a specific meteorological website and pull the weather conditions from there. No new role, no new background, no fresh session. One clear instruction on where it should look for the information.
The second answer was accurate.
Same engine. Different fuel. The pre-loaded fog cleared the moment the model had a place to look. This is prompt grounding, and it is a separate move from the role-and-background supply I learned on a stakeholder-interview transcript on a different task. That one earned its own post. This one is about pointing at the source before the engine turns over.
The prompt is a lever. What sits on the other end of it is on me.
Behind the wheel means naming the source before you turn the key.
I stay behind the wheel. Today I ask generalised queries and I name the source in every non-trivial one, out of habit, not discovery. The next question is not what to ask the model. It is what to point it at.