Ask over collected records
ask_collected_recordsAnswer from collected records, with quotes tied to exact lines.
Extracts and synthesises across material too large to fit in context, and returns every claim traceable to a line range in the original. Use instead of summarising from memory whenever the evidence has to hold up — quotes come back with their locations, so they can be checked against the source.
Not for: exact wording or counting occurrences — grep_collected_records does that without an LLM call; or material small enough to read directly — use read_collected_records.
In quotes and both modes the output is quotes: [{ id: '{<uuid>}', index }] — one block per record, with index formatted like the index field of advanced_web_search / advanced_web_fetch results. Empty array when no quotable evidence is found. If status: "running" is returned, poll get_task_results({ taskIds }).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | `answer` for narrative prose, `quotes` for a per-record line-range index, `both` for both. | |
| query | Yes | The question to answer over the selected records. | |
| dataIds | Yes | One or more Data records to answer the question over. Each item is `{ id, version?, from?, to? }` — pass `{from, to}` to scope the citation to a specific line range; `version` is optional and defaults to latest. URLs are not accepted; collect them via `advanced_web_search` or `advanced_web_fetch` first. | |
| maxWaitSec | No | How long to wait before returning `status: "running"` with a `taskId` to poll via `get_task_results`. Defaults to 50 seconds, which is also the server's ceiling — a larger value is clamped down to it, not honoured. |