What Is a Data Agent? Chatbot vs BI vs Workflow
Learning objective: define when an agent is justified; distinguish natural-language interface from autonomous analytical action.
A department head types "why did conversion drop in June" into a chat box and expects a trustworthy, sourced answer within a minute. A fixed BI dashboard cannot answer an open-ended follow-up question; a chatbot with no data access can only guess; a scheduled workflow can only run the report it was built for. A Data Agent sits between these: it understands the request in natural language, plans which data and tools it needs, executes a bounded set of read (and sometimes write) actions, and returns an answer with evidence. That extra capability is also extra risk, so the first design decision is not "how do we build the agent" but "is an agent even justified for this request, or is a dashboard or a fixed workflow safer and sufficient."
| System | Can it answer a novel question? | Can it access governed data/tools? | Typical risk |
|---|---|---|---|
| Chatbot (no data access) | Sounds fluent, but may hallucinate numbers | No | Confidently wrong answers |
| BI dashboard | Only pre-built views/filters | Yes, but fixed and pre-approved | Cannot answer open-ended questions |
| Scheduled workflow | No, runs the same steps every time | Yes, but narrowly scoped to one job | Not flexible; still safe and auditable |
| Data Agent | Yes, plans dynamically per request | Yes, through governed, permissioned tools | Needs explicit verification, permissions, and approval controls |
import pandas as pd
# clean: a read-only query log against the governed analytics sandbox this course uses
df = pd.read_csv("DS302_Analytics_Package_Clean.csv", parse_dates=["event_time", "ingested_at"])
df.shape
df.dtypes
df[["run_id", "source_system", "batch_id", "metric", "value", "schema_version"]].head()
# Ask first: is a dynamically planned agent even needed here, or would a fixed dashboard answer this?
df["source_system"].unique()Chatbot bolted onto data
"Just connect the chatbot to the database and let it answer anything." Nobody has decided which questions genuinely need dynamic planning, which tools it may call, or what evidence a trustworthy answer requires.
Justified Data Agent
- Need for dynamic planning
- The request genuinely varies enough that a fixed dashboard or workflow cannot cover it.
- Governed access
- The agent can only reach data/tools through explicit, permissioned interfaces, never raw unrestricted access.
- Verifiable answers
- Every answer can be traced back to a specific query, dataset version, and definition.
- The scope of the question changes almost daily, and a new question cannot be assembled from an existing dashboard's filters.
- The team needs to dynamically decide which of several data sources to check, rather than always querying the same fixed table.
- The answer must cite a traceable query and dataset version, not just a single number.
- The task has branching logic that requires human approval before it runs; a scheduled workflow cannot express that kind of conditional check.
- If a fixed dashboard, report, or workflow can already answer most questions in an acceptable amount of time, an agent is not needed; adding one only adds a layer of risk without a matching benefit.
A finance team asks every week which source system has the lowest batch completion rate, but the fields, time range, and source_system list they care about change almost every time. A fixed dashboard would need a pre-built view for every combination, which is expensive to maintain; this is the kind of scenario dynamic planning is built for, but the agent still needs narrow, read-only tools, not access to the whole database.
Info
A team wants to let a chatbot answer any question about their production database by giving it a general-purpose SQL tool with no restrictions. What is most fundamentally missing from this plan?