Getting started

Quickstart

Thirty minutes, five steps. At the end you'll have an agent that answers from your own documents and data, and you'll know how to check whether its answer was honest.

Do this with the app open in a second tab. Every step points at a real screen, and the fastest way to learn the platform is to click through it once end to end rather than read about it.

Before you start: one model provider

Nothing below runs without a model to run it on, and a fresh instance ships with none configured. Pick whichever applies to you:

If you areDo thisWhere
Self-hostingSet OPENROUTER_API_KEY in your environment file and restart. One key reaches most models, which is why it is the quickest start.Install & deploy
Using an instance someone else runsConnect your own provider credentials, or use the operator's shared key if they left one configured.Integrations Models & providers

How to tell it worked

Open Build → Agent Chat and look at the model picker. If it lists models, you are ready. If it is empty or every send returns a provider error, the key is missing or wrong — fix that first, because every symptom below will otherwise look like something else.

1. Talk to something that already works

Before building anything, run a finished example so you know what "working" looks like. Open Build → Agent Swarms and start from the Support Copilot template. It is the clearest one to learn from because it contains, already wired, most of what the rest of these docs describe:

  • a router that classifies each request and sends it down one of three paths,
  • knowledge-base retrieval with reranking and a citation check,
  • an LLM judge that scores the draft answer for faithfulness,
  • and a human approval gate that anything low-confidence or sensitive stops at.

It needs no setup: its retrieval node points at Sample · Notebook RAG Lab, a read-only knowledge base bundled with the platform and readable by every user. So the template answers real questions on a brand-new instance.

Run it with the question it ships with, which that sample base genuinely covers:

text
How does retrieval-augmented generation reduce hallucinations,
and when should I use it instead of fine-tuning?

Then ask something the sample base plainly does not contain — "what is our refund window?" — and watch what it does with a question it cannot answer. That contrast is the whole subject of this platform: the first answer should carry citations, and the second should be a refusal rather than an invention.

2. Give the platform something to work with

An agent with no data is a chatbot. Two places give it substance, and they are not interchangeable:

  • Knowledge Base — prose. Contracts, policies, manuals, scraped pages. Retrieved by meaning, quoted back with citations. Use it for questions like "what is our refund window?"
  • Data Catalog — rows and columns. CSVs, spreadsheets, warehouse tables. Queried with SQL and counted exactly. Use it for "how many refunds did we issue in March?"

Why it works this way

A language model cannot count reliably. Ask it to total a column from a document and it will produce a confident, wrong number. Anything that must be arithmetically correct belongs in a table where SQL does the counting; anything that must be faithfully quoted belongs in the knowledge base. Choosing the wrong one is the most common cause of a plausible-but-false answer.

Upload one small file to each. A ten-row CSV and a two-page PDF are enough to learn on.

If you have nothing to hand, save this as refunds.csv and upload it under Data → Data Catalog. It is deliberately small enough to check the agent's arithmetic by eye:

csv
order_id,customer,region,refund_usd,refunded_on
1001,Acme,EMEA,120.00,2026-03-02
1002,Globex,AMER,45.50,2026-03-05
1003,Initech,EMEA,310.25,2026-03-11
1004,Umbrella,APAC,80.00,2026-03-14
1005,Acme,EMEA,15.75,2026-03-19
1006,Hooli,AMER,220.00,2026-04-02
1007,Globex,AMER,60.00,2026-04-08

The check that teaches the most

March refunds total 571.50 across five rows. Ask the agent for that number once the table is attached. A correct answer with the table in its sources means the wiring works; a confident number with a document in its sources means it guessed, and you have just seen the failure mode this page is about.

3. Build the agent

Open Build → Agent Builder and create one. Fill in these fields and skip the rest for now:

  1. 1

    Name and system prompt

    Say who the agent is and what it must refuse. Be blunt: "You answer questions about our returns policy using only the provided sources. If the sources don't cover it, say so." A vague prompt is the second most common cause of a bad agent.
  2. 2

    Model

    Pick any model your workspace allows. Start with a small, fast one — you are testing whether your wiring is right, not whether the model is clever. See Models & providers.
  3. 3

    Knowledge base

    Attach the collection you just created. The agent can now retrieve from it.
  4. 4

    Tools

    Enable sql_query so it can read your table, and web_search if it should be allowed to look things up online. Enable only what this agent genuinely needs — see the note below.

Don't switch on every tool

Each enabled tool is another option the model has to choose between on every turn. Give an agent eight tools and it will sometimes reach for the wrong one — running SQL against a table that can't answer the question instead of searching the web. Enable the two or three that match the agent's job.

A system prompt worth starting from. It is blunt about the two things that matter most — which source answers which kind of question, and what to do when neither does:

text
You answer questions about our returns and refunds using only the
sources available to you.

- For anything about policy or wording, search the knowledge base and
  quote it. Do not paraphrase a policy from memory.
- For anything involving a count, a total or a date range, query the
  refunds table with SQL. Never estimate a number from prose.
- If the sources do not cover the question, say so plainly and stop.
  Do not fill the gap with general knowledge.

Always state which source you used.

Why it works this way

The last two rules are doing the real work. A model's default behaviour when retrieval comes back empty is to answer anyway from what it absorbed in training — fluently, and with no signal that anything is different about this answer. Telling it explicitly to stop is what turns silence into a visible refusal you can act on.

4. Run it and read the sources

Open Build → Agent Chat, select your agent, and ask it something real.

Under the answer you'll see Sources, grouped by where the information came from — web links, knowledge base documents, the tables a query read, or an MCP tool. This is the fastest honesty check available: if you asked a data question and the sources show a document rather than a table, the agent answered from prose it half-remembered instead of counting.

Generate a document

The PPT, Word and Excel buttons under the composer turn a prompt plus your connected data into a real, editable Office file — a workbook with live formulas, a deck with native charts. Try "build a one-page summary of the table as a deck". Details in Agent Chat.

5. Read the trace

Open Traces & Logs and find the run you just made. The trace shows what actually happened, not what the agent claims happened: the fully resolved system prompt, every tool call with its arguments and result, tokens in and out, latency and cost.

When an agent misbehaves, the answer is almost always visible here — a tool that returned an error the model then papered over, a retrieval that came back empty, a prompt that didn't contain what you assumed it did. Reading traces is the single most useful habit this platform teaches. See Logs & traces.

If the first run doesn't work

Four failures account for most of them, and each looks like something else:

What you seeUsuallyFix
Every message fails, or the model picker is emptyNo provider configured, or a key that was rejectedStep 0 above — check OPENROUTER_API_KEY or your own credentials under Integrations
It answers, but with no sourcesNothing is attached, or nothing matchedConfirm the collection is attached to THIS agent, and that its documents finished processing
It answers a data question from a documentsql_query is off, or the table is not attachedEnable the tool and attach the table; the sources under the answer tell you which happened
A model you expected is missingA model rule limits this user or groupAccess control → Access → model rules

Read the trace before changing anything

It is tempting to start rewriting the prompt. Open the run in Traces & Logs first: it shows whether retrieval returned nothing, whether a tool errored, and what the prompt actually contained. Most "the prompt is wrong" theories die there in about ten seconds.

Where to go next