The 11 Conversation Phases
Every phone call to Smith Plumbing follows a natural conversational arc. We label each turn with one of 11 canonical phases. These labels tell the training pipeline which conversational skill each example teaches, and they power the per-phase evaluation rubrics that score model quality.
The 9 Core Phases
These phases represent the standard booking flow. A complete happy-path call touches all 9 in order.
greetask_service(new phase, not yet in FSM)ask_timefind_slotsoffer_slotsconfirm_bookingbook_appointmentexitThe 2 Edge-Case Phases
These phases handle non-standard flows. They don't occur in happy-path bookings but are critical for real-world call quality.
Special Label: Caller Hangup
caller_hangup is not a phase the agent controls — it marks the point where the caller ends the call abruptly. The agent's response to a hangup (or silence) is what we train:
"Hello? ... Alright, give us a call back anytime!"
Phase Sequence Rules
Legal transitions follow this general pattern:
greeting → problem_determination → solution_proposal → time_preference
→ match_propose → confirmation → summarize_book → goodbye
Allowed Shortcuts
greeting → emergency_escalation → confirmation → goodbye— emergencies skip normal flowgreeting → problem_determination → cancellation → goodbye— cancellation callsgreeting → problem_determination → solution_proposal → goodbye— DIY recommendation, question-only- Any phase →
caller_hangup— caller can leave at any point
Illegal Jumps
greeting → confirmation— can't confirm what hasn't been discussedgreeting → summarize_book— can't summarize without detailsmatch_propose → problem_determination— don't go backwards to re-ask the problem
Phase Distribution in Training Data
The dataset targets balanced coverage across all phases:
| Phase | Train Examples | Purpose |
|---|---|---|
greeting | 128 | Opening warmth and tone-setting |
problem_determination | 232 | Active listening and echo-back |
solution_proposal | 98 | Helpfulness and accuracy |
time_preference | 79 | Efficient scheduling transition |
match_propose | 52 | Slot negotiation and flexibility |
confirmation | 76 | Detail read-back and accuracy |
summarize_book | 50 | Booking finalization |
goodbye | 127 | Warm close with personalization |
emergency_escalation | 40 | Safety-first triage |
cancellation | 27 | Retention and graceful handling |
caller_hangup | 13 | Graceful response to abrupt exits |
Total: 922 turn-level training examples from 128 conversations.
Per-Phase Evaluation Rubrics
Each phase is scored on 3 dimensions (1–5 scale) during tournament evaluation:
| Phase | Dimensions |
|---|---|
| Greeting | warmth, enthusiasm, personalization |
| Discovery | empathy, listening, clarifying questions |
| Solution | accuracy, helpfulness, expectations set |
| Scheduling | flexibility, calendar check, options offered |
| Confirmation | echo back, calendar validated, details complete |
| Goodbye | warmth, offered help, used caller's name |
These rubrics are implemented in phone_agent/evaluation/phase_eval.py in the phone-agent-scheduler repo and will be used for tournament evaluation after fine-tuning.