> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # ConciergeAgent > A virtual concierge for a venue — provides information about services, amenities, hours of operation, and directions. [agentbase]: /docs/server-sdks/reference/typescript/agents/agent-base [functionresult]: /docs/server-sdks/reference/typescript/agents/function-result A virtual concierge for a venue or business. Answers questions about services, amenities, and hours of operation, and offers directions and recommendations. ```typescript {3} import { ConciergeAgent } from '@signalwire/sdk'; const agent = new ConciergeAgent({ /* ConciergeConfig */ }); ``` ## ConciergeConfig **`venueName`** `string` — required Name of the venue or business (used in greetings and prompts). --- **`services`** `string[]` — required List of services offered by the venue. --- **`amenities`** `Record>` — required Map of amenity names to detail key/value pairs. For example, `{ "Pool": { "hours": "9am-9pm", "location": "3rd floor" } }`. --- **`hoursOfOperation`** `Record` — default: \{ 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[]` — default: \[] Extra instruction bullets appended to the agent's prompt. --- **`welcomeMessage`** `string` Optional custom welcome message played as a non-bargeable static greeting. --- **`name`** `string` — default: "concierge" Agent display name. --- **`route`** `string` — default: "/concierge" HTTP route for the agent. --- **`agentOptions`** `Partial` Additional [`AgentBase`][agentbase] options forwarded to the constructor. --- ## Example ```typescript {3} import { ConciergeAgent } from '@signalwire/sdk'; const agent = new ConciergeAgent({ venueName: 'Riverside Resort', services: ['Dining', 'Spa', 'Concierge'], amenities: { Pool: { hours: '9 AM - 9 PM', location: 'Level 3' }, Gym: { hours: '24 hours', access: 'Room key' }, }, hoursOfOperation: { default: '9 AM - 5 PM', weekends: '10 AM - 4 PM', }, specialInstructions: [ 'Always mention our weekend jazz brunch when discussing dining.', ], welcomeMessage: 'Welcome to Riverside Resort. How can I help you?', }); agent.serve(); ``` ### createConciergeAgent ```typescript {3} import { createConciergeAgent } from '@signalwire/sdk'; const agent = createConciergeAgent({ venueName: 'Riverside Resort', services: ['Dining'], amenities: { Pool: { hours: '9-9' } }, }); ``` > A virtual concierge for a venue — provides information about services, amenities, hours of operation, and directions.