Demo data — see every loop working at once

Most of what makes Insika worth looking at only shows up after data has accumulated: a funnel with a frozen baseline needs weeks of folded outcomes, a refinement proposal needs a run that actually found something, an approval needs a tool call someone is waiting on. A fresh instance shows none of that — every one of those pages renders its empty state, which makes it hard to tell “nothing happened yet” from “this doesn’t work.”

insika demo:seed closes that gap in one shot: it provisions a single fictional agent (demo-store, an e-commerce support bot) and writes enough realistic-looking data to see every loop at once.

What it creates

Page What you’ll see
Funnel/studio/funnel?agent=demo-store 40 days of folded outcomes (greeted → browsing → cart_started → checkout_started → purchased) and a frozen baseline
Follow-ups/studio/followups?agent=demo-store one record in each state: pending, fired (one per arm, so the A/B card has something to compare), cancelled, blocked
Refinement/studio/refinement?agent=demo-store four runs across the lifecycle: awaiting_approval, applied, rejected (gate failed), no_findings
Approvals/studio/approvals two pending tool calls waiting on a human, one already resolved
Facts/studio/facts three distillation proposals (pending, approved — with the resulting memory fact, rejected)
Evals/studio/evals?agent=demo-store six golden cases and a baseline run with a mix of passes and one failure

Every record is written through the same store APIs a real turn would use (OutcomeStore#create + the funnel fold, FollowupStore#create + its transitions, and so on) — there is no bulk-insert shortcut, and no bundled .rb script outside lib/ (nothing here needs a checkout; it ships in the gem).

Running it

From the CLI, against whichever store the rest of your commands already use (Running locallyINSIKA_DB unset means an ephemeral, in-memory store, which is a fine place to try this):

insika demo:seed

A second run is a safe no-op once demo-store exists; pass --force to seed another batch on top (the funnel baseline recomputes cleanly, but follow-ups, refinement runs, approvals, proposals and goldens accumulate rather than reset — none of those stores expose a per-agent bulk-delete that a shared “platform” tenant could call without risking another agent’s data).

From the Studio, open Settings → Demo data and click Seed demo data. It dispatches the exact same command the CLI runs — the Studio never writes a store directly, here or anywhere else.

This writes into whatever store the running instance already has open. There’s no separate demo database and no isolation: point INSIKA_DB at a scratch file (or leave it unset, for an ephemeral store) before seeding — never at a deployment holding real tenant data.

Then look around

Once seeded, the CLI prints the same six paths listed above. If Studio isn’t running yet, boot it the way you already do — see Running locally for a checkout, or Embedding for Insika.agent { … }.serve — pointed at the same INSIKA_DB. Studio reads every agent’s profile from the same config store, so it will show demo-store next to whatever agent you’re actually building, no matter which one the running process itself defines.

See also


Back to top

Insika is MIT-licensed. Reading this as an agent? llms.txt indexes these docs as raw markdown.

This site uses Just the Docs, a documentation theme for Jekyll.