Consider one user goal:
Plan my Paris trip for next week for four days, staying within the company travel policy and a ₹80,000 budget.
This sounds like one request. In reality, it combines private rules, live prices, hard constraints, and decisions that depend on earlier results.
Four separate difficulties are hiding inside the sentence:
| Difficulty | What it means in this example |
|---|---|
| Private knowledge | The travel policy is an internal document. It was never part of the model's training data. |
| Time-varying data | Flight fares and hotel availability change every hour. Model weights cannot keep them current. |
| Hard constraints | The itinerary must satisfy both company policy and the ₹80,000 budget. Passing one is not enough. |
| Unknown control flow | If a policy check fails, the system must decide what to change and try again. |
A plain LLM can write a convincing Paris itinerary. It cannot know whether the flight is still available, whether the fare is real, or whether the trip follows the private policy.
The base model can answer public, stable questions:
User: What is the capital of France? Model: Paris.
That fact is public, stable, and likely present in training data.
Ask about the private travel policy and the same fluent model may invent a plausible rule:
Employees may book business class on international routes...
Fluency is not evidence. The model has four limits here:
Retrieval-Augmented Generation gives the model the relevant policy clauses before it answers.
For example:
The user can now see:
Economy class only for flights under eight hours, and bookings must be made at least seven days in advance. travel_policy_2026.pdf, page 12, §4.2
The core principle is simple: retrieve before you generate.
An assistant carries the thread across turns:
User: I am travelling to Paris next week for four days. What does policy allow? Assistant: Economy class, booked at least seven days ahead. User: And the hotel? Assistant: Up to ₹8,000 per night in Paris.
The second question makes sense only because the assistant remembers Paris, four nights, and the earlier policy discussion.
The next request is not a knowledge question:
Find me a hotel under that limit.
The system must call a live hotel search tool. Retrieval cannot tell it today's rooms and prices.
An agent chooses the next step after seeing what the previous step returned. If the best itinerary fails policy, it decides whether to change dates, search again, or ask the user.
As the goal grows, specialised workers can handle flights, hotels, meetings, and expenses, while an orchestrator combines their results.
| Stage | What was added | Paris example |
|---|---|---|
| LLM | Language generation | Writes a plausible itinerary |
| RAG | External knowledge | Retrieves the travel policy |
| Assistant | Conversation context | Remembers dates and budget |
| Tool-using assistant | Tools | Calls flight and hotel APIs |
| Agent | Decisions | Replans after a compliance failure |
| Multi-agent | Delegation | Splits flights, hotels, meetings, and expenses |
LLMs generate, RAG retrieves, assistants remember, tools act, agents decide, and multi-agent systems delegate.