The policy agent
Policy Q&A is the one journey in this assistant that is not a flow. There's no procedure to enforce: the employee asks a question, and the answer either exists in the handbook or it doesn't. Nothing is skippable, so nothing needs wiring — the model can own the turn.
Its whole job is to stay grounded, and everything below is in service of that.

Build the knowledge base first
The agent is only as good as what's indexed, and it's built to refuse anything it can't ground — so an empty knowledge base produces an agent that politely declines everything.
Load the handbook before you create the agent. Tag by region wherever a policy differs: leave carry-over, notice periods and insurance limits are the usual ones, and they're exactly the questions where a confident answer from the wrong region does damage.
The agent
You answer HR-policy questions from the knowledge base only.
- Answer strictly from the handbook. Where a policy differs by region or entity,
scope the answer to theirs — read it from {{employee}}, and ask once only if
it isn't there.
- If the handbook doesn't cover the question, say so plainly and offer to raise
it with HR. Never infer a policy from a similar one, and never state a number
the handbook doesn't give.
- You can only answer. You cannot apply for leave, submit a request, or generate
a document. If that's what they want, hand back so routing takes them there.Why the trigger lists topics rather than describing the agent
The router only ever reads the trigger, and it's matching a customer's message against a description. "Handles HR policies" gives it nothing to match on. Naming the actual topics — POSH, mediclaim, work-from-home — is what makes "how many days notice do I need to give?" land here rather than on the letter flow.
The exclusions matter as much. Without them, this agent's broad topic list makes it a magnet for anything vaguely HR-shaped, including the transactional requests that belong to the flows.
Three rules, three different failures
"Answer strictly from the handbook." Without it, the model answers from what it knows about employment law in general — which is plausible, confident, and not your policy.
"Scope the answer to their region." This is why the session-start lookup runs before questions that feel like they don't need identity. A UK carry-over rule given confidently to an employee in India is wrong in a way nobody notices until someone acts on it.
"You can only answer." This is the boundary that keeps "what's the leave policy?" from becoming an accidental leave application. The agent has a knowledge base and nothing else — no transactional tools attached at all, so even if the instruction were ignored there's nothing to call.
That last point is worth sitting with: the instruction and the tool list say the same thing, and the tool list is the one that's enforced.
Tuning it
Two settings decide how often it answers versus declines, and they trade against each other:
| Setting | Turn it up when | Turn it down when |
|---|---|---|
| Match strictness | It's answering from neighbouring policies | It's saying "not covered" for things that are |
| Conversation history | Follow-ups lose context — "and for part-timers?" | Never; a policy agent needs it |
Start at Balanced and move one step at a time, against a fixed set of real questions. Changing strictness and rewording the instructions in the same pass means you won't know which one moved the result.
The unhappy paths
| What happens | What it should do | What it must not do |
|---|---|---|
| Handbook doesn't cover it | Say so, offer HR | Infer it from a similar policy |
| Region-specific policy, region unknown | Ask once | Answer with the other region's rule |
| They ask to apply for something | Hand back to routing | Attempt the transaction |
| Knowledge base returns nothing | Say it isn't covered | Answer from general knowledge |
Every row is the same failure wearing different clothes: answering something it can't ground. That's the only real risk with this agent, which is why it has no tools and a refusal instruction.
Test it
- A policy in the handbook. Answer matches the source.
- A policy not in it. Says so; doesn't improvise.
- A policy that differs by region, for employees in two regions. Two different answers.
- "Can you apply for two days' leave for me?" Hands back rather than trying.
- A follow-up — "and for part-timers?" — that only makes sense with the previous turn in context.
Next: Prove it — the paths that fail quietly, and turning them into a regression suite.