Skip to main content

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:

  1. Receive a user prompt
  2. Call an LLM to reason about what to do next
  3. Execute a tool based on the LLM's decision
  4. Feed the tool's output back to the LLM
  5. 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

AspectSimple LLM CallData Agent
OutputText generationActions + text
Data accessNone or static contextDynamic database queries
Tool useNoneMultiple tools per request
IterationSingle callReasoning 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.