Restaurant Reservation Agent

  • Python
  • MCP
  • Groq
  • Sarvam
Question
A 75-outlet chain loses bookings when one outlet is full, even though a sister outlet nearby has space. Can an agent save them?
Setup
A booking agent with no agent framework: its own tool loop, 8 MCP tools, voice in 11 languages. Full outlets reroute to another time or a nearby outlet.
Result
13/16 scripted guest journeys pass, checked on tool choice, arguments and final state.
Flow
  1. Guest
  2. Agent loop
  3. Gate
  4. MCP server · 8 tools
  5. SQLite
Scope

16 scripted journeys on one model (gpt-oss-20b), one run each; 13 pass.

Next

Let the code gate own confirmation alone, so the guest is asked once.

13/16guest journeys pass

+2 over the first run; only two are agent fixes.

  • Agent fixOther time · Outlet infofail → pass
  • Eval fixParty of 25 · Complaintfail → pass
  • Stricter checkNearby outletpass → fail
  • Not tracedIgnore-the-rulespass → fail
Fig. 1The six journeys that changed between the first and final run, by cause.
Decisions
  • Confirmation gate in code. Every write is held; the server dry-runs it, and it only goes through when the model repeats the call after the guest says yes.
  • Overflow routing in code. A full outlet returns up to 3 other times within 2 hours and up to 3 outlets within 6 km.
  • Errors come back as results, so the model can correct itself, with a cap of 6 model calls per turn.
  • Dates resolved in code against a 14-day calendar, not by the model.
Entry 1, 3 of 7