> For the complete documentation index, see [llms.txt](https://docs.tonic.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tonic.ai/fabricate/about-fabricate/data-agent-about.md).

# About the Fabricate Data Agent

## What is the Data Agent? <a href="#data-agent-what-is" id="data-agent-what-is"></a>

The Data Agent is an AI-driven entity that performs data generation, analysis, and configuration actions within Tonic Fabricate. It is at the heart of the Fabricate application.

The following diagram provides an overview of the Data Agent input, output, and associated resources.

<figure><img src="/files/X4wNcbRtUOrdePPdGya2" alt=""><figcaption><p>Diagram of the Data Agent flow, including input, output, and associated resources</p></figcaption></figure>

## How do you interact with the Data Agent? <a href="#data-agent-interaction" id="data-agent-interaction"></a>

You [use a chat interface](/fabricate/data-agent-chat/data-agent-db-configure.md) to provide instructions to the Data Agent. A given chat is scoped to a single [project](/fabricate/project-and-database-management/project-manager.md) within an [account](/fabricate/fabricate-accounts-and-users/workspaces-about.md).

You provide an initial prompt, along with any other clarifying details, including attached files with information such as database schemas and sample data. For example, `Use the attached schema to create a database of transaction records that are linked to customer and product records`.

The Data Agent, working with an LLM, uses your input to create scripts that it then uses to perform the prompted task, optionally asking for clarification and confirmation as it works.

Based on the results, you can instruct the Data Agent to make adjustments.

The Data Agent queues your chat messages so that you can continue to enter new messages while the Data Agent processes previous messages.

You can [use multiple chats within a project](/fabricate/data-agent-chat/data-agent-db-chat-memory.md). Each chat can refer to any database or data connection in the project.

## What does the Data Agent produce? <a href="#data-agent-output" id="data-agent-output"></a>

The Data Agent produces synthetic data.

In many cases, the output is a set of structured data that might be generated to:

* A [local database](/fabricate/project-and-database-management/data-agent-db-create-manage/database-add-local.md), where the data is stored in Fabricate. You can then [export it in a variety of formats or to an external database](/fabricate/database-data/generating-and-using-database-data/data-agent-db-export-data.md).
* An [external database](/fabricate/project-and-database-management/data-agent-db-create-manage/database-add-connection.md) that you connect directly to from Fabricate.

The Data Agent can also [use synthetic data to populate unstructured files](/fabricate/database-data/generating-and-using-database-data/data-agent-db-unstructured-files.md). For example, you can generate a set of credit application forms or medical discharge notes that are populated with synthetic values.

## What resources does the Data Agent use to perform its tasks? <a href="#data-agent-resources" id="data-agent-resources"></a>

The Data Agent always has access to a set of built-in skills that it uses to perform a wide variety of analysis and generation tasks within Fabricate.

Within a project, the Agent can create and use plans, profiles, workflows, and custom skills.

* A [plan](/fabricate/data-agent-tools/data-agent-modes-and-models/data-agent-plan-mode.md) provides a set of steps to complete a more complex task. For example, when you ask the Data Agent to create a database with a very large schema, or to generate data that includes complex relationships between tables or a long list of specifications for the data values.
* A [profile](/fabricate/data-agent-tools/data-agent-profile.md) is a thorough analysis of the data and its structure. Each table has its own profile. The Data Agent consults the profile whenever it needs to understand the content or structure of a table. It can also use a profile as the basis to generate new data.
* A [workflow](/fabricate/data-agent-tools/workflows.md) is a higher-level repeatable task, such as adding more data or validating new data. Instead of repeating the same instructions, you prompt the Agent to run the workflow.
* A [custom skill](/fabricate/data-agent-tools/creating-and-using-custom-skills.md) describes a specific action to perform or a rule to follow in a specific context. For example, whenever you generate data to a REST API, you want the Data Agent to use a specific type of credential and a specific endpoint.

## What affects the Data Agent behavior and performance? <a href="#data-agent-behavior-performance" id="data-agent-behavior-performance"></a>

At the highest level, the Data Agent behavior is based on the behavior configuration.

The Data Agent chat also provides options to adjust the behavior as you interact with the Data Agent within a project.

### Data Agent instructions <a href="#data-agent-instructions" id="data-agent-instructions"></a>

The account, workspace, and user settings include a setting for [Agent instructions](/fabricate/data-agent-chat/data-agent-behavior-config.md#data-agent-instructions), which provide a set of context rules for the Agent to remember across sessions and databases.

For each database, the Data Agent also creates a [set of rules that it used to generate the data](/fabricate/data-agent-chat/viewing-and-updating-database-agent-instructions.md). You can adjust these rules to change how the Agent generates future data.

### Data Agent behavior configuration

The settings for individual users include configuration for the Data Agent behavior:

* [Verbosity](/fabricate/data-agent-chat/data-agent-behavior-config.md#data-agent-verbosity) determines how much explanation the Data Agent provides as it completes its work.
* [Autonomy](/fabricate/data-agent-chat/data-agent-behavior-config.md#data-agent-autonomy) determines how frequently the Data Agent asks you for confirmation before it completes tasks.

### LLM model

The Data Agent behavior and performance is partially based on the LLM model that it uses.

The available models are based on the LLM provider.

From the Data Agent chat, you can [select the specific model to use](/fabricate/data-agent-tools/data-agent-modes-and-models/selecting-the-model-to-use.md).

### Data Agent mode

The Data Agent mode also affects how the Data Agent behaves.

Agent mode is the default mode.

[Plan mode](/fabricate/data-agent-tools/data-agent-modes-and-models/data-agent-plan-mode.md) means that the Data Agent creates a plan for each action.

[Autonomous mode](/fabricate/data-agent-tools/data-agent-modes-and-models/using-autonomous-mode.md) means that the Data Agent performs the action without asking you for any confirmation at all.

### Data Agent feedback

The Data Agent also adjusts its behavior based on the [feedback that you provide](/fabricate/data-agent-chat/data-agent-db-chat-memory.md#chat-response-feedback).

For each response, you can indicate whether it was helpful and, for non-helpful responses, provide additional feedback as to why it was not helpful.

The Data Agent uses the feedback to improve future responses.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tonic.ai/fabricate/about-fabricate/data-agent-about.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
