Daniel StoyanovAriaClaude Agent SDK · TypeScript
Bequia & Co · Concierge

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.

Take a look inside3 enquiries inside
Claude Agent SDK · TypeScriptBatteries-included harness with in-process MCP tools

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_policy whether 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_refund returns 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

  1. Enquiry 01

    Chipped mugs · BQ-48219

    Inside the 30-day window and under £250: refunded in one turn.

  2. Enquiry 02

    Outside the window · BQ-51077

    Delivered 99 days ago: Aria says no plainly and writes a handover.

  3. Enquiry 03

    Tool refuses · over the £250 ceiling

    A mistyped order number, then a £398 refund the payment gateway refuses.

Under the hood

typescript

Stack

Claude Agent SDK · TypeScript

Pattern

Batteries-included harness with in-process MCP tools

Runnable source

agents/aria-concierge/src/agent.ts

Why 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.

Take a look inside