Dashscope-powered Datus agent with Clickzetta integrations
Project description
|
|
|
|
|
|
|
🎯 Overview
Datus is an open-source data engineering agent that builds evolvable context for your data system.
Data engineering needs a shift from "building tables and pipelines" to "delivering scoped, domain-aware agents for analysts and business users.
- Datus-CLI: An AI-powered command-line interface for data engineers—think "Claude Code for data engineers." Write SQL, build subagents, and construct context interactively.
- Datus-Chat: A web chatbot providing multi-turn conversations with built-in feedback mechanisms (upvotes, issue reports, success stories) for data analysts.
- Datus-API: APIs for other agents or applications that need stable, accurate data services.
🚀 Key Features
🧩 Contextual Data Engineering
Automatically builds a living semantic map of your company’s data — combining metadata, metrics, SQL history, and external knowledge — so engineers and analysts collaborate through context instead of raw SQL.
💬 Agentic Chat
A Claude-Code-like CLI for data engineers.
Chat with your data, recall tables or metrics instantly, and run agentic actions — all in one terminal.
🧠 Subagents for Every Domain
Turn data domains into domain-aware chatbots.
Each subagent encapsulates the right context, tools, and rules — making data access accurate, reusable, and safe.
🔁 Continuous Learning Loop
Every query and feedback improves the model.
Datus learns from success stories and user corrections to evolve reasoning accuracy over time.
🛠️ Developer Quickstart
Set up a local environment that uses Dashscope for LLM calls and Clickzetta as the data source:
-
Clone and install dependencies
git clone https://github.com/<your-org>/Datus-agent-clickzetta.git cd Datus-agent-clickzetta python3.11 -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -r requirements.txt
-
Create a
.envfile at the project root to store secrets:DASHSCOPE_API_KEY=your_dashscope_key DEEPSEEK_API_KEY=your_deepseek_key CLICKZETTA_SERVICE=your_clickzetta_service CLICKZETTA_USERNAME=your_clickzetta_username CLICKZETTA_PASSWORD=your_clickzetta_password CLICKZETTA_INSTANCE=your_clickzetta_instance CLICKZETTA_WORKSPACE=your_clickzetta_workspace CLICKZETTA_SCHEMA=your_clickzetta_schema CLICKZETTA_VCLUSTER=your_clickzetta_vcluster
The entry points (
datus-cli,python -m datus.main,datus/api/server.py) automatically load this file viapython-dotenv, so no manual export is required. For shell-based workflows you can still runexport $(grep -v '^#' .env | xargs)before launching the CLI. -
Copy the Clickzetta configuration
cp conf/agent.clickzetta.yml.example conf/agent.clickzetta.yml
The example file ships with Dashscope/DeepSeek models and a
clickzettanamespace. Edit the copy if your workspace or model choices differ. -
Start the CLI (or API)
mkdir -p .datus_home DATUS_HOME=$(pwd)/.datus_home python -m datus.cli.main --config conf/agent.clickzetta.yml --namespace clickzetta # optionally launch the API server DATUS_HOME=$(pwd)/.datus_home python -m datus.api.server --config conf/agent.clickzetta.yml --namespace clickzetta
The CLI will automatically connect to Clickzetta, retrieve schema metadata, and use Dashscope for SQL generation.
🧰 Installation
Requirements: Python >= 3.9 and Python <= 3.11, 3.11 is verified.
pip install datus-agent-clickzetta==0.2.1
datus-agent-clickzetta init # 或使用 datus-agent init 兼容命令
For detailed installation instructions, see the Quickstart Guide.
🧭 User Journey
1️⃣ Initial Exploration
A Data Engineer (DE) starts by chatting with the database using /chat.
They run simple questions, test joins, and refine prompts using @table or @file.
Each round of feedback (e.g., "Join table1 and table2 by PK") helps the model improve accuracy.
datus-cli --namespace demo
/Check the top 10 bank by assets lost @Table duckdb-demo.main.bank_failures
Learn more: CLI Introduction
2️⃣ Building Context
The DE imports SQL history and generates summaries or semantic models:
/gen_semantic_model xxx
@subject
They edit or refine models in @subject, combining AI-generated drafts with human corrections.
Now, /chat can reason using both SQL history and semantic context.
Learn more: Knowledge Base Introduction
3️⃣ Creating a Subagent
When the context matures, the DE defines a domain-specific chatbot (Subagent):
.subagent add mychatbot
They describe its purpose, add rules, choose tools, and limit scope (e.g., 5 tables). Each subagent becomes a reusable, scoped assistant for a specific business area.
Learn more: Subagent Introduction
4️⃣ Delivering to Analysts
The Subagent is deployed to a web interface:
http://localhost:8501/?subagent=mychatbot
Analysts chat directly, upvote correct answers, or report issues for feedback. Results can be saved via !export.
Learn more: Web Chatbot Introduction
5️⃣ Refinement & Iteration
Feedback from analysts loops back to improve the subagent: engineers fix SQL, add rules, and update context. Over time, the chatbot becomes more accurate, self-evolving, and domain-aware.
For detailed guidance, please follow our tutorial.
Project details
Release history Release notifications | RSS feed
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_clickzetta-0.2.1.tar.gz.
File metadata
- Download URL: datus_agent_clickzetta-0.2.1.tar.gz
- Upload date:
- Size: 683.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b5cc1805a2cc61a276d646f2d5b1ffa3d0633f68c674ee646f02154a23c4324
|
|
| MD5 |
b6ca4aea8947330c38c9b9758d92e0b4
|
|
| BLAKE2b-256 |
b2458d02c5a58141b1daf12363e65ea9c4a45e8c396cc2f454b4111a10548659
|
File details
Details for the file datus_agent_clickzetta-0.2.1-py3-none-any.whl.
File metadata
- Download URL: datus_agent_clickzetta-0.2.1-py3-none-any.whl
- Upload date:
- Size: 779.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a7173b62ed1f17c63d1d348c0beba6aa2322bcacee07b51625050de01ded861
|
|
| MD5 |
746118a2edbf647ff797ddbbd5830d5f
|
|
| BLAKE2b-256 |
3c25f4e618f29750b567c0cb054f3f01443e38ae56d443ca3a795654eb0d31e5
|