Aria, at the desk
Retail concierge that resolves, not deflects
A customer-support agent for a boutique retailer. Aria looks up real orders, issues refunds inside policy, and escalates with a written handover when it cannot.
What makes Aria special
The happy path is easy. What sets Aria apart is what it will not do, and how it hands over when it cannot help.
- 01
Checks the policy before it offers anything
Eligibility is a tool’s answer, not the model’s arithmetic. Aria asks
check_refund_policywhether an order is inside the 30-day window before a refund is ever on the table.check_refund_policyinWindow
- 02
Says no plainly, then writes the handover
Outside the window there is no tool for goodwill, store credit or a discount, so Aria says so and files a written case for a person. The handover tool rejects anything under 80 characters, so nobody has to tell their story twice.
escalate_to_humancare-tier2
- 03
A tool call, not a promise
Every action is a typed call to an in-process MCP tool with a zod schema. A refund exists only when
issue_refundreturns a refund id and an audit reference, and as a caution-tier action it passes a permission gate first.issue_refundrefundId
- 04
A ceiling it cannot talk its way past
Above £250 the payment path refuses. Aria is told not to retry smaller or split the refund; it escalates with a recommendation instead. The money rules are plain TypeScript, testable with no model at all.
issue_refundAUTH_CEILING
Inside the demo
Three enquiries, each from the top: the conversation, every tool receipt, and the paperwork Aria writes.
What to watchWatch the refund path: Aria checks the policy window before it offers anything, and when the order falls outside it the agent escalates instead of inventing an exception.
The enquiries
- Enquiry 01
Chipped mugs · BQ-48219
Inside the 30-day window and under £250: refunded in one turn.
- Enquiry 02
Outside the window · BQ-51077
Delivered 99 days ago: Aria says no plainly and writes a handover.
- Enquiry 03
Tool refuses · over the £250 ceiling
A mistyped order number, then a £398 refund the payment gateway refuses.
Under the hood
typescriptStack
Claude Agent SDK · TypeScript
Pattern
Batteries-included harness with in-process MCP tools
Runnable source
agents/aria-concierge/src/agent.tsWhy this architecture
The Agent SDK ships the agent loop, context management, permissions and sessions, so the only code worth writing is the tools themselves. The trade-off is a heavier dependency that spawns the Claude Code binary: excellent for a support desk you operate, wrong for a cold-start serverless function.
Tools
- lookup_ordertier 1 · safeFetch an order, its items, and its fulfilment state by order number.
- check_refund_policytier 1 · safeReturn whether an order is inside the refund window and why.
- issue_refundtier 2 · cautionIssue a refund against an order. Only valid inside the policy window.
- escalate_to_humantier 1 · safeHand the conversation to a human with a written summary and suggested action.
The desk is open
Step inside to watch Aria take each enquiry: the order looked up, the policy checked, and the refund or the handover that follows.