How I architected Chasyr's voice agents to stay ACCC-compliant
Compliance as a first-class constraint, not an afterthought. State-machine + audit log + human escalation.
Building a voice agent that calls Australian small businesses about overdue invoices means living inside ACCC compliance. Here's how I architected for it from day one.
\nMost voice-agent stacks treat compliance as a wrapper - a profanity filter, a recording-disclosure prompt, a kill switch. That's wrong. Compliance is a first-class architectural constraint, the same way idempotency is for payments.
\nThe state machine
\nEvery Chasyr call is a finite state machine with auditable transitions. Greeting → identity verification → reason → negotiation → outcome → disclosure → close. The LLM picks the words; the state machine picks what state we can move to. The model never gets to invent a new state. That single constraint kills 80% of compliance risk.
\nHuman escalation as a feature, not a fallback
\nIf the caller asks anything outside the trained surface - a complaint, a dispute, a hardship claim - we transfer. Cheerfully, immediately, no negotiation. Engineers wanted to handle more in-agent. The product called it correctly: the cost of one bad call is greater than the cost of a hundred warm transfers.
\n"The model picks the words. The state machine picks what state we can move to."\n
There's more - audit log structure, retention windows, consent capture mechanics. I'll cover them in part two.
