What is Dash?
A self-learning data agent that grounds answers in your business context.
Every company with 30+ people should have an internal data agent. Most AI-forward companies are already building one in-house:
- OpenAI: Inside our in-house data agent
- Vercel: d0
- Uber: QueryGPT
- LinkedIn: SQLBot
- Salesforce: Horizon Agent
Clone Dash and you have the same thing, in your cloud, in an afternoon.
The system
Dash is multi-agent system with hard-enforced boundaries:
| Member | Schema access | Tools |
|---|---|---|
| Analyst | public (read-only) | SQLTools(read_only=True), introspect_schema, save_validated_query, ReasoningTools |
| Engineer | public (read), dash (read+write) | SQLTools (full), introspect_schema, update_knowledge, ReasoningTools |
| Leader | none directly | Routes the request, optional SlackTools for posting back |
These boundaries are enforced by the database engine itself. The Analyst's connection physically cannot write. The Engineer's writes physically cannot touch public. The boundary holds even if the model goes off-script.
Six layers of context
Every Dash query is grounded in six layers:
| Layer | Source |
|---|---|
| Validated queries | knowledge/queries/*.sql |
| Business rules | knowledge/business/*.json |
| Table metadata | knowledge/tables/*.json |
| Institutional knowledge | MCP (optional) |
| Learnings | Dash's LearningMachine |
| Runtime context | introspect_schema tool |
The first four are curated and stored in pgvector. Learnings are captured automatically as Dash works. Runtime context is fetched live.
How Dash works
Every question runs through the same loop:
- Retrieve. Dash pulls the matching knowledge layers and any prior learnings.
- Generate. The Analyst writes SQL grounded in what came back, then runs it read-only against
public. - Answer. Dash composes a response with the numbers and a citation to the SQL it ran.
- Learn. Errors get diagnosed and the fix is saved as a learning so the same error can't recur.
- Materialize. When a question repeats, the Leader asks the Engineer to build a view in the
dashschema. The next ask hits the view directly.
After a few weeks of real use, the same errors stop happening, the right shapes sit in the knowledge stores, and the dash schema fills with views your team uses without writing a migration.
Next
Setup takes about five minutes and starts you on a synthetic SaaS dataset (~900 customers, two years of data) so you have something concrete to ask.