***

title: Prefabs
slug: /reference/python/agents/prefabs
description: Pre-built agent templates for common conversational patterns.
max-toc-depth: 3
---------------------

For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

[agentbase]: /docs/server-sdks/reference/python/agents/agent-base

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.

```python
from signalwire.prefabs import (
    ConciergeAgent,
    FAQBotAgent,
    InfoGathererAgent,
    ReceptionistAgent,
    SurveyAgent,
)
```

| Prefab                                                                                     | Purpose                                   | Built-in Tools                         |
| ------------------------------------------------------------------------------------------ | ----------------------------------------- | -------------------------------------- |
| [ConciergeAgent](/docs/server-sdks/reference/python/agents/prefabs/concierge-agent)        | Venue information and booking assistance  | `check_availability`, `get_directions` |
| [FAQBotAgent](/docs/server-sdks/reference/python/agents/prefabs/faq-bot-agent)             | Answer questions from a knowledge base    | `search_faqs`                          |
| [InfoGathererAgent](/docs/server-sdks/reference/python/agents/prefabs/info-gatherer-agent) | Collect answers to a series of questions  | `start_questions`, `submit_answer`     |
| [ReceptionistAgent](/docs/server-sdks/reference/python/agents/prefabs/receptionist-agent)  | Greet callers and transfer to departments | `collect_caller_info`, `transfer_call` |
| [SurveyAgent](/docs/server-sdks/reference/python/agents/prefabs/survey-agent)              | Conduct automated surveys with validation | `validate_response`, `log_response`    |

<Tip>
  All prefabs can be extended by subclassing. Add custom tools with `define_tool()`, extra
  prompt sections with `prompt_add_section()`, and skills with `add_skill()`.
</Tip>

***

## Extending Prefabs

All prefabs inherit from [`AgentBase`][agentbase],
so you can add custom tools, prompt sections, and skills:

```python
from signalwire.prefabs import FAQBotAgent
from signalwire.core.function_result import FunctionResult

class MyFAQBot(FAQBotAgent):
    def __init__(self):
        super().__init__(
            faqs=[
                {"question": "What is your return policy?", "answer": "30-day returns."}
            ]
        )

        self.prompt_add_section("Brand", "You represent Acme Corp.")
        self.add_skill("datetime")

        self.define_tool(
            name="escalate",
            description="Escalate to human agent",
            parameters={},
            handler=self.escalate
        )

    def escalate(self, args, raw_data):
        return FunctionResult("Transferring to agent...").connect("+15551234567")

if __name__ == "__main__":
    MyFAQBot().run()
```

<CardGroup cols={2}>
  <Card title="ConciergeAgent" href="/docs/server-sdks/reference/python/agents/prefabs/concierge-agent">
    Venue information and booking assistance.
  </Card>

  <Card title="FAQBotAgent" href="/docs/server-sdks/reference/python/agents/prefabs/faq-bot-agent">
    Answer questions from a knowledge base.
  </Card>

  <Card title="InfoGathererAgent" href="/docs/server-sdks/reference/python/agents/prefabs/info-gatherer-agent">
    Collect answers to a series of questions.
  </Card>

  <Card title="ReceptionistAgent" href="/docs/server-sdks/reference/python/agents/prefabs/receptionist-agent">
    Greet callers and transfer to departments.
  </Card>

  <Card title="SurveyAgent" href="/docs/server-sdks/reference/python/agents/prefabs/survey-agent">
    Conduct automated surveys with validation.
  </Card>
</CardGroup>