Enterprise document AI
Product · live platformRootnia
Turn unstructured documents into structured, queryable, auditable data — with governed agents and visual workflows doing the work.
In plain terms: Rootnia reads your documents, extracts the data in them, answers questions over that data in natural language, and runs multi-step automations — with a human in the loop for anything that matters, and an audit trail for everything.
Rootnia is the enterprise, document-automation strand of the ROOT ecosystem. It is built on the same verifiable discipline as ROOTFRAME — the model perceives, a deterministic layer decides and authorizes, and results are checked by an independent verifier jury before they are trusted — applied here to business documents, data and workflows rather than to security.
This page is written from a read-only audit of the platform’s code. It separates what is built and tested from what is experimental or still planned, and attributes every count to what the audit found. It is a product overview, not marketing.

How to read the maturity tags
Rootnia is a working platform with a broad live surface and some parts still experimental or planned. Each capability below carries its own maturity, using one convention throughout.
- In code and pinned by tests.
- In code, without a clear test.
- Prototype, inert, or behind a non-default flag.
- Scaffolded or designed; not wired end-to-end.
What it does
What Rootnia is for — in plain terms
Four things, and the honest boundary around them.
For your documents
Upload PDFs, images and scans; Rootnia classifies them, extracts fields, tables and line-items against a schema, validates the result, and links each extracted value back to where it came from in the page — so a number is traceable, not just asserted.
Ask in natural language
Extracted data lands in tables you can query by chatting: a natural-language question becomes read-only SQL (shown to you), answered over your data, with a bank of verified example queries improving reliability. If there are no rows, it says so rather than inventing an answer.
Automate with governed agents
A visual workflow builder composes multi-step automations as a DAG (with retries, parallel branches and approval gates); specialised agents use tools under a policy, and a governed multi-agent swarm coordinates larger jobs under the verifier jury and an execution budget.
What it is not
Not an unattended black box: sensitive actions require human approval and role-based permissions. Not a claim of magic — answers are grounded in your documents and data, every extracted or generated value is checked by an independent verifier jury, and anything not yet built is marked Planned, not implied.
How it works
From a document to an answer
The pipeline turns an unstructured document into validated, anchored data you can query — and act on.
The point is traceability: a queried number can be followed back to the validated field and the place in the document it came from. Grounded retrieval and read-only NL→SQL both answer over your data, and both show their work — the cited sources, or the SQL that ran.
1 · Ingest
Documents (PDF, image, scan) are ingested and normalised.
2 · Extract
OCR + schema-guided extraction turns pages into typed fields, tables and items.
3 · Validate + anchor
Extracted values are validated (types, ranges, rules) and anchored to their position in the source for provenance.
4 · Persist
Structured results are persisted and indexed — into tables for SQL and into a vector index for retrieval.
5 · Ask
A hybrid chatbot answers over the data: grounded RAG, or read-only NL→SQL with the SQL shown.
6 · Act + export
Workflows automate downstream steps; results export to Word, PDF, Excel or PPTX, with BI visualisations.
Governance
Governed agents, human in the loop
An agent can propose any action; a deterministic layer decides whether it runs, a human approves what is sensitive, and everything is recorded.
The agent can propose anything; it decides nothing. A deterministic gate authorizes against role and tenant, a human approves what is sensitive, and the audit records every decision. Reasoning proposes; authorization and grounding are done outside the model — the same discipline as the rest of the ecosystem.
Capabilities
What is built — with honest maturity
Grouped by area, each capability carries its own status. Click any item to expand a plain-language explanation — what it is, why it matters and how Rootnia does it. Experimental and planned items are marked as such, not implied to be live.
Documents & retrieval
Multimodal document extraction
OCR + schema-guided extraction as a step-by-step assistant.
implemented
Multimodal document extraction
OCR + schema-guided extraction as a step-by-step assistant.
Most business information lives in PDFs, scans and images a program cannot read directly. Extraction turns those into structured fields: it runs OCR where needed, then uses a schema to pull the specific values you care about — invoice total, parties, dates — and validates them against rules. It is guided step by step so a person stays in control when a document is ambiguous.
Document Intelligence workspace
A session-scoped workspace that runs several modes over your documents — ask, reason, analyze, classify, extract, compare, risk assessment and anonymise-preview — each scoped to a tenant.
implemented
Document Intelligence workspace
A session-scoped workspace that runs several modes over your documents — ask, reason, analyze, classify, extract, compare, risk assessment and anonymise-preview — each scoped to a tenant.
Instead of a single "chat with your PDF" box, each document gets a session where you switch task: ask a question, reason over the content, analyze or classify it, extract fields, compare two versions, assess risk, or preview an anonymised copy. Every session is scoped to one tenant, so one customer’s documents never bleed into another’s.
Document classification
A cascade classifier (regex → retrieval → a small transformer → an LLM arbiter) that labels documents into 25 canonical types. It is a separate feature, not wired into entity extraction.
implemented
Document classification
A cascade classifier (regex → retrieval → a small transformer → an LLM arbiter) that labels documents into 25 canonical types. It is a separate feature, not wired into entity extraction.
Before you extract, you often need to know what a document IS — an invoice, a contract, an ID. A cascade runs cheap, certain methods first (patterns, then retrieval, then a small model) and only escalates to an LLM arbiter when needed, which is faster and more auditable than asking a big model every time. Honest scope: today it is a standalone feature, not yet wired into the extraction step.
Programmable extraction jobs + connectors
Extraction also runs as schedulable, queueable jobs over connected sources (S3, MinIO, SharePoint, Azure Blob, Google Drive). Without credentials a source fails honestly (REQUIRES_CONNECTION) rather than faking a run.
implemented
Programmable extraction jobs + connectors
Extraction also runs as schedulable, queueable jobs over connected sources (S3, MinIO, SharePoint, Azure Blob, Google Drive). Without credentials a source fails honestly (REQUIRES_CONNECTION) rather than faking a run.
Real document work is not one upload at a time — it is thousands of files arriving in a bucket or a SharePoint. Extraction can run as a scheduled, queued job over connected sources, reusing the workflow engine. Crucially, a source with no credentials reports REQUIRES_CONNECTION instead of pretending to have run, so you never get fabricated results.
Enterprise multi-tenant RAG
Hybrid dense + lexical retrieval with reranking over a vector store.
implemented
Enterprise multi-tenant RAG
Hybrid dense + lexical retrieval with reranking over a vector store.
RAG lets the assistant answer from YOUR documents rather than its training data, which cuts hallucination and stale knowledge. "Hybrid" means it combines semantic (vector) search, which finds related meaning, with keyword search, which catches exact terms; a reranker then orders the best passages. "Multi-tenant" means each customer’s knowledge base stays isolated from every other.
Visual provenance anchors
Each value links to its place in the document. Anchors are user-provided (drag-and-drop), not auto-derived from OCR.
implemented
Visual provenance anchors
Each value links to its place in the document. Anchors are user-provided (drag-and-drop), not auto-derived from OCR.
A number is only trustworthy if you can see where it came from. An anchor links each extracted value to its exact place on the page, so a reviewer can click a figure and jump to the source. Honest scope: the anchor is set by the user (drag-and-drop), not auto-derived from OCR coordinates — we do not over-claim automatic grounding.
Document lineage / traceability
Each ingestion records a provenance envelope and builds a queryable document-lineage graph. (Distinct from observed data lineage, which is still planned.)
implemented
Document lineage / traceability
Each ingestion records a provenance envelope and builds a queryable document-lineage graph. (Distinct from observed data lineage, which is still planned.)
Lineage answers "how did this record come to exist?". Every ingestion is recorded with a provenance envelope, and the system builds a graph you can query to trace a value back through its transformations. This is distinct from observed data lineage (OpenLineage-style, across pipelines), which is still planned.
Chat, query & BI
Verifier jury (grounding & verification)
A deterministic verification layer — the "verifier jury" — that checks every extracted or generated value against its source and returns a per-value verdict: Supported / Invented / Review / Unverified. There is no LLM in the verification path. It is the anti-hallucination backbone behind extraction and the document agents, and the most heavily tested part of the platform.
verified
Verifier jury (grounding & verification)
A deterministic verification layer — the "verifier jury" — that checks every extracted or generated value against its source and returns a per-value verdict: Supported / Invented / Review / Unverified. There is no LLM in the verification path. It is the anti-hallucination backbone behind extraction and the document agents, and the most heavily tested part of the platform.
An LLM can state something false with confidence, so the verifier jury checks it. For every extracted or generated value it compares the claim against the source and returns a verdict — Supported, Invented, Review or Unverified — using deterministic rules with NO model in the verification path, so the checker cannot hallucinate the way the generator can. It is the anti-hallucination backbone and the most heavily tested part of the platform.
Hybrid chatbot + tool router
A router over ~10 tools, with human approval and role-based access.
verified
Hybrid chatbot + tool router
A router over ~10 tools, with human approval and role-based access.
A useful assistant does more than talk: it decides which tool to call — search the docs, run a query, start a workflow — and with what arguments. The router picks the right tool, sensitive actions wait for human approval, and every call respects the user’s role. "Hybrid" means it mixes grounded retrieval with tool actions in one conversation.
Read-only NL→SQL
Schema-aware, few-shot, with a verified question bank; the SQL is shown and limited to SELECT.
verified
Read-only NL→SQL
Schema-aware, few-shot, with a verified question bank; the SQL is shown and limited to SELECT.
This turns a plain question — "revenue by month last year" — into a database query. To make it reliable it is given the real schema, guided by a bank of verified example question→SQL pairs, and restricted to read-only SELECT. The generated SQL is shown to you so the answer is auditable, and if the query returns no rows it says so instead of inventing numbers.
Automatic BI visualisation
Results rendered as charts.
implemented
Automatic BI visualisation
Results rendered as charts.
When a query returns a table, the system picks a sensible chart — bar, line, pie — automatically, so the answer is readable at a glance rather than a wall of rows. It is a presentation layer over the same verified query result.
Office / PDF export
Word, PDF, Excel and PPTX output.
implemented
Office / PDF export
Word, PDF, Excel and PPTX output.
The outputs — a report, an extracted dataset, a summary — export to the formats people actually work in: Word, PDF, Excel and PowerPoint, so results leave the platform in a usable, shareable shape.
Voice in / out (STT + TTS)
Speech-to-text and document-to-audio, for voice interaction over the chat.
implemented
Voice in / out (STT + TTS)
Speech-to-text and document-to-audio, for voice interaction over the chat.
For hands-free or accessibility use, speech-to-text transcribes what you say into the chat and a document-to-audio path reads a document back. It is an input/output channel over the same answer engine, not a separate assistant.
Agents & workflows
Commercial agents
A set of specialised agents with a stable output contract and verifier-jury grounding. The audit counts 28 (the larger "93" is the front-end node palette, not agents).
implemented
Commercial agents
A set of specialised agents with a stable output contract and verifier-jury grounding. The audit counts 28 (the larger "93" is the front-end node palette, not agents).
An "agent" here is not any call to an LLM: it is a component with a defined job, a stable output contract and verifier-jury grounding so its answers are checked. The audit counts 28 real agents; the larger "93" seen elsewhere is the palette of workflow NODES in the builder — a different thing — stated plainly so the capability is not inflated.
Workflow engine (DAG)
Real DAG execution with loop, retry, parallel branches and approval gates.
verified
Workflow engine (DAG)
Real DAG execution with loop, retry, parallel branches and approval gates.
A workflow is modelled as a directed acyclic graph: nodes are tasks, edges are dependencies, and because there are no cycles the run has a clear order and is guaranteed to terminate. The engine runs independent branches in parallel, retries failed nodes, and can pause at an approval gate for a human — real orchestration, not a linear script.
Governed multi-agent swarm
Coordinated jobs under the verifier jury, an execution budget and approvals.
verified
Governed multi-agent swarm
Coordinated jobs under the verifier jury, an execution budget and approvals.
For larger jobs several agents cooperate, but without governance that invites runaway behaviour. A coordinator assigns work under an execution budget (so it cannot loop forever), routes outputs through the verifier jury, and holds sensitive steps for approval — collaboration with brakes.
Agent & workflow marketplace
Curated vertical packs (accounting, support, legal/compliance, research, data engineering, modernisation) install a bundle of agents, workflows and connections in one step — a template installer, no billing or third parties.
implemented
Agent & workflow marketplace
Curated vertical packs (accounting, support, legal/compliance, research, data engineering, modernisation) install a bundle of agents, workflows and connections in one step — a template installer, no billing or third parties.
Standing up a vertical — say accounting or legal — from scratch is slow. A pack installs a curated bundle (the relevant agents, workflows and connections) in one step. It is a template installer only: no billing and no third-party services are activated by installing a pack.
Approvals inbox (human-in-the-loop)
A unified queue of executions awaiting human approval across workflows, agent runs, agent actions and chatbot tool calls, with separation of duties (proposer ≠ approver).
implemented
Approvals inbox (human-in-the-loop)
A unified queue of executions awaiting human approval across workflows, agent runs, agent actions and chatbot tool calls, with separation of duties (proposer ≠ approver).
When agents can take real actions, a human needs one place to say yes or no. The inbox unifies everything waiting on approval — workflow steps, agent runs, agent actions, chatbot tool calls — and enforces separation of duties: whoever proposed an action cannot be the one who approves it.
A2A / MCP coordination
HTTP/SSE/OAuth/federation transport exists and is tested in-process; the production mount (mTLS / real identity provider) is Planned.
experimental
A2A / MCP coordination
HTTP/SSE/OAuth/federation transport exists and is tested in-process; the production mount (mTLS / real identity provider) is Planned.
A2A lets agents discover each other and delegate tasks; MCP standardises how an agent reaches tools and context through a common registry. The transport (HTTP/SSE/OAuth/federation) exists and is tested in-process; wiring it for production — mutual TLS, a real identity provider — is still Planned, stated so the maturity is not overstated.
Channels & delivery
Embeddable chat + public API
A web chat widget and a server-to-server API authenticated by API key (identity resolved from the key, never the request body), with key management.
implemented
Embeddable chat + public API
A web chat widget and a server-to-server API authenticated by API key (identity resolved from the key, never the request body), with key management.
To put the assistant on your own site or app there is a chat widget and a server-to-server API. Authentication is by API key, and the caller’s identity is taken from the key itself, never from a field in the request body — which closes the classic impersonation gap (IDOR). Keys are managed in-platform.
Messaging channels (WhatsApp)
A signature-verified WhatsApp inbound webhook reusing the same answer engine; works once credentials are loaded — an honest scaffold, not live without keys.
experimental
Messaging channels (WhatsApp)
A signature-verified WhatsApp inbound webhook reusing the same answer engine; works once credentials are loaded — an honest scaffold, not live without keys.
An inbound WhatsApp webhook lets users reach the same answer engine from a channel they already use; incoming requests are signature-verified. It is an honest scaffold — it works once real credentials are loaded, and without them it does not pretend to be live. (No Telegram integration exists.)
Data & modernisation
Code modernisation (verify→repair)
An agentic swarm migrates code with differential testing — compare original vs migrated on the same inputs, repair on mismatch.
verified
Code modernisation (verify→repair)
An agentic swarm migrates code with differential testing — compare original vs migrated on the same inputs, repair on mismatch.
Migrating code from a legacy language is only safe if the new code behaves the same. Differential testing runs the original and the migrated version on the same inputs and compares outputs; a mismatch is a bug, which an agentic swarm then repairs and re-tests. "Verified" means there is a trace that behaviour matches — not a hopeful translation.
Data quality & migration
A data-engineering engine with quality rules.
implemented
Data quality & migration
A data-engineering engine with quality rules.
Moving data between systems is where silent corruption hides. A data-engineering engine runs quality rules — completeness, uniqueness, validity, consistency, freshness — so problems are caught and measured rather than discovered later downstream.
Big-data engine adapters
Breadth adapters exist; several are connection-tested only, not operated end-to-end.
experimental
Big-data engine adapters
Breadth adapters exist; several are connection-tested only, not operated end-to-end.
Adapters to big-data engines broaden where Rootnia can run heavy workloads. Honest scope: several of these "breadth" adapters are connection-tested only — they prove the link works — but are not yet operated end-to-end, so they are marked experimental, not live.
Governance & compliance
2FA, RBAC & tenant isolation
Role hierarchy and per-tenant isolation checked on access (identity from the token, not the request body — IDOR-aware), with cross-tenant isolation certified by tests.
verified
2FA, RBAC & tenant isolation
Role hierarchy and per-tenant isolation checked on access (identity from the token, not the request body — IDOR-aware), with cross-tenant isolation certified by tests.
Three layers of access control: two-factor authentication to prove who you are, role-based permissions (a hierarchy of what each role may do), and tenant isolation so one customer’s data and actions never reach another’s. The identity used for every check comes from the signed token, not a field in the request — which prevents the IDOR class of bugs — and cross-tenant isolation is certified by tests.
Prompt-injection guard + SSRF guard
Untrusted input passes a default-on prompt-injection guard before reaching agents; outbound calls pass an SSRF guard (deny-by-default to internal IPs). The injection guard is heuristic and declared evadable — defence in depth, not a silver bullet.
implemented
Prompt-injection guard + SSRF guard
Untrusted input passes a default-on prompt-injection guard before reaching agents; outbound calls pass an SSRF guard (deny-by-default to internal IPs). The injection guard is heuristic and declared evadable — defence in depth, not a silver bullet.
Agentic systems add attack surface. A default-on prompt-injection guard screens untrusted input before it reaches an agent, and an SSRF guard checks every outbound call (deny-by-default to internal addresses, anti DNS-rebinding). Honestly: the injection guard is heuristic and declared evadable — defence in depth, not a silver bullet — which is why authority and approval also sit outside the model.
Value & ROI dashboard
Per-tenant KPIs (value, hours saved, AI cost, net ROI). The savings are an explicit, configurable estimate — not an empirical measurement.
implemented
Value & ROI dashboard
Per-tenant KPIs (value, hours saved, AI cost, net ROI). The savings are an explicit, configurable estimate — not an empirical measurement.
Per tenant, the dashboard reports value generated, hours saved, AI cost and net ROI, computed from audit, billing and execution data. The savings figure is an explicit, configurable estimate — it assumes, for example, minutes saved per document — not an empirical measurement, and the page says so, so it is not mistaken for a measured result.
Append-only audit (hash chain)
Who did what, when, over which data — recorded verifiably.
implemented
Append-only audit (hash chain)
Who did what, when, over which data — recorded verifiably.
Governance needs a record that cannot be quietly edited. Every consequential action is written to an append-only log chained by hashes, so who did what, when and over which data is reconstructible and tamper-evident.
PII anonymisation
AR + EU detectors over a redaction layer.
implemented
PII anonymisation
AR + EU detectors over a redaction layer.
Before documents are shared or used for analysis, personal data can be detected and redacted. Detectors cover Argentine and EU personal-data patterns over a redaction layer, so sensitive fields can be removed or masked.
Billing, quotas & GDPR rights
Per-tenant quotas, usage limits, data-subject rights and retention.
implemented
Billing, quotas & GDPR rights
Per-tenant quotas, usage limits, data-subject rights and retention.
For a multi-tenant product, each tenant has usage quotas and limits so one cannot starve the others, plus the data-subject rights and retention controls that GDPR requires.
Standard PAdES / PKCS#7 signing
Designed, not yet implemented.
planned
Standard PAdES / PKCS#7 signing
Designed, not yet implemented.
Standards-based digital signatures — PAdES for PDF, PKCS#7 — would let documents carry a legally recognised signature. This is designed but not yet implemented, marked Planned rather than implied to exist.
Status & honesty
What the code corrected, and what is still open
This page is written from a read-only audit; where the code disagreed with earlier assumptions, the code wins.
Corrections (code over assumptions)
- Agents = 28, not 93. The "93" is the front-end workflow-node palette, not agents.
- Multi-model, not a single model. Direct OpenAI models plus a vision/extraction model and an occasional third provider for spreadsheets — chosen per task.
- Visual anchoring is user-provided (drag-and-drop), not auto-derived from OCR bounding boxes. No over-promise of automatic anchoring.
- A2A / MCP transport is real and tested in-process; the production mount (mTLS, real identity provider) is still Planned.
- Distributed compute is used for heavy loads, but the swarm and the workflow engine do not depend on it; fault-tolerance for the control node is a known hardening target.
- Honest scaffolds, not live: a payment provider returns "not configured" without a key, and a number of "breadth" integrations are connection-tests only.
Honest gaps (planned / not closed)
- Dedicated agents per big-data engine; real operation of the breadth integrations and live payments.
- Production mount of A2A / MCP with mTLS and a real identity provider.
- Observed data lineage (the library exists but is not wired) and the data-ops monitor.
- Standard document signing (PAdES / PKCS#7); durable persistence of modernisation projects (currently in-memory).
- Full observability (metrics/tracing); a parser for one legacy language (today translated by the model).
The through-line with the rest of the ecosystem: a model is used to perceive and draft, but every value is checked against your own documents and data by an independent verifier jury, side-effecting actions are authorized and approved outside the model, and every decision is auditable. Rootnia is the enterprise, document-automation face of the same verifiable discipline as ROOTFRAME.
Background
- Retrieval-Augmented Generation (RAG) — grounding generation in retrieved sources
- Model Context Protocol (MCP) and Agent-to-Agent (A2A) coordination
- Differential testing for behaviour-preserving code migration
- RBAC, least privilege and IDOR — access control for multi-tenant systems
