The refund-policy versus order-status split is a clean way to explain why retrieval alone falls short, since the shipping answer changes minute to minute and no document can hold it. The part I would push on is routing: deciding per query whether it is a knowledge lookup or a live tool call is where I see agents misfire, answering a stale FAQ for a state question. How are you classifying that intent, a separate router step or letting the model pick the tool itself?