Case studyGlobal dining platform

Service agents for a two-sided marketplace

Two production agents were telling customers a person was coming when no person was available. I rebuilt escalation so the decision is computed from state before the model ever reasons about it.

Lead forward deployed engineerTwo production agentsGraduated to steady state

Overview

A global dining platform ran two live service agents, one facing diners and one facing restaurant operators, together carrying roughly 15,000 conversations a week. I led the engagement as the forward deployed engineer: rebuilding the escalation path both agents depended on, then migrating them onto a deterministic authoring model before any authenticated action was built on top.

Customer
Agent
Eligibility gate
Human, or a ticket

The turning point

The escalation flow in the diagrams was not the escalation flow in production. Someone had applied a fix to it that nobody could explain when asked. I ran a deep dive with their engineer just to establish what the system actually did, then rebuilt the diagrams from the running configuration.

What surfaced was worse than drift. The agent was being asked to decide something it had no way to know. Whether to hand a customer to a person depends on two facts, whether it is inside business hours and whether anyone is actually online, and neither one is in the conversation. The model was inferring an answer to a question that had a lookup.

The failure that produces is the worst thing a service agent can do. It tells a customer that help is coming, and then nobody comes. That is not a wrong answer, it is a broken promise, and customers forgive the first far more readily than the second.

Decisions

Outcomes

What carried forward

Never let a model decide something that has a lookup. Availability, entitlement, business hours, permissions: these are facts with authoritative sources. Handing them to inference produces a system that is confidently wrong at exactly the moments that matter most, and that cannot be audited afterward. The model can phrase the outcome. It does not get to determine it.

The approach it taught me is in the two gates.