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:
- 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.
- 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.
- 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.
- 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).
- 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
You must log in or # to comment.
