- OpenAI: Inside our in-house data agent
- Vercel: d0
- Uber: QueryGPT
- LinkedIn: SQLBot
- Salesforce: Horizon Agent
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 |
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 |
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.
dash schema fills with views your team uses without writing a migration.