you’re basically looking to intercept the message before it hits the LLM. In VAPI, you don’t need a “server message” from the agent itself; instead, you handle it on your backend or webhook. The flow looks like this: the user message hits your webhook first, you query Qdrant for the relevant context, merge that context into the message (system or user input), and then send the enriched message to VAPI as the agent input. This way, the LLM always sees the full context, and the RAG step is fully decoupled from the agent tools.
I can help you set up a clean webhook/middleware structure so this happens automatically for every turn.