Data Agents
A Data Agent is a Tower app that runs a reasoning loop powered by a language model. Based on a user prompt and the results of previous tool calls, the agent decides which tools to invoke next. The "Data" in Data Agent refers to the agent's use of business data - stored in databases like Iceberg - to inform its decisions.
Overview
Unlike simple LLM calls that generate text, Data Agents can take actions. They iterate in a reasoning loop:
- Receive a user prompt
- Call an LLM to reason about what to do next
- Execute a tool based on the LLM's decision
- Feed the tool's output back to the LLM
- Repeat until the agent determines it has the final answer
This architecture allows agents to dynamically orchestrate multiple Tower apps, query databases, and make decisions based on real business data.
Data Agents vs Simple LLM Calls
| Aspect | Simple LLM Call | Data Agent |
|---|---|---|
| Output | Text generation | Actions + text |
| Data access | None or static context | Dynamic database queries |
| Tool use | None | Multiple tools per request |
| Iteration | Single call | Reasoning loop |
How It Works
A Data Agent uses a language model specialized in tool calling (such as xLAM-2 or GPT-5). The LLM reasons about each step and decides which tool to invoke. Common tool types include:
- Data retrieval — Query databases or APIs for information
- Data transformation — Process, filter, or aggregate results
- External actions — Trigger Tower apps or other services
By grounding decisions in real business data, Data Agents can provide accurate, context-aware responses rather than relying solely on the LLM's training data.
Learning More
For a hands-on example of building a Data Agent with Tower, see the Deploying Agentic Flows example, which demonstrates an agent that answers stock price questions using cached Iceberg data.