Skip to navigation

Concierge

View as MarkdownOpen in Claude

ConciergeAgent provides venue information, answers questions about amenities and services, helps with bookings, and gives directions.

Basic Usage

from signalwire.prefabs import ConciergeAgent
agent = ConciergeAgent(
venue_name="Grand Hotel",
services=["room service", "spa bookings", "restaurant reservations", "tours"],
amenities={
"pool": {"hours": "7 AM - 10 PM", "location": "2nd Floor"},
"gym": {"hours": "24 hours", "location": "3rd Floor"},
"spa": {"hours": "9 AM - 8 PM", "location": "4th Floor"}
}
)
if __name__ == "__main__":
agent.run()

Amenity Format

amenities = {
"amenity_name": {
"hours": "Operating hours",
"location": "Where to find it",
"description": "Optional description",
# ... any other key-value pairs
}
}

Importing ConciergeAgent

LanguageImport
Pythonfrom signalwire.prefabs import ConciergeAgent
TypeScriptimport { ConciergeAgent } from '@signalwire/sdk'

Constructor Parameters

ConciergeAgent(
venue_name="...", # Name of venue (required)
services=[...], # List of services offered (required)
amenities={...}, # Dict of amenities with details (required)
hours_of_operation=None, # Dict of operating hours
special_instructions=None, # List of special instructions
welcome_message=None, # Custom welcome message
name="concierge", # Agent name
route="/concierge", # HTTP route
**kwargs # Additional AgentBase arguments
)

Built-in Functions

ConciergeAgent provides these SWAIG functions automatically:

FunctionDescription
check_availabilityCheck service availability for date/time
get_directionsGet directions to an amenity or location

Concierge Flow

Diagram showing the concierge flow from greeting through information lookup, service requests, and booking assistance.
Concierge agent conversation flow.

Complete Example

#!/usr/bin/env python3
## resort_concierge.py - Hotel concierge agent
from signalwire.prefabs import ConciergeAgent
agent = ConciergeAgent(
venue_name="The Riverside Resort",
services=[
"room service",
"spa treatments",
"restaurant reservations",
"golf tee times",
"airport shuttle",
"event planning"
],
amenities={
"swimming pool": {
"hours": "6 AM - 10 PM",
"location": "Ground Floor, East Wing",
"description": "Heated indoor/outdoor pool with poolside bar"
},
"fitness center": {
"hours": "24 hours",
"location": "Level 2, West Wing",
"description": "Full gym with personal trainers available"
},
"spa": {
"hours": "9 AM - 9 PM",
"location": "Level 3, East Wing",
"description": "Full service spa with massage and facials"
},
"restaurant": {
"hours": "Breakfast 7-10 AM, Lunch 12-3 PM, Dinner 6-10 PM",
"location": "Lobby Level",
"description": "Fine dining with panoramic river views"
}
},
hours_of_operation={
"front desk": "24 hours",
"concierge": "7 AM - 11 PM",
"valet": "6 AM - 12 AM"
},
special_instructions=[
"Always offer to make reservations when guests ask about restaurants or spa.",
"Mention the daily happy hour at the pool bar (4-6 PM)."
],
welcome_message="Welcome to The Riverside Resort! How may I assist you today?"
)
if __name__ == "__main__":
agent.add_language("English", "en-US", "rime.spore")
agent.run()

Best Practices

Amenities

  • Include hours for all amenities
  • Provide clear location descriptions
  • Add any special requirements or dress codes
  • Keep information up to date

Services

  • List all bookable services
  • Connect to real booking system for availability
  • Include service descriptions and pricing if possible

Special Instructions

  • Use for promotions and special offers
  • Include upselling opportunities
  • Add seasonal information