Skip to content

Serve / In-app assistant

In-app assistant ​

Assistant (/assistant) answers questions such as "What was revenue by country last quarter?" by calling the same semantic tools the MCP server exposes — under your access policies — and never by writing SQL.

What an answer contains ​

  • The answer text, and a table of the rows returned.
  • Answered with: every metric used, with its trust colour; uncertified metrics are labelled. Citations are built from the tool results, never from the model's claims — a metric name the model invents is dropped.
  • Warnings (for example low trust), the tool calls made (right panel), and Open in Playground with the same query.
  • When nothing matches, catalog-checked suggestions (certified first). A Modeler can turn a suggested new metric into a draft change request (:propose-metric: a keel/metric-{name}-{id} branch, a commit and an open request; the proposal is LlmSuggested, confidence ≤ 0.7).

Limits ​

Each question runs a bounded loop: at most 6 steps and 3 queries, 20 rows and 6,000 characters per result in the prompt, and the last 3 turns of history. Assistant queries bypass the result cache and are logged as consumer mcp/keel-assistant with you as the principal.

Privacy ​

  • Prompts carry metadata and tool results only as you may see them (masked, filtered).
  • Result rows are shown once and never stored: reopening a conversation shows the answers and citations but says the results are not kept.
  • Conversations are personal (row-level security) and can be deleted.

Turning it on ​

The assistant needs an LLM: the API must be configured with a provider key (Keel:Llm:ApiKey, provider anthropic), and the tenant's provider (Settings › AI & privacy) must not be none. With AI off it says so and calls nothing. Querying needs the Query serving permission (Owner, Admin, Steward, Modeler, Analyst).

Accuracy ​

A 100-question evaluation set over the AdventureWorks sample model (95 answerable, 5 that must be refused) runs nightly when an API key is available and records a trend. The ≥ 90% accuracy target is not measured yet: the nightly job needs the key as a CI secret.

Not yet

No conversation history list (a conversation reopens from its link), no charts in answers, and replies arrive when complete (no streaming).

Anchor Keel is a working product name: one platform, a shared core and licensed modules (Keel Semantic, Keel Migrate). Documentation built from the repository — facts are derived from code, ADRs and the decisions log.