FabricFabric
Features

Built-in Data Tools

DuckDB, Python and Node ship with Fabric Agents, so agents can query data files and run data scripts with nothing to install.

Fabric Agents ships the tools an agent needs to work with data files. Nothing to install: they come with the app on macOS, Windows and Linux, and agents find them on their own.

ToolWhat the agent uses it for
DuckDB (2.0 CLI)Answering questions about data files with SQL: counting, grouping, filtering and totalling JSON, JSONL, CSV and Parquet.
Python (3.12, through uv)transform_data steps that reshape data for tables and spreadsheets, and quick script_sandbox checks.
NodeThe same steps written in JavaScript, run by the app itself.

Asking questions about a data file

Point the agent at a file and ask:

What were total sales per region in sales.csv last quarter?

The agent runs duckdb against the file directly, for example duckdb -c "SELECT region, sum(amount) FROM 'sales.csv' GROUP BY region", instead of writing a one-off script. It's faster, and the answer comes from a real query rather than the model reading rows.

DuckDB runs in its agent mode, which is built for this:

  • Results sized for the model. Large results show their first and last rows, say exactly how many rows were left out, and carry a result hash, so the agent never mistakes a partial result for the whole thing.
  • Readable errors. Errors come back as JSON that says what went wrong, so the agent can fix the query itself.
  • Runaway queries are stopped instead of filling the conversation.

Two things to know:

  • Time zones. Time-zone-aware timestamps are shown in your computer's local time. Ask for UTC if that's what you need; the agent runs SET TimeZone = 'UTC' first.
  • Excel files need a DuckDB extension that downloads on first use, so they work only when the machine is online. JSON, CSV and Parquet work offline.

Python and Node data steps

When a reply needs a sortable table or a downloadable spreadsheet built from a large file, the agent uses transform_data: it writes a short script that reads your files and produces structured output for a data table.

  • Python runs through the bundled uv. The first Python step downloads Python 3.12 once; later steps start immediately. Fabric only ever uses its own managed Python for this, never a project's .venv, so a script can't run code from the project you're working in.
  • Node steps run on the Fabric app itself, so they work even when Node isn't installed. After an update they use the new version automatically.
  • If the Python download isn't possible (offline, or GitHub blocked), steps fall back to a Python already on your system when there is one.

script_sandbox runs quick checks with no network access and no writes outside the session. It needs sandbox-exec on macOS or unprivileged unshare on Linux; on Linux distributions that don't allow unprivileged namespaces it isn't available.

Token optimization

DuckDB's agent mode already sizes its output, so DuckDB commands are never compressed by rtk, even when rtk is on.

On this page