Agents
Create and configure AI agents on botts.ai: system prompts, knowledge bases, lead-capture forms, conversation history, memory, HTTP tools, and the built-in test chat and voice test.
An agent is the Intelligence layer, the second of the Three I's. An agent pairs a set of instructions (the System Prompt) with the tools and data it needs to answer questions and act on behalf of your business. You then connect that agent to your customers through the Deploy tab (channels and deployments).
An agent does not require a knowledge base. You can build a pure conversational agent from a system prompt alone, attach one or more knowledge bases so it can answer from your content, have it capture leads through forms, and let it call your HTTP tools, in any combination.
Agents live under Agents in the left sidebar: the list/grid is at /dashboard/agents, create is at /dashboard/agents/new, and each agent's detail page is at /dashboard/agents/[id].
Who can use agents
Access to agents is role-based. The same boundary is enforced in the dashboard and in the API.
| Role | View agents | Create / edit / delete | Usage tab metrics |
|---|---|---|---|
| Member | No (redirected to Chat) | No | No |
| Builder | Yes | Yes | No |
| Admin | Yes | Yes | Yes |
| Owner | Yes | Yes | Yes |
Members are redirected to Chat if they open an Agents page. Builders can configure the whole agent but cannot see the Usage figures (those need the same permission as managing Integrations, which is Admin/Owner only).
Agent limits per plan
Each plan caps how many active agents you can have. Inactive agents do not count toward the limit.
| Plan | Active agents |
|---|---|
| Personal | 1 |
| Business | 2 |
| Business Pro | 5 |
| Enterprise | Unlimited |
Grandfathered Lite organizations include 1 active agent. At the cap, the Create Agent button is replaced. Owners and Admins see Upgrade to add agents (N/M), which opens the plans page. Builders see Agent limit reached (N/M) and need an Owner or Admin to upgrade. Delete an agent, or upgrade your plan, to add more.
Creating an agent
- Go to Agents in the sidebar and click + Create Agent.
- Give the agent an Agent Name (required). The dice button next to the field fills in a random name if you want a quick placeholder.
- Write a System Prompt, or generate one (see below). The field is pre-filled with
You are a helpful assistant.and is required. - Optionally attach Knowledge Bases, turn on Built-in Tools such as Web Search, enable Form / Lead Capture, turn on Conversation History or Customer Memory, and attach Tools.
- Click Create Agent. New agents are created as chat agents.
The create page is the same form you see later on the Configure tab, so every option below is available from the very first save.
Writing a system prompt
The system prompt is the most important setting on your agent. It defines who the agent is, how it should communicate, and the rules it must follow.
Anatomy of a good system prompt
| Section | Purpose | Example |
|---|---|---|
| Identity | Who is the agent? | "You are Anna, a customer support assistant for Acme Electronics." |
| Tone & style | How should it communicate? | "Be friendly and professional. Use simple language. Avoid jargon." |
| Boundaries | What should it not do? | "Never discuss competitor products. Do not make up answers." |
| Fallback behavior | What to do when unsure? | "If you don't know the answer, say: 'I'm not sure, let me connect you with our team.'" |
| Specific rules | Business-specific logic. | "Always mention that shipping is free for orders over CHF 50." |
Example system prompt
You are Lisa, a helpful customer support assistant for GreenGarden,
a Swiss online shop for organic gardening supplies.
Your role:
- Answer questions about products, shipping, and returns based on
the knowledge base.
- Recommend products when asked for advice.
- Be warm, friendly, and concise.
Rules:
- Never make up product information. If it's not in the knowledge base,
say you'll check and ask the customer to email support@greengarden.ch.
- Always mention that orders over CHF 50 ship for free within Switzerland.
- Do not discuss competitor products or pricing.
- Respond in the same language the customer is using.
Tip
Be explicit. Vague instructions like "be helpful" are less effective than specific rules like "always include the product link when recommending an item."
Starting from a template or generating with AI
Beneath the System Prompt field you have two shortcuts:
- Preset templates: click a template chip to drop a ready-made starting prompt into the field, then edit it.
- Generate with AI: describe the agent you want in plain language (5–2,000 characters) and click Generate. botts.ai writes a 150–300 word best-practice prompt in the same language you used, with
[Placeholder]markers (such as[Company Name]) for you to fill in. You can dictate the description by voice using the microphone icon in the description field (audio up to 25 MB).
Both Generate with AI and voice dictation require the Builder role or higher and consume org credits. If your org is out of credits, the action is blocked.
The agent detail page
The agent page has its own navigation on the left, next to the main sidebar, with the active page reflected in the URL. At the top sit the agent switcher (jump to another agent), the agent ID and the Data Assessment badge, which shows on hover where this agent's data is hosted and stored.
| Page | What it contains |
|---|---|
| Configure | The split-pane editor: the agent form on the left, Test Agent on the right. This is the default page. |
| Deploy | The channels and deployments that connect this agent to your customers. |
| Tests, Predictions, History | The Testing group: saved test scenarios, predicted customer questions, and the results of every full run. See Testing. |
| Chats | The agent's conversations and the end users behind them, merged into one place. |
| Forms | Form submissions (leads) collected by this agent, with CSV export. |
| Usage | Per-agent messages, voice minutes and credits over 24 hours, 7, 30 (default) or 90 days. The figures load for Admin and Owner only. |
Chats, Forms and Usage form the Insights group. On desktop, the Testing and Insights groups start collapsed. Click a group heading to open it, and the dashboard remembers your choice.
On Configure, the form's sections are collapsible. Name & Prompt is open. The other sections start collapsed, and on the create page Built-in Tools starts open as well. A sticky save bar turns amber and shows "Save to apply changes" while the form is dirty. Save Changes persists your changes and reloads quietly so the test panel on the right keeps its place.

