🧠 All Things AI
Intermediate

FAQ vs Task vs Copilot Bots

Every chatbot built with an LLM falls into one of three fundamental patterns, each with a distinct architecture, a different relationship between user and system, and a different set of failure modes. Getting this choice wrong early is expensive β€” it shapes your data model, your memory strategy, your evaluation criteria, and your infrastructure.

The Three Patterns

FAQ Bot
Copilot Bot
Task Bot
Agent
Read-only / Stateless
FAQ Bot β€” answers questions, no side effects
Autonomous / Stateful
Agent β€” multi-step, self-directed goal completion

Autonomy is a spectrum β€” choose the simplest pattern that solves your problem

DimensionFAQ BotTask BotCopilot Bot
Core purposeAnswer questions from a known knowledge baseComplete a specific action or workflow end-to-endAugment a human working inside a tool or workflow
User interaction styleQuestion β†’ Answer (single turn, often)Goal β†’ Multi-step dialogue β†’ Action completedSuggestion β†’ Human decides β†’ Accept / modify / reject
LLM's roleRetrieve + rephrase grounded contentUnderstand intent, collect parameters, call APIsGenerate, summarise, suggest β€” human in the loop
State requiredMinimal β€” usually statelessHigh β€” tracks collected slots, current step, completionContext of open document / data / user session
AutonomyNone β€” read-only, no side effectsMedium β€” executes with user confirmationLow β€” suggests, never commits without human
Failure modeHallucination / out-of-scope answersIncomplete slot collection, wrong API call, partial actionUser accepts bad suggestion blindly
Common examplesSupport docs bot, policy Q&A, HR handbookRestaurant booking, refund bot, onboarding wizardGitHub Copilot, Notion AI, Excel Copilot, code review bot

Pattern 1 β€” FAQ Bot (Knowledge Q&A)

The FAQ bot answers questions from a defined knowledge base. Users ask things; the bot retrieves and synthesises grounded answers. It has no side effects and takes no actions. The canonical implementation is RAG (Retrieval-Augmented Generation).

Architecture

Documents
PDFs, web pages, help articles
β†’
Chunk + Embed
Split & vectorise into DB
β†’
User question
Embedded at query time
β†’
Retrieve top-k
Nearest-neighbour search
β†’
LLM synthesis
Grounded answer from chunks
β†’
Cite source
Surface chunk + document link

FAQ bot = RAG: retrieve grounded content, synthesise, cite. Never answer from training knowledge alone.

Grounding enforcement: System prompt instructs the LLM to answer only from provided context, to say β€œI don't know” if the answer is not in the retrieved chunks, and never to invent.
Citation: Surface the source document/chunk alongside the answer so users can verify.

When to choose FAQ Bot

Your primary goal is answering questions, not completing actions
Content changes regularly (policies, pricing, product docs) β€” RAG means no retraining
Risk tolerance for wrong answers is low β€” you need citation and grounding
You want to start simple and prove value quickly

Anti-patterns

Using a FAQ bot for tasks that require taking actions (booking, submitting forms)
Skipping grounding β€” letting the LLM answer from training knowledge rather than your docs
Not testing out-of-scope questions β€” the bot must gracefully decline, not hallucinate

Pattern 2 β€” Task Bot (Goal Completion)

The task bot helps a user accomplish a specific goal that involves multiple steps and ultimately calls an API or takes an action. It collects required information through dialogue (slot-filling), validates inputs, and executes β€” booking a restaurant, processing a refund, onboarding a new user.

Architecture

Intent classify
What does the user want to do?
β†’
Slot collection
Gather all required parameters via dialogue
β†’
Validate
Check formats, check backend system
β†’
Confirm
Show summary β€” user approves
β†’
Execute API
Call backend β€” booking, CRM, payment
β†’
Confirm result
Success / failure message to user

Never skip the confirmation gate before any irreversible action (payments, cancellations, sends)

When to choose Task Bot

There is a clear, bounded task with defined inputs and a backend API that executes it
The task currently requires form fills, phone calls, or email chains β€” bot can automate the collection
Users have a clear goal (not β€œexplore information”) every time they interact

Anti-patterns

Executing irreversible actions without a confirmation step β€” booking, charging, deleting
Designing for the happy path only β€” real conversations involve interruptions, corrections, and restarts mid-flow
Exposing too many tasks in one bot β€” each task adds complexity; start with one and expand

Pattern 3 β€” Copilot Bot (Human Augmentation)

