Follow-up questions without re-running the query
Your Network Agent keeps the complete result for a while. “Now break that down by region” is answered from the held result, with no second query on your database.
What your Network Agent does for you
Your AI client can keep asking about a result without touching your database again. Your Network Agent holds the complete result inside your network; filters, breakdowns, pages and samples are answered from it, and only each answer leaves your network. Your database ran one query.
Analysis is a conversation. Without held results, every follow-up is a new query: slower for you, more load on production, and a fresh flood of rows for your AI client. With them:
- Hold: the client asks your agent to keep a result, optionally with a label. The rows it asked for still arrive, and the answer adds the held result’s id, size and expiry.
- Ask again: filter it, group it, sort it or run your own SQL over it; read it page by page in the original order; or take a random sample that repeats exactly when asked again.
- Totals at once: totals by group can come back in the same call that holds the result.
- Combine: up to eight results held on the same agent can be joined in one follow-up.
- Let go: results are released when they expire, when the client releases them, or when someone clears them in the Portal.
| Sytuacja | Before | With held results |
|---|---|---|
| “Now by customer.” | A second query on production. | Answered from the held result. |
| “Show me rows 500 to 600.” | Re-run with an offset. | A page of the held result. |
| “Give me a random sample of the cancelled ones.” | A new query, a different random set each time. | A repeatable sample of the held result. |
The plan it needs
| Plan | This capability | Uwagi |
|---|---|---|
| Bezpłatny | Not on this plan | Works as it always has, with standard results. |
| Personal Core, Personal Plus | Dołączony | Part of Result analysis. |
| Business Core, Business Plus, Business Max | Dołączony | Part of Result analysis. |
| Enterprise Core, Plus, Max | Dołączony | Part of Result analysis. |
Why it is on paid plans: your Network Agent does the heavy lifting next to your database, so the rows stay in your network and your AI client spends its attention on the thinking. That groundwork is what the paid plans add.
How long a result is held and how much each agent can hold grow with your plan; see Ograniczenia.
The Free plan works as it always has. Paid plans add the Analytic toolset. Free is a plan you keep: MCP, the REST API, federated queries and alerts, with the same results as before. Plan names and prices are on the strona z cenami.
How to ask
You do not call tools yourself. Ask in plain words and your AI client picks the tool. Three asks that bring this capability in:
Get this year’s West-region orders and keep them so we can dig in.
Now break that down by customer.
Which results are you holding right now? Release the old one.
For people who read tool lists: hold, hold_label, group_by oraz aggregate NA qs_run_query oraz qs_run_saved_query; qs_result_query, qs_result_page oraz qs_result_sample read a held result; qs_result_windows lists what is held and qs_result_release frees one or all. See hold on the Tools tab, oraz the follow-up query.
What comes back
Get this year’s West-region orders and keep them handy.
Got them: 200,000 orders, held on your agent as w_3f9a0c12d47be801 for the next 15 minutes. Here are the first rows; ask anything about the rest.
Break the refunds down by customer.
From the held result, no new query on your database:
| klient | zwroty | zwrócono |
|---|---|---|
| C-2281 | 61 | 18,420 |
| C-1042 | 44 | 9,760 |
| C-0057 | 12 | 2,115 |
C-2281 accounts for a third of all refunds. Want its refund reasons?
- result_id
- The held result’s id,
w_followed by 16 characters. Every follow-up names it. - expires_at
- When the agent lets it go. How long results are held grows with your plan.
- rows, bytes
- How big the held result is.
- held_refused
- When the result could not be kept: the reason and, when size was the reason, how many rows would fit. The rows are still returned.
What it does not help with
- A held result is a snapshot. It does not see changes made after the query ran; ask your AI client to run it again for fresh data.
- Results are held on one agent for a while, then released, and an agent restart or update clears them. A newer hold can also make the agent release an older one early.
- A follow-up can only read held results: one SELECT, no files, no settings, no second statement.
- Holding does not combine with a profile, a quality report or a shape. Hold the rows in their own call.
Ograniczenia
| Plan | How long a result is held | Space per agent |
|---|---|---|
| Personal Core, Personal Plus | 15 minut | 128 MB |
| Business Core, Business Plus, Business Max | 60 minutes | 512 MB |
| Enterprise Core, Plus, Max | up to 8 hours | 4,096 MB |
- The space is per agent and shared by every key in your organization that holds results there.
- The agent also respects the memory free on its own computer at that moment. If there is not enough, it refuses the hold and says how many rows would fit.
- A follow-up stops after 30 seconds; narrow it or page the result instead.
- A follow-up is shaped like any result: your token budget and cell shaping apply.
Ustawienia
| Where | Ustawienie | Co to robi |
|---|---|---|
| Dane → Agenci danych, the agent’s settings | Local analysis | Włączony turns held results on or off for that agent. Budget (MB) and Hold time (minutes) default to your plan; Clear held results releases everything held there now. |
| MCP page, create or edit a key | Held results | Plan default, NA lub Wyłączony for the AI client using that key. |
| MCP page, Context tab | Held results płyta | Lists what is held now on each agent, who holds it and how long it has left, with Release oraz Release all. |
When your AI client says no
When the server refuses, your AI client receives a code and one sentence, and usually relays it. Quoted sentences are the server’s own words; the parts in italics stand for the ids a real message names.
| Kod | What the server says | Co robić |
|---|---|---|
MCP_FEATURE_NOT_INCLUDED | “Your plan does not include result analysis; profiles, data-quality reports and follow-up questions on a held result are available on Personal Core.” | Ask for rows instead, or move up to Personal Core. |
MCP_RESULT_EXPIRED | “result w_3f9a0c12d47be801 is not held (it expired, was released, or is unknown here); call qs_result_windows for the current list, or run the query again with hold.” | Ask your AI client to run the query again. That is a new query on your database. |
MCP_RESULT_EXPIRED | “result w_3f9a0c12d47be801 is no longer held: it was released before its time ran out, most likely to make room for a newer result on this agent; run the query again with hold (qs_result_windows lists what is still held).” | Release results you no longer need, or hold smaller ones, so the agent does not have to make room. |
MCP_WINDOW_BUDGET | “the agent cannot keep a result of that size right now; release a held result or add a WHERE clause.” The agent’s own detail follows, with how many rows would fit. | Ask for fewer rows or columns, or ask your AI client to release a held result it no longer needs. |
MCP_AGENT_ANALYSIS_DISABLED | “held results are switched off on agent {agent id}; a workspace admin can turn on “Local analysis” for it on the Data Agents page, or run the query without hold.” | Ask an admin to turn Local analysis back on under Dane → Agenci danych. Plain queries keep working meanwhile. |
MCP_FEATURE_NOT_INCLUDED | “Held results are switched off for this key.” | The key’s owner edits the key on the MCP page and sets Held results do Plan default lub NA. |
MCP_WINDOW_SQL_REJECTED | “this statement cannot run over a held result; only one read-only SELECT over the held result’s tables is accepted (no file, catalogue or settings access, no second statement).” | Ask for one SELECT over the held result. |
MCP_WINDOW_QUERY_TIMEOUT | “the follow-up over the held result did not finish within 30 seconds and was stopped; narrow it (a WHERE clause, fewer columns, an aggregate) or page the result.” | Ask for a narrower follow-up, or page through the result. |
MCP_AGENT_NIE_POŁĄCZONY | The Network Agent that owns the connector is not connected right now. | Otwórz Dane → Agenci danych and start the agent on its computer. |
Przykłady
“Now by month, now by product, now only the cancelled ones.”
Three follow-ups, all answered from the result held after the first question. Your DBA sees one query in the logs.
“Which of this month’s customers did not order last month?”
Your AI client holds both months on the same agent and joins them in one follow-up.
Related
Facts source
Facts on this page: the Query Streams MCP server and Network Agent as of 19 October 2026, with the server’s own refusal sentences quoted word for word. Table and column names in the examples are made up.
Setup trouble?
- Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?

