Raahat Scenario Harness

Curated conversation replay against the real runtime with stepwise diagnostics, readable deltas, and deterministic checks.

Concierge Service Discovery

concierge_service_discovery · concierge · 2/2 turns executed

Scenario Summary

IDconcierge_service_discovery
TitleConcierge Service Discovery
Categoryconcierge
Turns2/2
Run Statecompleted
info multi_turn

Seed State

UserUnknown user
Phone919900000301
Seed Workflow
Seed State Machine

Current Runtime State

Routeboarding
Workflowboarding
State Machine
Stagequalifying

Checks And Lifecycle

Expectations Passed2
Expectations Failed0
Heuristic Warnings0
Stage advanced Route changed
Final assessmentOperationally incomplete: unresolved fields remain (pet_count, location).

Final Outcome

Completed

Completed vs partial run state.

Final Route

boarding

Current route at the end of the replay.

Final Workflow / State

boarding

Workflow preferred; state machine shown if no workflow is active.

Final Stage

qualifying

Resolved from workflow progress or active snapshot.

Expectation Totals

Pass 2 Fail 0

Heuristic Totals

Warnings 0

Missing Fields

pet_count location

Lifecycle Events Seen

Stage advanced Route changed
Turn 1
concierge concierge turn_interpretation_domain
PASS
User
What services do you offer
Assistant
Hi, I can help with cat medical support, boarding, transport, and general cat-care questions. What do you need help with today?

What Changed This Turn

  • No material state change.

Expectation And Heuristic Results