The copilot bot is embedded inside an existing tool and augments the human using it. Unlike the other two patterns, the copilot does not own a conversation β€” it assists within a context the human is already working in. It reads the current state (open document, code file, data row), generates suggestions, and the human decides whether to accept, modify, or ignore them.

Architecture

1. Context injection: The user's current context (open file, selected text, cursor position, active data row, current form state) is injected into the LLM prompt automatically.
2. Suggestion generation: LLM generates completions, rewrites, summaries, or next steps β€” framed as suggestions. Output is shown inline (ghost text) or in a side panel.
3. Human-in-the-loop (mandatory): The copilot never commits anything. Every action requires an explicit accept gesture (Tab to accept, click β€œApply”, approve in diff view). This is the defining architectural constraint.
4. Diff / preview UI: For modifications, surface a diff view showing what changed so the user can see the exact delta before accepting.
5. Feedback loop: Track accepts and rejections per suggestion type. Low acceptance rates on a specific suggestion type indicate the model or prompt is miscalibrated for that context.

When to choose Copilot Bot

You are building inside an existing tool with rich context (IDE, CMS, spreadsheet, email client)
The user is an expert who makes final decisions β€” the AI speeds up execution, not judgment
Risk tolerance for mistakes is low β€” errors must be catchable before they propagate

Anti-patterns

Auto-committing suggestions without user confirmation β€” this is the line between copilot and agent
Injecting too much context β€” large windows are slow and expensive; be selective about what you inject
Not tracking accept/reject rates β€” without feedback data you cannot improve the suggestion quality

Hybrid Patterns

CombinationExampleHow they compose
FAQ + TaskCustomer support bot (answers questions + can issue refunds)Intent classifier routes: informational queries β†’ FAQ pattern, action requests β†’ Task pattern
Copilot + FAQCode assistant with embedded documentation lookupCopilot generates suggestions; can pull from docs RAG as part of context
Task + CopilotSales workflow bot (copilot drafts email, task bot logs CRM entry)Copilot handles content creation, Task pattern handles the write-back to external systems

Choosing Your Pattern

Start here: Does the user need to do something (take action) or know something (get information)?
Know something β†’ Is there a defined knowledge base of authoritative content? β†’ FAQ Bot (RAG)
Do something β†’ Is the task well-defined with a backend API to call? β†’ Task Bot
Both, inside a tool the user already uses β†’ Do they need AI suggestions within their working context? β†’ Copilot Bot
Complex, multi-system, multi-step goals with minimal human involvement β†’ β†’ Agent (see Agents section)

Common Architecture Mistakes

Building an agent when you need a task bot

Agentic architectures are complex, expensive to evaluate, and harder to make reliable. If your use case has a bounded set of tasks with known APIs, a well-designed task bot is more predictable, cheaper to run, and easier to test.

Building a FAQ bot without grounding

A general-purpose LLM answering from its training knowledge is not a FAQ bot β€” it is an ungrounded chatbot. Without a retrieval layer and strict system prompt grounding, the bot will confidently answer from outdated or incorrect training data.

Designing a copilot that auto-commits

The moment a copilot takes an action without explicit human approval, it has crossed into agent territory. Keep copilots suggestion-only until you have built the trust, oversight mechanisms, and rollback capabilities required for autonomous action.

Mixing patterns in a single conversation thread

A bot that answers questions, takes actions, and provides inline suggestions simultaneously is difficult to evaluate and maintain. Start with one pattern; add a second only when the first is stable and you have explicit routing logic.

How Evaluation Differs by Type

Bot typePrimary metricKey test cases
FAQ BotAnswer faithfulness to sources; out-of-scope detection rateQuestions whose answers are in docs; questions whose answers are not; ambiguous questions
Task BotTask completion rate; slot accuracy; wrong-action rateHappy path; mid-flow corrections; invalid inputs; ambiguous intents; abort requests
Copilot BotSuggestion accept rate; error rate in accepted suggestionsVaried contexts; expert users; novice users; edge-case inputs; adversarial content

Checklist: Do You Understand This?

  • Can you describe the core purpose and LLM role for each of the three patterns?
  • Can you explain when to choose a FAQ bot over a task bot, and vice versa?
  • What is the defining architectural constraint that separates a copilot from an agent?
  • Can you describe the slot-collection mechanism in a task bot and why a confirmation gate matters?
  • What is the primary metric for evaluating each bot type?
  • Can you name three anti-patterns β€” one per bot type?
  • If someone asks for a β€œsupport bot that can answer product questions and process refunds”, which combination of patterns do they need and how would you route between them?