Bonnard

Context engine

What agents know about your data, and how it stays right.

Talk to us
01020304 OBSERVEAgents useyour dataDIAGNOSEBonnard findswhat’s wrongIMPROVEYour datateam answers,into the contextVERIFYEvals check it helped
01020304 OBSERVEDIAGNOSEIMPROVEVERIFY
  1. ObserveAgents use your data
  2. DiagnoseBonnard finds what’s wrong
  3. ImproveYour data team answers, into the context
  4. VerifyEvals check it helped

Bring the context you have

Connect Postgres or your warehouse, and Bonnard reads the tables, keys and joins you already have. Add a dbt or OSI file if you have one.

  1. Start here
    Your database or warehouseTables, keys, comments. Connected read-only.
  2. Optional
    A dbt or OSI fileDescriptions, keys, joins, metrics.
  3. Wins
    Your team, through your agentDefinitions, metrics, rules. Your edits win.
public.ordersWhat your agent reads
  • DescriptionOne row per checkout. Test orders are excluded.Your teamReplaced: Orders placed through checkout.dbt or OSI file
  • KeyidDatabase
  • Time columnplaced_atYour team
  • Joincustomers on customer_idDatabase
  • Joinrefunds on order_iddbt or OSI file

Your agent does the work

Define metrics, rules, evals and metadata from the agent that already knows your business. Draft it through the MCP, review it, then publish it.

Add to the orders description that cancelled orders are included.

edit_draftIn the draft, nobody is served it
ok

Looks right, publish it.

publish_draftPublished version 3
Live

An admin decides whether AI clients can publish. Roll back in the console.

What it can edit

  • Metrics

    “Net revenue is paid orders, minus refunds.”

  • Glossary

    “A customer is a firm, a client is a person.”

  • Rules for every query

    “No billing data here. Say it’s unavailable, don’t estimate it.”

  • Descriptions

    “One row per checkout. Test orders are excluded.”

  • Keys and joins

    “orders joins customers on customer_id.”

  • Searchable values

    “org_name holds our customers’ names.”

  • Hidden tables

    “Hide orders_old. It stopped updating in May.”

  • Eval questions

    “Add net revenue last month to the golden set.”

Evals built inComing soon

Run your questions against the live context and any draft, and see what got better, question by question. Then keep running them, so you know your agents are still right.

  1. 01

    Pick the questions

    From your verified dashboards, or generated per team.

  2. 02

    Run any version

    About 5 answers per question, on live, a draft or a past version.

  3. 03

    Compare

    Question by question, scored against your verified dashboard.

  4. 04

    Keep running

    Weekly and after each publish, so you see accuracy slip.

EvalsEach filled dot is a matched answerFilled dot: matched answer
QuestionLiveDraftResultWhy it changed
What was net revenue last month?BetterNet revenue now has one definition
What is our average order value?BetterUses the revenue metric
What share of orders were refunded?No clear differenceWithin the run-to-run spread

The context loop

Bonnard reads how agents used your data, finds what’s wrong and asks your data team. Their answers go into the context.

  1. 01

    Observe

    The activity shows 8 people using 3 definitions.

    Bonnard activityLast 30 days
    Inconsistent definitionsnet revenue, 3 definitions, 8 people
    Question
    • sum(total)[status = paid]5 people
    • sum(total - refunds)[status = paid]2 people
    • sum(total)1 person
  2. 02

    Diagnose

    Your agent asks what the data can’t settle.

    People use three definitions of net revenue. The data can’t settle it. Which one is right?

    Paid orders, minus refunds.

  3. 03

    Improve

    The answer goes into a draft, and a person publishes it.

    edit_draftNet revenue added to the draft
    ok
    Alex MorganPublished version 4
    Live
    net_revenuePaid orders, minus refunds.
    Metric
  4. 04

    Verify

    Coming soon

    Evals check it helped.

    What was net revenue last month?
    Better
    Net revenue now has one definition

It also finds

  • Searches that found nothing
  • Struggling work
  • Errors
  • Stale or misleading data

Start scaling
accurate data today

Free for your first 3,000 calls. No seat limits.

Talk to us