One governed loop, every step recorded.

Datris is the open-source data control plane for AI agents. An agent asks for data; the platform acquires it, validates it, lands it in the stores you already run, and returns it with a receipt.

More walkthroughs →


One agent-driven loop

Acquire, validate, land, observe, explain, repair. Same loop every run, same audit trail every time — so the agent's job is reasoning about the data, not improvising infrastructure.

🎯
Acquire
AI-Generated Taps
Describe a source in plain English — an API, a vendor drop, a folder of PDFs. Datris generates a Python tap, wires up scheduling, and brokers credentials through Vault. Schema is auto-generated from a sample.
✓
Validate
Plain-English Rules
Data quality rules described in natural language and executed on every row. Bad records quarantine at the door — not after they pollute your warehouse.
🚀
Land
Multi-Destination Pipelines
One pipeline lands the same records in Postgres, MongoDB, Snowflake, Databricks, S3, and vector stores in parallel. Idempotent by key — reruns don't double-write.
👁
Observe
Provenance & Job State
Every run gets a durable record: which script, which commit, which inputs, which rows landed. Agents poll job status through MCP; humans see it in the UI. The transcript is not the system of record.
🩹
Explain & Repair
AI Error Explanation
When something fails, Datris analyzes the error chain and explains the root cause in plain English. The agent reads that, adjusts, and retries — instead of pasting stack traces into another chat.

Agents don't need a new data platform. They need a way into yours.

Datris sits beside the warehouse and the lake, never in front of them. It is the intake valve: the agent asks, Datris acquires and validates, and the rows land in the stores your teams already query. Nothing moves out of your stack and nothing new becomes the system of record.

The write path
  • SnowflakeAnalytics warehouse
  • DatabricksLakehouse
  • PostgreSQLOperational store
  • MongoDBDocuments
  • S3 / MinIOObject storage, Parquet
  • pgvector · Qdrant · Weaviate · Milvus · ChromaVector search

One pipeline lands the same validated records in several of these in parallel, idempotent by key. Keep the intake layer neutral and every future architecture decision stays yours.


Enforced by the platform, not by the prompt

The controls a risk committee asks about, in the open-source build, on by default. This is the part of Datris a head of data repeats to an auditor.

Agent Policy
Per-action allow, approve, or refuse, enforced by the platform rather than by a prompt. An agent that is not allowed to delete a pipeline cannot, no matter what it was told. A schedule can only point at a script that has passed a test run, whoever edited it.
The AI approval you already have →
Audit log
Every create, change, run, delete, login, and denied request, attributed to a login or API key. Export to CSV or mirror to your SIEM.
Stop giving agents master keys →
Provenance
Every landed row cites the pipeline, the run, the script commit, and the source. Agent-written scripts are versioned in git, so what ran is what you can diff.
If an agent wrote it, git should remember it →
Lineage
Where each dataset came from and where it went, across every destination a pipeline writes to.
Validate once, deliver everywhere →

Not every answer needs a table

Most of what an agent asks for is a one-off: what a source returns for these ids, whether today's file is clean, what a transformation would produce. Live Read runs the full governed pipeline and hands the rows back to the caller instead of landing them. If the rows turn out to be worth keeping, switch the destination. The tap, its schedule, and its sync bookmark do not move.

Land it
Data you will want again
Rows land beside your lake, in the stores your teams already query. Observed, catalogued, refreshed on a schedule, and every row cites its source.
Read it live
An answer you need once
The same run, but no loader. Validated rows go straight back to the agent, are held briefly, and expire. Nothing is written, nothing new becomes a system of record.
What stays the same in both lanes
  • The tap, generated or hand-written, with credentials brokered through Vault
  • Data quality rules and the transformation chain
  • Agent Policy, the audit log, and the run record
  • The agent never holds a key, in either lane

The built-in Assistant picks the lane for you: a one-off question goes to Live Read, not a new table. Live Read in the docs →


Your AI agents are
first-class pipeline operators

Datris ships with a native MCP server. Claude, Cursor, OpenClaw, and any MCP-compatible AI agent can register pipelines, trigger jobs, and query your structured, document, and vector data in real time — all through natural conversation.

Transports: stdioSSE (Server-Sent Events)Streamable HTTP
Compatible agents:
ClaudeCursorOpenClawAny MCP-compatible agent
MCP Capabilities
  • Register pipelines and generate schemas from sample data
  • Create, schedule, and run AI-generated taps
  • Ingest documents into vector databases (extract → chunk → embed)
  • Upload data for processing
  • Trigger and monitor pipeline jobs
  • Profile data and get AI insights
  • Semantic search across vector databases
  • Query PostgreSQL, MongoDB, Snowflake, and Databricks directly
  • Get an answer without landing a table — Live Read pipelines return validated rows straight to the agent
  • Run the built-in doctor to diagnose the platform before retrying a failed run
  • Manage credentials via Vault — without ever holding the key
Example prompt
"Generate a tap for our prime broker margin API, schedule it daily, validate that 'all account_ids must be present and balances must be non-negative', and load into Postgres."

Speaks every data language

Ingest structured data, unstructured documents, and archives. Output to vector stores, structured stores, or optimized columnar formats.

Format Input Default Destination
CSV SQL DB
JSON / NDJSON NoSQL DB
XML NoSQL DB
Excel (.xlsx) SQL DB
PDF Vector DB
Word (.docx) Vector DB
PowerPoint (.pptx) Vector DB
HTML Vector DB
Email (.eml) Vector DB
EPUB Vector DB
Archives (.zip, .tar, .gz) Unpacked, routed
Plain Text Vector DB

Destinations are fully configurable. Route any format to any target — SQL databases, NoSQL stores, vector databases, REST endpoints, Kafka topics, or ActiveMQ queues. Object-store destinations write Parquet, ORC, or Apache Iceberg tables with atomic commits, upserts by key, partitioning, and schema evolution. Or skip landing entirely: a Live Read pipeline runs the same validation and transformation chain and hands the rows straight back to the caller.


Full RAG pipeline built in

Extract, chunk, embed, and upsert documents into any major vector database. Build retrieval-augmented generation workflows without leaving your pipeline.

✂️
Chunking Strategies
Choose the right chunking strategy for your use case:
Fixed-sizeSentenceParagraphRecursive
🧠
Embedding Providers
Generate embeddings with cloud or local models:
TEI bge-m3 (bundled)OpenAIAzure OpenAIOllama (local)
📄
Document Extraction
Extract text from virtually any document format:
PDFWordPowerPointHTMLEmailEPUBPlain Text
📒
Document Ledger
Content-hashed ledger of every document seen. Re-runs skip unchanged files automatically — no re-embedding the same folder every night, no surprise OpenAI bill.
RAG Pipeline Flow
1 Document Extraction
→
2 Chunking
→
3 Embeddings
→
4 Vector Upsert