Connecting knowledge bases
If your organization has knowledge bases, a Knowledge Bases section appears in the form with a checkbox for each one. Attach as many as you like: agents and knowledge bases are linked many-to-many, so several agents can share the same knowledge base.
When at least one knowledge base is attached, the agent automatically gets a knowledge search tool. There is no toggle for it; it is always available whenever a knowledge base is linked. When the agent searches:
- It searches all attached knowledge bases.
- It uses one of three modes: hybrid (semantic + keyword + metadata; the default), fulltext (exact keyword matching, good for names and codes), or vector (pure semantic similarity).
- It returns the best matching chunks across all knowledge bases, sorted by relevance.
Advanced Knowledge Base Browsing (optional)
Once you have selected at least one knowledge base, the Built-in Tools section also offers an Advanced Knowledge Base Browsing toggle. Turn it on to additionally let the agent list and read whole documents in the attached knowledge bases, not just search for matching chunks. This is useful when the agent needs to walk through an entire document rather than retrieve isolated passages.
When to use multiple knowledge bases
- Separate domains: one knowledge base for products, another for company policies.
- Different update cycles: your FAQ might change weekly while your product catalog changes monthly.
- Shared knowledge bases: a support agent and a sales agent can both draw on the same product knowledge base.
Form / Lead Capture
Turn on Form / Lead Capture to give your agent a collect_form tool. The agent gathers the required fields conversationally and then submits them. botts.ai stores each submission and can email you about it. Submissions appear on the agent's Forms page.
When the tool is enabled with at least one form, the agent's instructions are automatically extended with the names, fields, and required fields of each enabled form, so the model knows exactly what to ask for before submitting.
Built-in form templates
Three templates ship with the product. Each one is enabled by its own checkbox, and the agent can only submit a template that is switched on.
| Template | Fields | Required |
|---|---|---|
| Contact Form | name, email, phone, message | name, email |
| Support Ticket | subject, description, email, priority (low / medium / high) | subject, description, email |
| Booking Request | name, email, date, service | name, email, date |
Custom forms
Use Add Form to create your own form. Give it a Form Name, and for each field set a name, a type (Text, Number or Yes/No), and whether it is Required. Submissions are validated against your field definitions, so if the agent submits incomplete or invalid data it is asked to correct it before the submission is saved.
Submission handling
- One per conversation: the same form can only be submitted once in a given conversation; a repeat attempt is reported as already submitted.
- Contact profile: any name, email, or phone in a submission is copied into the contact's profile if not already set.
- Send notification on submission: tick this to be emailed a plain-text summary on every submission. This only sends mail if your organization has a notify email set under Organization → General; without one the form shows an amber warning and no email is sent.
Conversation history
Within a conversation, the agent always sees what was said earlier, so a follow-up such as "Does it come in blue?" works without any setting.
Conversation History goes further. It lets the agent see recent messages from the same person's previous conversations with this agent, in the website widget and on phone calls. A returning customer can say "Any news on the delivery date I asked about last week?" and the agent knows what they mean.
To enable it, turn on Enable past conversation context and set Max messages to load from past conversations. The default is 100, and the slider runs from 20 to 200 in steps of 10. Only this agent's earlier conversations with the same end user count, not the current one. Higher values give more context but use more credits per request.
Customer Memory
Memory lets your agent remember facts about a person across conversations. While conversation history replays recent messages from earlier chats, memory keeps distilled facts, such as a customer's name, preferences, or past issues, between separate sessions with the same end user.
How it works:
- During and after conversations, the agent extracts key facts (for example, "The customer's name is Marco" or "They prefer email").
- These facts are stored against the end user's profile.
- In later conversations, the agent can reference them for a personalized experience.
Turn on Customer Memory and pick a retention period for how long facts are kept before automatic deletion:
| Retention option | Meaning |
|---|---|
| Keep indefinitely (default) | Facts are never auto-deleted. |
| 30 / 60 / 90 / 180 days or 1 year | Facts older than the chosen window are removed automatically. |
Note
Memory is especially valuable for voice agents and recurring support, where personal context makes interactions feel human.
Tools
Beyond knowledge and forms, an agent can call the tools from your organization's connections: MCP servers, imported APIs, and HTTP endpoints you set up under Integrations. The Tools section lists your organization's tools with a toggle for each one; switch a tool on to attach it to this agent. On an existing agent a tool toggle takes effect right away; it does not wait for Save Changes.
- A tool that has been disabled organization-wide shows a "disabled globally" badge and is not used at runtime even if it is toggled on here.
- A tool from a per user connection shows a Per user badge and names the secret keys each member has to store for it to work for them.
- Only enabled tools are passed to the agent, so disabling a tool, here or in Integrations, immediately stops the agent from using it.
Attach the tools this agent actually needs rather than all of them. Every attached tool is text in the model's prompt, so a long list makes the agent slower, more expensive, and less decisive about which tool to pick.
Set up connections in Integrations →
Web search
Turn on Web Search in the Built-in Tools section to let the agent look things up on the live web when the answer isn't in its knowledge base: recent events, current figures, or general facts. It's a built-in tool you enable per agent (like knowledge bases and forms); leave it off for agents that should answer only from your own content.
With it on, the agent:
- Searches the web and gets the most relevant results back as short snippets.
- Opens a page when a snippet isn't enough, reading the full text for exact figures, tables, or details (it can also follow a link from a page it has opened).
- Cites its sources as links, and flags when a figure may be out of date rather than presenting it as current.
Web search is billed in credits: 0.10 credits per search, plus 1 credit each time the agent opens a page in full. The agent opens only the pages it needs, so most answers cost just the search.
Restricting web search to certain sites
Web search does not have to mean the whole internet. Under the toggle you can add up to 10 domains and choose how they are applied:
| Mode | Effect |
|---|---|
| Only these sites | Results come only from the domains you list. |
| Exclude these sites | Results from the domains you list are filtered out. |
The two modes are exclusive; you pick one list, not both. Type a domain (for example wikipedia.org) and press Enter to add it.
Use Only these sites to build an agent that researches within a trusted set: your regulator's site, a standards body, your own documentation. Use Exclude these sites to keep a competitor or a low-quality aggregator out of the answers.
Where the searching happens
Web search queries leave Switzerland: they go to Staan.ai in France. When an agent has web search on, its deployment's data-assessment panel gains a Web search row saying so, and the search provider is disclosed there alongside the model hosting. See Data residency and transparency.
Appointment booking
An agent can book meetings in a Cal.com calendar, in chat and on voice. The booking tool is set up by botts.ai for now (ask us: we need the Cal.com API key, the event type to book, and the timezone); a self-service setup in Integrations follows. With it attached, the agent has two functions:
- Find slots: looks up free times for the days the visitor names and offers two or three of them in words, never a long list. Times are in the visitor's timezone.
- Book: once the visitor has picked a time and given their name and email address, books the slot. Cal.com sends the invite with the video link, so on a call the agent only says the invite is on its way by email and never reads a link aloud. If the slot was taken meanwhile, the agent offers the next options.
One agent can book into several calendars, for example one per team member. The agent uses the calendar of the person the visitor asks for, or picks one by the conversation's language. Visitors can book up to 14 days ahead by default. A conversation holds one upcoming booking, and changes go through the invite email.
Cal.com's free plan is enough: one account, a connected calendar and one event type. The visitor's name, email and the chosen time go to Cal.com's US-hosted service; a deployment whose agent has the tool shows an Appointment booking row in its data-assessment panel saying so. A self-hosted Cal.com keeps the data in Switzerland and works with the same tool.
Knowing who it's talking to
On authenticated channels an agent is told, in one short line at the top of its prompt, who it is speaking with. It can then greet the person by name, and an agent whose own system prompt asks for it can attribute records it creates ("Recorded by Anna").
- Internal chat: the signed-in member's name.
- Phone: the caller matched by caller ID against the Work Phone and Personal Phone members enter in their profile (see Your account settings).
Tip
Caller identity is there so the agent can greet people by name and attribute the records it creates. When a call turns to something sensitive, have the agent confirm who it is speaking to during the conversation, the way your team would on any other call.
Nothing is injected on public channels such as the website widget, where the visitor is anonymous.
Test Agent
The right side of Configure is a live test panel headed Test Agent (on a phone, open it with the Test Agent button). At its top is a model picker for choosing which AI model to test with. For repeatable checks across many scenarios, save conversations as tests instead; see Testing.
- The picker lists the models available to your organization (filtered by your data-residency tier). Your choice is remembered per agent.
- Each model shows its price (text rates as credits per 1,000 words for input and output; GPT Live 1 as Voice N credits / min), a relative cost tier, speed and intelligence ratings, a Recommended marker, an Images badge on models that can read images, and the data-residency geography (hosting / company / origin country) so you can confirm where the model runs.
The model you pick changes what the right pane shows:
- A standard chat model renders the Test Chat (text).
- A voice model renders the Voice test instead.
Test Chat (text)
Send a message and the agent responds with streaming text. Tool calls (like a knowledge search) appear as expandable cards, and a successful form submission shows as a compact green checkmark. The conversation is kept across page switches and reloads; use New Chat to start over. If your organization is out of credits, the chat reports that.
Under every agent reply, Save as Test turns the conversation up to your message into a saved test, with the reply kept as reference. Once saved, the button turns into a Saved as test link, and the conversation shows how many tests use it in the agent's Chats.
Voice test
Select a voice model (GPT Live 1) and the right pane switches to a live voice test. The voice test needs a plan that includes voice (the Personal plan covers the internal chat only) and a server-location setting that allows GPT Live 1. Otherwise the session does not start and the panel says why. The test captures your microphone, plays the agent's spoken replies, supports barge-in (you can interrupt), and shows a live transcript with any tool calls plus a mic-level meter and a session timer. Voice test sessions are capped at 12 minutes and disconnect automatically when the timer runs out.

Best practice
Test with the kinds of questions your customers actually ask, including edge cases ("What if someone asks about a product you don't sell?"), to confirm your system prompt handles them gracefully.
Deleting agents
Agents stay active unless you move to a plan with fewer agents. You then choose which agents to keep active, and the others are deactivated together with their deployments. Only active agents count toward your plan's agent limit.
To remove an agent, use the delete control on the agents list (it asks you to confirm). Deletion is blocked while the agent still has active deployments: you will see "Cannot delete agent: N active deployment(s) exist. Deactivate them first." Deactivate or remove the deployments on the Deploy tab, then delete the agent. When you delete an agent, its (inactive) deployments and their conversations are kept, and any phone numbers they held go back to your organization's pool. If one of those deployments still has a phone number, only an Admin or Owner can delete the agent. A Builder sees "Cannot delete agent: a deployment still has a phone number. Ask an admin to unassign it first."
Data residency
On the agents grid, each card carries a data-assessment badge. If an agent has a deployment whose model runs outside your organization's configured server location, the card shows an amber Server location warning with a tooltip listing the non-compliant models. The model picker's per-model geography helps you choose a compliant model when configuring or testing.
Last updated on October 7, 2026