Original Reddit post

Most “chat with your data” tools give you a confident answer and no way to tell whether it’s right. I’ve been building the opposite: an AI Analyst where the entire working is on screen and every claim is traceable to the query that produced it. Asked it a real question against an HR dataset: “Is Engineering’s heavy hiring actually translating into headcount growth, or is it mostly backfilling exits?” What it does, in order:

  1. States its approach before touching data. It reads the schema, plans the steps, and says why — including telling me the governed semantic model lacked a hires metric, so it fell back to the raw monthly table. No silent guessing about which source it used.
  2. Runs each step as real SQL you can read. Every step shows the query, the row count, and a “where these numbers came from” breakdown. Nothing is a black box — if you don’t trust a number, the SQL that produced it is right there.
  3. Self-checks every result — and flags its own problems. This is the part I care about most. On step 2 it didn’t just pass its own work; it flagged a genuine inconsistency : Engineering’s summed net adds (+17) didn’t reconcile with the headcount delta (+13, 122→135), a 4-person gap it surfaced on its own and carried into the write-up as a caveat. An analyst that can say “this doesn’t add up” is worth ten that can’t.
  4. Writes findings with citations. Every claim in the write-up cites the step it came from — “headcount climbed from 122 to a 140 peak (step 1, step 2)”. The verdict for the curious: ~55% of Engineering’s hires were net growth, not backfill; the one bad month was a 3.70% attrition spike; and Support is quietly shrinking (backfill ratio 1.42 — losing more than it hires).
  5. Closes the loop. Every analysis has Mark verified / Flag as wrong buttons, suggested follow-up questions generated from the actual results, scheduling for recurring runs, CSV export, and PDF export. The stack, honestly: Runs entirely on your own infra: one Docker command + your own Supabase project BYOK — any model provider. This demo ran on Kimi K3 via OpenRouter; it doesn’t need a frontier model because the structure (plan → SQL → check → cite) does the heavy lifting The analyst is one piece of a larger self-hosted platform (agents, multi-agent swarms, RAG, BI dashboards, budgets, full tracing) License: Elastic License 2.0 — source-available, not OSI open source. You can read every line, self-host it, and modify it; you can’t resell it as a hosted service. Saying that up front because this sub cares about the distinction, and it matters. Repo: https://github.com/AgentSwarms-fyi/agentswarms Happy to answer anything about how the self-check pass works or why I think “show the SQL or it didn’t happen” is the only sane bar for LLM analytics. submitted by /u/Outside-Risk-8912

Originally posted by u/Outside-Risk-8912 on r/ArtificialInteligence