Skip to content

Sources & grounding ​

Docs can ground a document in your own material. Click the Source icon in the chat header to open your personal source library, upload files, and tick which ones the current session should use.

Upload once, use everywhere ​

A file you add is saved to your account, not just this artifact. Tick which sources are selected for the current session; the same library is available from every artifact you work on.

The library has a few practical ceilings:

  • 25 MB per file (video is the exception — up to 500 MB).
  • 200 files in your library.
  • A subset of a session's sources is shown to the model up-front; the rest are fetched on demand, so a large library doesn't crowd out the writing.

Two lanes: text vs. visual ​

Sources are handled by what the model can actually consume:

Text lane (.txt, .csv, .md, .json, .docx, .xlsx, .pptx) — extracted to plain UTF-8 text and cached in object storage. The agent pulls content on demand with read_source (line-numbered, with offset/limit windows) and searches across the whole library at once with search_sources. Long files are paged through, not dumped into context.

Visual lane (images and PDFs — including scanned PDFs) — shown to the agent directly as visual content, the same way an AI reads a photo. A PDF page is rendered to an image and read with the model's own vision, which is dramatically better than a bundled OCR engine — especially for Vietnamese diacritics. This is where Docs beats text-only tools: it can work from a scanned contract or a handwritten form with no separate OCR step.

"Summarize the attached PDF into 5 bullet points"

"Pull the Q3 numbers from the spreadsheet I added and chart them"

Reading long PDFs ​

A PDF is shown to the agent directly when it fits in the request's page budget — 300 pages shared across every PDF selected in that turn. A PDF that would exceed it (or whose length can't be determined) is instead marked "too long to show up-front" in the source manifest, and the agent pages through it with read_pdf_pages — pulling a window of up to 100 pages at a time, text and scanned pages alike. (600 pages is the underlying model API's hard ceiling for a whole request, not the product's own cutoff.)

Connectors: grounding in live data ​

Uploading a file is not the only way to ground a document. The plug icon in the chat header opens Connect Service, which lets the agent read from a real service while it writes — so a report can be built from this month's actual numbers rather than numbers you copied into a spreadsheet.

  • Quick-picks — Stripe, OpenAI, Resend, Twilio, AWS S3, MongoDB, Neon, Notion, Figma and SSH Server each have a guided form that asks for exactly the credential fields that service needs.
  • Anything else — name the service and describe it; the platform identifies the credential shape and walks you through connecting it.
  • Remote MCP servers — connect a Model Context Protocol server to expose its own tools and data to the agent, the same standard used by Nexrall Code.

Connectors are stored per account, not per artifact — connect a service once and every Docs session can use it. Credentials are held as secrets on the Nexrall side, never written into the document.

The agent reaches them through three read-only tools: list_connected_services (what's connected), call_connector (call one), and mcp_list_tools / mcp_call for MCP servers. Each call is a small fixed charge, shown as its own labelled line in your transaction history — so connector usage is visible separately from model usage.

Sub-agents for heavy research ​

When a session has a lot of source material, the agent can delegate a read-only investigation to a sub-agent that works in its own context window and reports back a summary. It can read and search the sources (and the web) but cannot see, write, or edit the document, and cannot dispatch further sub-agents. The agent can run several in parallel, keeping its own context clean for the actual writing.

"Pull every deadline and penalty clause out of these three contracts and list them with the source filename."

Sources are untrusted data ​

Everything read from a source is treated as untrusted reference data, never as instructions. Text embedded in a document won't be followed as if you had typed it — the same prompt-injection defense the rest of Nexrall uses. See Security & trust.

Video and unsupported files ​

Video is a link-only lane: the agent can embed it with a plain <video> tag pointing at its URL, but there's no text or vision path for video content. Old binary .doc files (and other unsupported binaries) can't be read — the agent will ask you to re-save as .docx or PDF.

Next steps ​

Built by Maxrall, Inc.