Skip to main content
The dbt™ impact assessor is a DinoAI agent that answers the question every reviewer asks before approving a model change: what breaks downstream? Given a model name, it walks the dependency graph, reads the SQL of every directly downstream model, checks which exposures (dashboards, reverse ETL) consume the affected columns, and posts a structured impact report to Slack with the highest-blast-radius consumers at the top.
PrerequisitesEstimated time: 15 minutes.

Steps

1

Create the agent

In the Agent app, open Agents, select New agent, and choose Start from scratch. Fill in the builder fields below, leave Model on Auto. See Build an agent in the UI for a tour of the builder.Name: impact-assessorRole:
Goal:
Backstory:
Allowed tools (everything else is refused, see the Tools Reference):
  • get_lineage, get_exposures
  • read_file, search_files_and_directories, ripgrep_search
  • run_sql_query
  • post_slack_message
Output: set the Slack channel where reviewers should see the reports (for example #analytics-eng).
The agent is entirely read-only: it has no write or terminal tools, so it can never change the repo. get_lineage and get_exposures (dbt Discovery tools) give it the real dependency graph from your Bolt runs’ artifacts; reading the downstream SQL on top of that catches explicit column selections that graph-level lineage alone would miss.
2

Deploy the agent

Select Deploy and choose where the agent lives: Just here saves it to the workspace and makes it live immediately, Open a pull request commits it to your repo as .dinoai/agents/impact-assessor.yml so it is governed as code. Both appear in the Bolt agent picker. See Creating Agents in the App.
3

Run it

The trigger message names the model, so the same agent serves two workflows:Ad hoc, from Chat: hover the agent card, select Chat, and ask:
On every PR, from Bolt: add a Run Paradime DinoAI Agent command to a Bolt schedule triggered on pull request merge, with a task like:
The command runs natively, with no API keys to configure. See Run an agent with Bolt for the full walkthrough.
The report lands in your Slack channel with exposures first (each dashboard or sync consuming the model), then every downstream model with the exact columns it selects and a risk flag for removals and type changes. A model with no downstream consumers gets a short all-clear instead. If the agent reports no lineage data, the workspace has no Bolt runs with dbt™ artifacts yet; run your production schedule once first.

How it works

Graph-level lineage tells you that fct_revenue depends on fct_orders; it does not tell you whether it selects the column you are about to drop. The agent layers the two: get_lineage and get_exposures enumerate the consumers from your Bolt artifacts, then it reads each direct consumer’s SQL to determine which columns are explicitly referenced. Exposures always lead the report because a broken dashboard is noticed by stakeholders before a broken model is noticed by dbt™. Pair it with the end-to-end PR reviewer: the reviewer’s IMPACT section gives a verdict-level summary, while this agent produces the full standalone report when a change needs deeper scrutiny.

Next steps

End-to-end PR reviewer

Impact as one dimension of a full PR verdict.

dbt™ documentation backfiller

Keep the YAML docs accurate on the same PRs.

dbt Discovery tools

The lineage and exposure tools this agent uses.

Programmable Agents reference

The agent schema, tools, and API.