ConciergeAgent

View as MarkdownOpen in Claude

A virtual concierge for a venue or business. Answers questions about services, amenities, and hours of operation, and offers directions and recommendations.

1import { ConciergeAgent } from '@signalwire/sdk';
2
3const agent = new ConciergeAgent({ /* ConciergeConfig */ });

ConciergeConfig

venueName
stringRequired

Name of the venue or business (used in greetings and prompts).

services
string[]Required

List of services offered by the venue.

amenities
Record<string, Record<string, string>>Required

Map of amenity names to detail key/value pairs. For example, { "Pool": { "hours": "9am-9pm", "location": "3rd floor" } }.

hoursOfOperation
Record<string, string>Defaults to { default: "9 AM - 5 PM" }

Hours of operation by category. Use "default" for a single block, or keyed entries like { weekdays: "9-5", weekends: "10-4" }.

specialInstructions
string[]Defaults to []

Extra instruction bullets appended to the agent’s prompt.

welcomeMessage
string

Optional custom welcome message played as a non-bargeable static greeting.

name
stringDefaults to "concierge"

Agent display name.

route
stringDefaults to "/concierge"

HTTP route for the agent.

agentOptions
Partial<AgentOptions>

Additional AgentBase options forwarded to the constructor.

Example

1import { ConciergeAgent } from '@signalwire/sdk';
2
3const agent = new ConciergeAgent({
4 venueName: 'Riverside Resort',
5 services: ['Dining', 'Spa', 'Concierge'],
6 amenities: {
7 Pool: { hours: '9 AM - 9 PM', location: 'Level 3' },
8 Gym: { hours: '24 hours', access: 'Room key' },
9 },
10 hoursOfOperation: {
11 default: '9 AM - 5 PM',
12 weekends: '10 AM - 4 PM',
13 },
14 specialInstructions: [
15 'Always mention our weekend jazz brunch when discussing dining.',
16 ],
17 welcomeMessage: 'Welcome to Riverside Resort. How can I help you?',
18});
19
20agent.serve();

createConciergeAgent

1import { createConciergeAgent } from '@signalwire/sdk';
2
3const agent = createConciergeAgent({
4 venueName: 'Riverside Resort',
5 services: ['Dining'],
6 amenities: { Pool: { hours: '9-9' } },
7});