Expectations
PASS: workflow_name matched expected value 'concierge'
Routing And Interpretation
{
  "confidence": 0.92,
  "reason_codes": [
    "turn_interpretation_domain"
  ],
  "route_type": "concierge",
  "workflow_name": "concierge"
}
{
  "confidence": 0.92,
  "entities": {
    "user_goal": "information"
  },
  "is_vague": true,
  "primary_domain": "general",
  "reason": "generic opener",
  "secondary_domains": [],
  "should_continue_active_workflow": false,
  "should_preempt_active_workflow": false,
  "urgency_signal": "none"
}
Workflow Progress And Intents
null
[]
Conversation Before And After
{
  "active_state_machine": null,
  "active_workflow": null,
  "current_state": null,
  "entities": {},
  "messages": [],
  "phone": "919900000301",
  "service_actions": [],
  "started_at": "2026-03-16T22:37:01.987848+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:37:01.987852+00:00"
}
{
  "active_state_machine": null,
  "active_workflow": null,
  "current_state": null,
  "entities": {},
  "messages": [
    {
      "role": "user",
      "source": null,
      "text": "What services do you offer",
      "timestamp": "2026-03-16T22:37:01.997977+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "Hi, I can help with cat medical support, boarding, transport, and general cat-care questions. What do you need help with today?",
      "timestamp": "2026-03-16T22:37:01.997979+00:00"
    }
  ],
  "phone": "919900000301",
  "service_actions": [],
  "started_at": "2026-03-16T22:37:01.997975+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:37:01.997982+00:00"
}
Memory And Trace
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000301",
  "conversation_keys": [
    "919900000301",
    "9900000301"
  ],
  "current_state": null,
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 0,
  "ttl_seconds_remaining": null
}
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000301",
  "conversation_keys": [
    "919900000301",
    "9900000301"
  ],
  "current_state": null,
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 2,
  "ttl_seconds_remaining": null
}
[
  {
    "component": "brain",
    "payload": {
      "channel": "scenario_harness",
      "conversation_key": "919900000301",
      "message_text": "What services do you offer",
      "normalized_phone": "919900000301",
      "phone": "919900000301"
    },
    "stage": "input",
    "summary": "Received normalized message envelope",
    "timestamp": "2026-03-16T22:37:01.997699+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "backend": "inmemory",
      "current_state": null,
      "loaded": true,
      "message_count": 0,
      "storage_key": "919900000301"
    },
    "stage": "memory",
    "summary": "Loaded conversation memory",
    "timestamp": "2026-03-16T22:37:01.997704+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "has_prior_triage_state": false,
      "prior_state_error": null
    },
    "stage": "state",
    "summary": "Parsed prior working state",
    "timestamp": "2026-03-16T22:37:01.997706+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "compact_payload_keys": [
        "incoming_message"
      ],
      "has_conversation": true,
      "has_customer": false,
      "has_icp": false,
      "has_profile": false,
      "recent_import_count": 0,
      "storage_key": "919900000301"
    },
    "stage": "context",
    "summary": "Assembled SessionContext for the turn",
    "timestamp": "2026-03-16T22:37:01.997710+00:00"
  },
  {
    "component": "contact_resolver",
    "payload": {
      "confidence": 0.0,
      "customer_id": null,
      "display_name": null,
      "matched_phone": null,
      "status": "UNKNOWN"
    },
    "stage": "decision",
    "summary": "Resolved sender contact status",
    "timestamp": "2026-03-16T22:37:01.997714+00:00"
  },
  {
    "component": "turn_interpretation",
    "payload": {
      "confidence": 0.92,
      "contact_status": "UNKNOWN",
      "entities": {
        "user_goal": "information"
      },
      "is_vague": true,
      "primary_domain": "general",
      "reason": "generic opener",
      "secondary_domains": [],
      "should_continue_active_workflow": false,
      "should_preempt_active_workflow": false,
      "urgency_signal": "none"
    },
    "stage": "decision",
    "summary": "Resolved turn interpretation deterministically",
    "timestamp": "2026-03-16T22:37:01.997837+00:00"
  },
  {
    "component": "profile_context",
    "payload": {
      "phone": "919900000301"
    },
    "stage": "context",
    "summary": "No customer matched provided phone",
    "timestamp": "2026-03-16T22:37:01.997842+00:00"
  },
  {
    "component": "entry_policy",
    "payload": {
      "allow_identity_question": false,
      "bypass_onboarding": false,
      "defer_existing_workflow": false,
      "preempt_active_workflow": false,
      "reason": "unknown contact with a vague opener should get a soft welcome posture",
      "run_welcome_orientation": true,
      "selected_posture": "welcome_orientation"
    },
    "stage": "decision",
    "summary": "Determined entry posture for this turn",
    "timestamp": "2026-03-16T22:37:01.997844+00:00"
  },
  {
    "component": "intent_parser",
    "payload": {
      "continue_active_workflow": false,
      "primary_intent": "general_inquiry",
      "reason": "turn_interpretation_domain_route",
      "resolved_state_machine": "concierge",
      "workflow_source": "intent_match"
    },
    "stage": "decision",
    "summary": "Resolved primary intent and state machine",
    "timestamp": "2026-03-16T22:37:01.997891+00:00"
  },
  {
    "component": "context_builder",
    "payload": {
      "active_workflow": "concierge",
      "background_fact_count": 0,
      "current_step": null,
      "foreground_fact_count": 2,
      "prompt_family": "general",
      "purpose": "workflow_response"
    },
    "stage": "context",
    "summary": "Built workflow-response context slice for prompt assembly",
    "timestamp": "2026-03-16T22:37:01.997914+00:00"
  },
  {
    "component": "entry_policy",
    "payload": {
      "reason": "unknown contact with a vague opener should get a soft welcome posture",
      "selected_posture": "welcome_orientation"
    },
    "stage": "decision",
    "summary": "Returned a deterministic welcome-orientation reply before workflow execution",
    "timestamp": "2026-03-16T22:37:01.997967+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "current_state": null,
      "message_count_after": 2,
      "storage_key": "919900000301"
    },
    "stage": "mutation",
    "summary": "Persisted updated conversation memory",
    "timestamp": "2026-03-16T22:37:01.998262+00:00"
  }
]
Turn 2
boarding boarding qualifying intent_match
Stage advanced New slots filled Memory updated Route changed
PASS
User
I may need boarding next weekend
Assistant
I can help plan that. Please share the dates, how many cats, and your pickup area.

What Changed This Turn

  • Workflow changed none -> boarding.
  • Stage advanced none -> qualifying.
  • Route changed to boarding.
  • New slot filled: check_in_date=2026-03-28.
  • New slot filled: check_out_date=2026-03-29.
  • New slot filled: check_out_time_window=evening.
  • New slot filled: duration_nights=1.
  • New slot filled: last_question_key=grouped_core.
  • New slot filled: raw_date_text=next weekend.
  • New slot filled: request_kind=availability.
  • New slot filled: stage=qualifying.
  • Memory updated with check_in_date.
  • Memory updated with check_out_date.
  • Memory updated with date_phrase.
  • Memory updated with duration_nights.
  • Memory updated with last_non_medical_domain.
  • Memory updated with request_kind.
  • Snapshot version incremented to 1.

Expectation And Heuristic Results

