Data leakage here means sensitive information escaping through the model.
It is a different meaning from leakage in training, which is about inflated scores.
The system prompt is the first thing people extract, and persistent users usually succeed.
So it must never contain secrets, keys, or anything you would not show a customer.
Retrieved documents are the second and more serious channel.
If retrieval is not filtered by the caller's permissions, one user can read another's documents.
Telling the model not to reveal them is not a control, since the model can be persuaded.
Filter at the index, before retrieval, using the caller's identity.
Multi-tenant systems need that boundary enforced in the query itself.
Training data can be regurgitated, especially rare strings seen many times.
That is why fine-tuning on customer data mixes tenants in a way that cannot be undone.
Logs are a quiet third channel, since prompts often contain personal data.
Conversation history is a fourth, when sessions are not properly isolated.
Cached responses shared between users are a fifth.
Assume anything the model can see may eventually be shown to someone who should not see it.