Datus · Open-Source Data Engineering Agent
Website · Docs · Quick Start · Dosi · Release Notes
English | 简体中文
Datus is the open-source data engineering agent for the modern data stack: one agent that connects your warehouse, catalog, semantic layer, and BI, grounded in an evolvable context engine your team owns.
Datus handles SQL authoring and validation, semantic model and metric construction, and the generation of pipelines, reports, and dashboards. Every run and every correction settles into context, which steadily raises the accuracy of its output. The whole stack stays open and flexible: databases, BI, schedulers, LLMs, and your team's own tools all connect through standard interfaces.
Architecture
The diagram reads top to bottom: who uses Datus, what the agent is made of, and what it connects to.
- Three entry points, by role: data engineers work in Datus-CLI to explore data and build assets; analysts ask through Datus-Chat on the web, in Slack/Feishu, or in VS Code, and their feedback flows back into the agent; other agents and applications consume Datus-API over REST and MCP.
- The agent core: subagents package curated context, tools, and rules for one business domain, and skills add packaged tools. Underneath sits the context engine: metadata, metrics, reference SQL, knowledge, and local files, retrieved through business-domain trees plus vector search, with storage on embedded LanceDB and SQLite and PostgreSQL for teams that share context.
- Connected systems: LLM providers, data warehouses, the Dosi semantic layer, job schedulers, BI tools, and MCP servers and clients, reached through adapters and through plugins that bring third-party and in-house tools into the agent.
Features
Semantic layer
- Automated semantic modeling: the agent reads your database schema and SQL history, then generates OSI semantic models and metric definitions, with no hand-written YAML.
- Dosi execution engine: compiles one semantic model into SQL for 13+ database dialects, and ships as an independent program you can also run as a CLI, REST server, or MCP server.
- Metric Q&A and attribution: AskMetrics answers business questions from metric definitions instead of improvising SQL, and when a metric moves, dimension attribution locates which dimension drove the change.
Agent and context
- Sharper with use: the context engine gathers schemas, reference SQL, and business rules, and writes every correction back, so later answers keep getting more accurate.
- Subagent delivery: curate context, tools, and rules for one domain, package them as a dedicated chatbot, and serve it to analysts over web, API, MCP, Slack/Feishu, or VS Code.
- Data engineering automation: built-in subagents handle cross-database migration, ETL job generation, and wide-table builds, with Airflow orchestration and Superset/Grafana dashboard read-write.
- Report and dashboard generation: produce self-contained HTML reports and interactive dashboards straight from chat, previewed locally with no SaaS backend.
Openness and governance
- Open ecosystem: adapters for 19 databases, 10+ LLM providers, and an MCP server and client.
- External integrations: the plugin framework connects third-party platforms and in-house tools to the agent; one
datus-plugin.ymlmanifest declares CLI commands, skills, and prompt context, with per-project activation. - Skills: packaged tools following the agentskills.io convention, installable from a marketplace.
- Enterprise governance: tiered permission profiles, statement-level SQL authorization with AI pre-review, bash confined to an OS-level sandbox, and traces exportable to any OTLP platform.
Quickstart
Linux or macOS:
curl -fsSL https://raw.githubusercontent.com/datus-ai/datus-agent/main/install.sh | sh
Open a new shell and run datus, then:
/modelto configure an LLM/datasourceto add a datasource/init(optional) to scan the current project
Manual install works too: pip install datus-agent (Python 3.12+); more install options are covered in the Quickstart. When pip spends minutes backtracking through litellm releases (versions up to 0.3.9 are affected), uv resolves the same set in seconds: pip install uv && uv pip install datus-agent --system. The end-to-end tutorial demonstrates the full flow on a sample dataset. Configuration has two levels: a global agent.yml for the main settings, and a per-project .datus/config.yml for overrides such as the active model and default datasource (see the configuration docs).
Interfaces
The examples below use a datasource named demo; create one first with /datasource.
| Interface | Command | Use Case |
|---|---|---|
| CLI (interactive REPL) | datus --datasource demo |
Data engineers exploring data, building context, creating subagents |
| Web Chatbot (FastAPI + React) | datus --web --datasource demo |
Analysts chatting with subagents via browser (http://localhost:8501) |
| REST API (FastAPI) | datus-api --datasource demo |
Applications consuming data services via REST (http://localhost:8000) |
| MCP Server | datus-mcp --datasource demo |
MCP-compatible clients (Claude Desktop, Cursor, etc.) |
| IM Gateway | datus-gateway |
Analysts talking to subagents in Slack or Feishu/Lark |
| VS Code (Datus Studio) | connects to datus --web |
Catalog explorer, chat panel, SQL results & AI charts in the IDE |
Tip: Print mode streams JSON to stdout for scripting and CI:
datus -p "your question" --datasource demo.
Development
Developing Datus
Start here to work on Datus itself: install dependencies with uv, then run the PR test harness and format checks before submitting.
uv sync # Install dependencies
uv run python ci/run-pr-tests.py upstream/main # PR CI harness (no external deps)
uv run ruff format datus/ tests/ && uv run ruff check --fix datus/ tests/ # Lint & format
See CLAUDE.md for development conventions, architecture patterns, and testing rules.
Developing a plugin
Extending Datus does not require touching its core: declare CLI commands, skills, and prompt context in a datus-plugin.yml manifest, then pack it for distribution and per-project activation. The plugin development guide walks through the full flow.
License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file datus_agent-0.4.1.tar.gz.
File metadata
- Download URL: datus_agent-0.4.1.tar.gz
- Upload date:
- Size: 5.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4757260cf9b02f4b0a82ada758ea3a64af62d083a0039688579204d9215c43aa
|
|
| MD5 |
d1f9a71c9d4b2755c6a7bc7fed76ebd5
|
|
| BLAKE2b-256 |
3920e0e586dc92642025354a71ca083f2885ed448d391df4acebe439b7ef49ed
|
File details
Details for the file datus_agent-0.4.1-py3-none-any.whl.
File metadata
- Download URL: datus_agent-0.4.1-py3-none-any.whl
- Upload date:
- Size: 5.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e35250ed37d724b319e5785dcab3c6dc77b4fee465aa39a4c4e4532b9223975
|
|
| MD5 |
f792b8409cbbb7500b91ee4500212e28
|
|
| BLAKE2b-256 |
f624b2eccf31aeea44bb56d7f8b9d270f926914cd0216ddadf229a1fd4e5120e
|