Build agents

Create a bot

A bot is your agent - its prompt, model, knowledge, tools, and channel settings. You build one in the dashboard with New bot, three different ways depending on how much you want Hania to do for you.

Three ways to start

  • Guided wizard - name the bot, choose a type, and fill in the prompt and settings step by step. Best when you know what you want.
  • AI-assist - describe what the bot should do (and optionally point it at your website or notes), and Hania drafts the system prompt and suggests tools. Review the draft, then save. The draft is generated, never auto-published.
  • Blueprint - start from a pre-built template and customize it.

Bot types & channels

Pick the shape that fits your use case:

  • Chat agent - text conversations for your website, app, Slack, SMS, or WhatsApp.
  • Voice agent - real-time phone and in-app voice. See Voice.
  • Scheduled agent - a goal-driven agent that runs on a schedule (or on demand) to do work and report back.

What you configure

Whichever way you start, a bot brings together:

  • System prompt - the instructions, persona, and guardrails (compose it directly or with the prompt builder).
  • Model - the language model that powers it (see LLM for what's available).
  • Knowledge - sources it can search to answer from. See Knowledge.
  • Tools - actions it can take. See Tools.
  • Voice settings - for voice agents: the speaking voice, greeting, and in-call controls (end call, transfer, outbound limits).
  • Response quality - two optional graders that watch a bot's answers (confidence scoring and response validation), plus a review view to see where it's weak. All off by default. See Response quality below.

Response quality

Two optional graders can watch a bot's answers. Both are off by default, opt-in per bot, and operator-only: nothing here is ever shown to your customers.

  • Confidence scoring - grades each answer on the bot's own model before it's sent. If confidence falls below 0.3 the answer is replaced with a graceful "I don't have enough reliable information" message. This adds one extra model call and around 700 ms of latency per reply. The 0.3 threshold is fixed.
  • Response validation - a passive check that runs after the reply is sent, and only when the turn used sources (knowledge or tool results). It records a verdict (verified, partial, or failed) and any unsupported claims, but never changes or blocks the answer.

Turn either one on from the bot's General tab. The only customer-facing effect is the low-confidence replacement above; scores and verdicts stay inside the console.

Both graders check an answer after it's written. For agents, the Verify Claim tool adds a preventive layer instead: the agent can independently fact-check a claim before it asserts it. Assign it like any other tool.

Reviewing graded turns

The bot's Quality tab lists recent graded turns, newest first, so you can see where the bot answers with low confidence or makes unsupported claims and improve its prompt or knowledge. It opens filtered to just the turns worth attention (a refused answer, confidence below 0.5, or a validation result of partial or failed), and you can switch to the full list. Each row shows the confidence score and the grader's reasoning, whether the answer was refused, the validation status with any unsupported claims, and a link to the conversation it came from.

A turn appears only once one of the two graders was on for it, so a bot with both off shows an empty list - turn a grader on and have a conversation to populate it. A row may show only one grader's result when only that half was enabled for the turn.

Behind the tab the console calls GET /api/bots/{id}/evaluations with your session, scoped to the current workspace (a bot outside it returns 404). It takes only_problems=true (the default review filter) and limit (default 50, max 500). Evaluations live only in this view for now - they aren't retained or exported anywhere else.

Test & deploy

Open your bot and use the built-in test chat to talk to it as a user would - watch replies stream in, see tool calls execute, and inspect the trace. When it behaves the way you want, deploy it: embed the chat widget on your site, map a voice number, or drive it from your backend with the Chat API.

Prefer to script it? You can do all of this over the API - see Bots to create and configure bots programmatically.