Custom queries
Write the SQL once, put it on a schedule, choose which agents may use it.
Row-level security
Filter one shared copy per person, against their attributes, groups, or roles.
What preparing a database buys you
The source stops absorbing exploration
A legacy Oracle or SQL Server box no longer sees an agent’s bursts. One measured six-query agent workload went from 24 statements against the source to none.
Answers arrive in milliseconds
A local columnar copy answers in about 1–2 ms where the live source took tens of milliseconds, or over a second on a cloud warehouse.
The scan bill stops repeating
Snowflake and BigQuery bill for every scan. An agent’s variations read a local file instead of re-scanning gigabytes each time.
Each person sees their own rows
One shared copy, filtered at read time against who is asking — without reproducing the source’s permission model by hand.
Curation is the point, not a side effect
The cached relation is not a mirror of a table. It is a query an admin chose to expose, with a name and a description they wrote. That matters more than the speed. An agent handed 400 raw tables has to guess which ones matter and how they join; an agent handedrevenue_by_region_monthly with a sentence explaining its grain has the business definition already encoded. The same mechanism that spares the source also narrows what the agent has to reason about.
Agents are told which relations are cached and asked to prefer them over re-deriving the same figures from raw tables.
What it costs
A refresh is a full run of your SQL against the source. That makes BOW Fast a trade, not a free win: Measured against live accounts, the break-even is low — roughly 1.8 agent questions per refresh on BigQuery and 1.0 on Snowflake. Past that, the copy is cheaper than the source. Latency, unlike cost, improves unconditionally. Mean time to answer one agent question, six questions per source:
The three on-prem engines ran as containers on one machine, so their live figures carry no network latency — treat them as a floor, not as what a database across a VPN will give.
When not to use it
- The answer must be current to the second. A copy is as fresh as its last refresh, and no fresher.
- The question genuinely needs the full detail table rather than a rollup or a filtered slice.
- Nobody asks often enough to earn back the refresh. See the warning above.
Requirements
- The feature is on. BOW Fast is beta and off by default. An admin enables Custom queries under AI settings.
- The connector supports it (see below).
- The connection uses shared credentials. On a per-user connection, one materialized copy cannot represent each person’s row visibility. Row-level security is how you filter a shared copy instead.
- You have
manage_connectionon the connection. Activating an existing cached query for a specific agent is a separate, lighter permission —manageon that agent.
Supported connectors
The last two are offered but have never been run end to end against a real server. Their SQL and streaming paths are implemented and unit-tested; their cost estimation and query cancellation are not proven. Expect the safeguards to be weaker there, and test on non-critical data first.
In the product this feature is labelled Custom queries (beta) — that is the name of the setting you enable and the button you click. “BOW Fast” is the capability those custom queries provide.
Security
The copy is a DuckDB database file encrypted at rest, with a per-artifact key stored encrypted alongside the connection. That is a boundary, not just compliance: agent-generated Python cannot read an encrypted DuckDB file with pandas, and the key never enters the sandbox. Agents can only name relations that were put in their catalog, so an agent cannot reach a cached query it has not been given.Related
Authentication and Access
Why BOW Fast needs shared credentials, and what per-user auth changes.
AI Settings
Where an admin turns Custom queries on for the organization.
