> 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. # Prefabs > Pre-built agent templates for common conversational patterns. [agentbase]: /docs/server-sdks/reference/typescript/agents/agent-base [functionresult]: /docs/server-sdks/reference/typescript/agents/function-result Prefabs are ready-to-use agent classes that implement common conversational patterns. Each prefab extends [`AgentBase`][agentbase], so you can customize them with additional prompt sections, tools, skills, and languages. Use them directly for rapid prototyping or subclass them for production use. ```typescript {2-6} import { ConciergeAgent, FAQBotAgent, InfoGathererAgent, ReceptionistAgent, SurveyAgent, } from '@signalwire/sdk'; ``` | Prefab | Purpose | Built-in Tools | | ---------------------------------------------------------------------------------------------- | --------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | | [ConciergeAgent](/docs/server-sdks/reference/typescript/agents/prefabs/concierge-agent) | Venue concierge with services, amenities, and hours | `check_availability`, `get_directions` | | [FAQBotAgent](/docs/server-sdks/reference/typescript/agents/prefabs/faq-bot-agent) | Answer questions using keyword matching | `search_faq`, `escalate` (optional) | | [InfoGathererAgent](/docs/server-sdks/reference/typescript/agents/prefabs/info-gatherer-agent) | Collect answers to a list of questions | `start_questions`, `submit_answer` | | [ReceptionistAgent](/docs/server-sdks/reference/typescript/agents/prefabs/receptionist-agent) | Front-desk check-in, directory, and transfers | `collect_caller_info`, `transfer_call`, `check_in_visitor` (optional) | | [SurveyAgent](/docs/server-sdks/reference/typescript/agents/prefabs/survey-agent) | Conduct surveys with branching and scoring | `validate_response`, `log_response`, `answer_question`, `get_current_question`, `get_survey_progress` | Each prefab also has a corresponding factory function (e.g., `createConciergeAgent()`) that creates and returns a configured instance. > **Tip** > > All prefabs can be extended by subclassing. Add custom tools with `defineTool()`, extra > prompt sections with `promptAddSection()`, and skills with `addSkill()`. #### [ConciergeAgent](/docs/server-sdks/reference/typescript/agents/prefabs/concierge-agent) Multi-department routing with knowledge base, hours of operation, and call transfer. #### [FAQBotAgent](/docs/server-sdks/reference/typescript/agents/prefabs/faq-bot-agent) Answer questions using keyword matching with optional escalation. #### [InfoGathererAgent](/docs/server-sdks/reference/typescript/agents/prefabs/info-gatherer-agent) Collect named fields from a caller with validation and completion callbacks. #### [ReceptionistAgent](/docs/server-sdks/reference/typescript/agents/prefabs/receptionist-agent) Front-desk check-in, directory lookup, and call transfers. #### [SurveyAgent](/docs/server-sdks/reference/typescript/agents/prefabs/survey-agent) Conduct surveys with branching, scoring, and multiple question types. --- ## Extending Prefabs All prefabs inherit from [`AgentBase`][agentbase], so you can add custom tools, prompt sections, and skills: ```typescript {4} import { FAQBotAgent } from '@signalwire/sdk'; import { FunctionResult } from '@signalwire/sdk'; class MyFAQBot extends FAQBotAgent { protected override defineTools(): void { super.defineTools(); this.defineTool({ name: 'escalate_to_human', description: 'Escalate to a human agent', parameters: { type: 'object', properties: {} }, handler: () => { const result = new FunctionResult('Transferring you to an agent now.'); result.connect('+15551234567'); return result; }, }); } } const agent = new MyFAQBot({ faqs: [ { question: 'What is your return policy?', answer: '30-day returns.' }, ], }); agent.promptAddSection('Brand', { body: 'You represent Acme Corp.' }); agent.addSkill('datetime'); agent.serve(); ``` > Pre-built agent templates for common conversational patterns. ## Docs - [ConciergeAgent](https://signalwire.com/docs/server-sdks/reference/typescript/agents/prefabs/concierge-agent.md): A virtual concierge for a venue — provides information about services, amenities, hours of operation, and directions. - [FAQBotAgent](https://signalwire.com/docs/server-sdks/reference/typescript/agents/prefabs/faq-bot-agent.md): An FAQ bot agent that answers frequently asked questions by matching user queries against a provided knowledge base using word-overlap similarity scoring. - [InfoGathererAgent](https://signalwire.com/docs/server-sdks/reference/typescript/agents/prefabs/info-gatherer-agent.md): A prefab agent that collects answers to a series of questions — supporting both static and dynamic (per-request callback) modes. - [ReceptionistAgent](https://signalwire.com/docs/server-sdks/reference/typescript/agents/prefabs/receptionist-agent.md): A front-desk agent that greets callers, looks up departments, and transfers calls. Optional visitor check-in. - [SurveyAgent](https://signalwire.com/docs/server-sdks/reference/typescript/agents/prefabs/survey-agent.md): A survey agent that conducts surveys with support for multiple question types, conditional branching based on answers, per-answer scoring, and a completion callback.