Expectations
PASS: workflow_name matched expected value 'boarding'
Routing And Interpretation
{
  "confidence": 0.9,
  "reason_codes": [
    "intent_match"
  ],
  "route_type": "boarding",
  "workflow_name": "boarding"
}
{
  "confidence": 0.9,
  "entities": {
    "date_phrase": "next weekend"
  },
  "is_vague": false,
  "primary_domain": "boarding",
  "reason": "clear boarding request",
  "secondary_domains": [],
  "should_continue_active_workflow": false,
  "should_preempt_active_workflow": false,
  "urgency_signal": "none"
}
Workflow Progress And Intents
{
  "missing_fields": [
    "pet_count",
    "location"
  ],
  "next_question": "I can help plan that. Please share the dates, how many cats, and your pickup area.",
  "notes": [],
  "stage": "qualifying",
  "state_payload": {
    "check_in_date": "2026-03-28",
    "check_in_time_window": null,
    "check_out_date": "2026-03-29",
    "check_out_time_window": "evening",
    "duration_nights": 1,
    "last_question_key": "grouped_core",
    "medical_flags": [],
    "pet_count": null,
    "pet_names": [],
    "pickup_area": null,
    "pickup_required": null,
    "raw_date_text": "next weekend",
    "raw_duration_text": null,
    "request_kind": "availability",
    "service_area": null,
    "special_needs": [],
    "stage": "qualifying"
  },
  "status": "collecting",
  "summary": "2026-03-28 to 2026-03-29",
  "superseded_by": null,
  "workflow_name": "boarding"
}
[]
Conversation Before And After
{
  "active_state_machine": null,
  "active_workflow": null,
  "current_state": null,
  "entities": {},
  "messages": [
    {
      "role": "user",
      "source": null,
      "text": "What services do you offer",
      "timestamp": "2026-03-16T22:37:01.997977+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "Hi, I can help with cat medical support, boarding, transport, and general cat-care questions. What do you need help with today?",
      "timestamp": "2026-03-16T22:37:01.997979+00:00"
    }
  ],
  "phone": "919900000301",
  "service_actions": [],
  "started_at": "2026-03-16T22:37:01.997975+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:37:01.997982+00:00"
}
{
  "active_state_machine": null,
  "active_workflow": {
    "last_question_key": "grouped_core",
    "missing_fields": [
      "pet_count",
      "location"
    ],
    "next_question": "I can help plan that. Please share the dates, how many cats, and your pickup area.",
    "stage": "qualifying",
    "started_at": "2026-03-16T22:37:02.001136+00:00",
    "state_payload": {
      "check_in_date": "2026-03-28",
      "check_in_time_window": null,
      "check_out_date": "2026-03-29",
      "check_out_time_window": "evening",
      "duration_nights": 1,
      "last_question_key": "grouped_core",
      "medical_flags": [],
      "pet_count": null,
      "pet_names": [],
      "pickup_area": null,
      "pickup_required": null,
      "raw_date_text": "next weekend",
      "raw_duration_text": null,
      "request_kind": "availability",
      "service_area": null,
      "special_needs": [],
      "stage": "qualifying"
    },
    "status": "collecting",
    "summary": "2026-03-28 to 2026-03-29",
    "superseded_by": null,
    "updated_at": "2026-03-16T22:37:02.001138+00:00",
    "version": 1,
    "workflow_name": "boarding"
  },
  "current_state": "QUALIFYING",
  "entities": {
    "check_in_date": "2026-03-28",
    "check_out_date": "2026-03-29",
    "date_phrase": "next weekend",
    "duration_nights": 1,
    "last_non_medical_domain": "boarding",
    "request_kind": "availability"
  },
  "messages": [
    {
      "role": "user",
      "source": null,
      "text": "What services do you offer",
      "timestamp": "2026-03-16T22:37:01.997977+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "Hi, I can help with cat medical support, boarding, transport, and general cat-care questions. What do you need help with today?",
      "timestamp": "2026-03-16T22:37:01.997979+00:00"
    },
    {
      "role": "user",
      "source": null,
      "text": "I may need boarding next weekend",
      "timestamp": "2026-03-16T22:37:02.001166+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "I can help plan that. Please share the dates, how many cats, and your pickup area.",
      "timestamp": "2026-03-16T22:37:02.001167+00:00"
    }
  ],
  "phone": "919900000301",
  "service_actions": [],
  "started_at": "2026-03-16T22:37:01.997975+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:37:02.001184+00:00"
}
Memory And Trace
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000301",
  "conversation_keys": [
    "919900000301",
    "9900000301"
  ],
  "current_state": null,
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 2,
  "ttl_seconds_remaining": null
}
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000301",
  "conversation_keys": [
    "919900000301",
    "9900000301"
  ],
  "current_state": "QUALIFYING",
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 4,
  "ttl_seconds_remaining": null
}
[
  {
    "component": "brain",
    "payload": {
      "channel": "scenario_harness",
      "conversation_key": "919900000301",
      "message_text": "I may need boarding next weekend",
      "normalized_phone": "919900000301",
      "phone": "919900000301"
    },
    "stage": "input",
    "summary": "Received normalized message envelope",
    "timestamp": "2026-03-16T22:37:02.000724+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "backend": "inmemory",
      "current_state": null,
      "loaded": true,
      "message_count": 2,
      "storage_key": "919900000301"
    },
    "stage": "memory",
    "summary": "Loaded conversation memory",
    "timestamp": "2026-03-16T22:37:02.000728+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "has_prior_triage_state": false,
      "prior_state_error": null
    },
    "stage": "state",
    "summary": "Parsed prior working state",
    "timestamp": "2026-03-16T22:37:02.000730+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "compact_payload_keys": [
        "incoming_message"
      ],
      "has_conversation": true,
      "has_customer": false,
      "has_icp": false,
      "has_profile": false,
      "recent_import_count": 0,
      "storage_key": "919900000301"
    },
    "stage": "context",
    "summary": "Assembled SessionContext for the turn",
    "timestamp": "2026-03-16T22:37:02.000732+00:00"
  },
  {
    "component": "contact_resolver",
    "payload": {
      "confidence": 0.0,
      "customer_id": null,
      "display_name": null,
      "matched_phone": null,
      "status": "UNKNOWN"
    },
    "stage": "decision",
    "summary": "Resolved sender contact status",
    "timestamp": "2026-03-16T22:37:02.000736+00:00"
  },
  {
    "component": "turn_interpretation",
    "payload": {
      "confidence": 0.9,
      "contact_status": "UNKNOWN",
      "entities": {
        "date_phrase": "next weekend"
      },
      "is_vague": false,
      "primary_domain": "boarding",
      "reason": "clear boarding request",
      "secondary_domains": [],
      "should_continue_active_workflow": false,
      "should_preempt_active_workflow": false,
      "urgency_signal": "none"
    },
    "stage": "decision",
    "summary": "Resolved turn interpretation deterministically",
    "timestamp": "2026-03-16T22:37:02.000865+00:00"
  },
  {
    "component": "profile_context",
    "payload": {
      "phone": "919900000301"
    },
    "stage": "context",
    "summary": "No customer matched provided phone",
    "timestamp": "2026-03-16T22:37:02.000869+00:00"
  },
  {
    "component": "entry_policy",
    "payload": {
      "allow_identity_question": true,
      "bypass_onboarding": false,
      "defer_existing_workflow": false,
      "preempt_active_workflow": false,
      "reason": "unknown contact with a clear non-urgent request can allow one light identity question later",
      "run_welcome_orientation": false,
      "selected_posture": "light_onboarding"
    },
    "stage": "decision",
    "summary": "Determined entry posture for this turn",
    "timestamp": "2026-03-16T22:37:02.000870+00:00"
  },
  {
    "component": "intent_parser",
    "payload": {
      "continue_active_workflow": false,
      "primary_intent": "boarding_request",
      "reason": "matched_keyword_rules",
      "resolved_state_machine": "boarding",
      "workflow_source": "intent_match"
    },
    "stage": "decision",
    "summary": "Resolved primary intent and state machine",
    "timestamp": "2026-03-16T22:37:02.000898+00:00"
  },
  {
    "component": "context_builder",
    "payload": {
      "active_workflow": "boarding",
      "background_fact_count": 0,
      "current_step": null,
      "foreground_fact_count": 2,
      "prompt_family": "general",
      "purpose": "workflow_response"
    },
    "stage": "context",
    "summary": "Built workflow-response context slice for prompt assembly",
    "timestamp": "2026-03-16T22:37:02.000918+00:00"
  },
  {
    "component": "workflow",
    "payload": {
      "action_intents": [],
      "missing_fields": [
        "pet_count",
        "location"
      ],
      "next_question": "I can help plan that. Please share the dates, how many cats, and your pickup area.",
      "stage": "qualifying",
      "status": "collecting",
      "summary": "2026-03-28 to 2026-03-29",
      "workflow_name": "boarding"
    },
    "stage": "decision",
    "summary": "Executed deterministic workflow handler",
    "timestamp": "2026-03-16T22:37:02.001154+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "current_state": "QUALIFYING",
      "message_count_after": 4,
      "storage_key": "919900000301"
    },
    "stage": "mutation",
    "summary": "Persisted updated conversation memory",
    "timestamp": "2026-03-16T22:37:02.001564+00:00"
  }
]