# Databricks Genie Agents: analyze files in Unity Catalog volumes

> Genie Agents can analyze PDFs and other files in Unity Catalog volumes in Public Preview. What we would attach, and the grant to check first.

By Sushruth Aeluguri, 10 November 2026. Databricks Field Guide, TechFabric. Canonical: https://databricks.techfabric.com/notes/genie-agents-enhancements/

Part of the answer to "why are escalations rising?" can sit in PDF policies that never became SQL. We would put the current handbook on one managed volume attached to one domain Genie Agent, leave the ingestion landing volume off that agent, and keep Chat on the metric views for yesterday's sales number. Databricks' [2 November 2026 AI/BI release notes](https://docs.databricks.com/aws/en/ai-bi/release-notes/2026) moved Analyze files in Unity Catalog volumes to Public Preview. That is the moment we'd change how we invite people to a domain agent. It is not the moment we'd stand up a second retrieval stack beside Genie.

## The invite check we'd run first

The invite is the gate.

Before anyone gets CAN RUN, we'd ask three things. Is the attached volume a managed volume that holds only the current handbook? Does every invitee already hold `READ VOLUME` on it? Do draft contracts still share that volume with the published pack? The [volumes docs](https://docs.databricks.com/aws/en/genie-agents/volumes) make the middle question non-negotiable: a user without at least `READ VOLUME` on an attached volume gets an error, and attaching a volume covers all of it, since you cannot attach a subset of its files. This models our check and isn't a Databricks API.

```python
def invite_ok(volume_is_managed_handbook, invitees_hold_read_volume, drafts_on_same_volume):
    """One domain Genie Agent, before anyone gets CAN RUN."""
    if not volume_is_managed_handbook:
        return "stop, attach only a managed volume that holds the current handbook"
    if drafts_on_same_volume:
        return "stop, split drafts onto another volume before the invite"
    if not invitees_hold_read_volume:
        return "stop, grant READ VOLUME first, or shrink the group"
    return "send the invite"

assert invite_ok(False, True, False).startswith("stop, attach only")
assert invite_ok(True, True, True).startswith("stop, split drafts")
assert invite_ok(True, False, False).startswith("stop, grant READ VOLUME")
assert invite_ok(True, True, False) == "send the invite"
```

We'd expect a hurried review to miss the drafts assertion.

Take a support-escalation agent whose metric views already answer ticket age by queue. The handbook PDF that names the severity rules belongs on a managed volume next to those views. The daily drop of scanned contracts in `/Volumes/raw/inbox` does not. We'd run `invite_ok` on the handbook volume and the invitee group, and we'd leave the inbox alone even though the files are already in Unity Catalog. Mixing drafts with the published pack means the agent can cite a draft, because it processes the entire volume. The Genie Agent always uses the permissions of the user who asks the question, and the securable here is a volume, so we'd delay the invite.

```mermaid How we'd wire a domain Genie Agent to a handbook volume
flowchart TD
  A["Genie One question"] --> B["Domain Genie Agent in Agent mode"]
  B --> C["Metric views and tables"]
  B --> D["Managed volume with current handbook"]
  D --> E["Answer with page citations under the users READ VOLUME"]
  C --> E
```

## Why the landing volume stays off

A landing zone churns. Preparing and syncing files bills through `ai_parse_document`, and when files change Databricks re-parses them; answering is ordinary Genie usage ([billing FAQ](https://docs.databricks.com/aws/en/genie-agents/volumes)). The bill for a small handbook we keep current is one we accept. The bill for a zone that turns over all day is one we'd refuse.

Drive and SharePoint stay on MCP for us. A frozen copy lands in a managed volume only when Unity Catalog grants have to own it. Yesterday's sales number stays in Chat. The afternoon investigation that needs the handbook and three joins is where the volume belongs ([Genie chapter](https://databricks.techfabric.com/guide/genie/)). The [Toolkit Genie readiness checks](https://databricks.techfabric.com/guide/databricks-toolkit/) still apply to the tables beside those files, because uncommented columns leave the agent guessing on the SQL side. When we need our own chunking or multi-agent control, this preview is not the route we'd take.

> **Our position**: Enable the preview on one domain agent whose managed volume holds only the current handbook and policy set, confirm every invited user has `READ VOLUME` on that volume, and leave Chat mode on the metric views. Keep ingestion landing volumes off the agent.
