Short version: it is not allowed to answer from memory.
A general-purpose chatbot dropped into a student group will answer anything, confidently, including things outside your syllabus and things that are simply wrong. That is not a prompt problem — it is what a model does when nothing constrains it. Our pipeline constrains it at every stage.
Every incoming message passes a guardrail before it reaches the model, built against the OWASP LLM Top 10 — prompt injection and prompt leaking in particular. It carries a canary token to detect system-prompt extraction, refuses in the language it was addressed in, and fails closed: if the guardrail itself errors, the message is refused rather than passed through.
Dedicated monitors review answers as they go out. A student who is not satisfied can say so, and the question is routed to a human expert rather than retried on the model. The AI reduces the volume that needs a person; it does not pretend to replace one.
Fully managed by us — servers, models, retrieval index, updates. The institution supplies material and gets a working system; there is nothing to deploy and no API key to hold. All model and infrastructure credentials stay on our side and are never embedded in any client application.