Data Science Agent
The AI data scientist that shows its work.
Ask questions about CSV files and databases in natural language. DSA runs SQL, statistics, machine learning, and visualization, then returns claim-level evidence, a reproducible report, and the artifacts needed to inspect how each conclusion was produced.
Try Live Demo · Product Tour · 60-second quickstart · Install from PyPI · Case studies · Evaluation · Docs · v4.3.0
For analysts, researchers, and ML engineers who need answers they can inspect, audit, reproduce, and challenge.
Live browser demo: upload a dataset and run DSA · Static artifact tour: browse verified runs
Why DSA?
Most AI data-analysis tools stop at the answer.
Data Science Agent is built to preserve the path from a claim back to the computation and dataset that produced it.
Question
↓
Executed analysis
↓
Evidence
↓
Claim
↓
Reproducible report
That means an analysis can be inspected, audited, reproduced, and challenged instead of accepted on confidence alone.
If an AI makes a data-science claim, you should be able to inspect how it got there.
⚡ 60-second quickstart
Install:
pip install jack-data-science-agent
Run the built-in demo:
dsa demo
Analyze your own data:
dsa analyze sales.csv \
--task "Which factors explain revenue, and are the effects statistically significant?"
Python 3.12+ is required.
A successful run produces more than chat output:
analysis run
├── report.md
├── experiment.json
├── evidence_graph.json
├── analysis.ipynb
└── reproduce.sh
| Artifact | Purpose |
|---|---|
report.md |
Human-readable findings |
experiment.json |
Structured run metadata |
evidence_graph.json |
Claim → evidence → computation lineage |
analysis.ipynb |
Inspectable notebook representation |
reproduce.sh |
Re-run the analysis |
Hosted browser demo
The verified public demo is available at data-science-agent-web.vercel.app. It runs the Next.js web interface on Vercel and the FastAPI analysis service on Render.
The demo supports the core product flow:
Upload CSV / Excel
↓
Inspect dataset
↓
Ask a natural-language question
↓
Planner selects analysis tools
↓
Statistics / ML / visualization execute
↓
Evidence is verified
↓
Validation + report
A useful smoke-test question is:
Explain which features are most important for revenue, test whether the main associations are statistically significant, assess the impact of campaign_group on the outcome, and clearly distinguish association from causation. Include a visualization.
The hosted preview intentionally runs in deterministic heuristic/offline mode, so it does not require or expose a model API key. The public Render instance uses ephemeral local storage: uploaded datasets and generated artifacts are temporary and may disappear after a restart or redeploy, so re-upload the dataset if it is no longer listed. A free instance may also need a short cold-start period after inactivity.
See Hosted Demo Deployment for the deployment topology, environment variables, and limitations.
Where DSA fits
| You are... | DSA helps you... |
|---|---|
| Analyst | move from a natural-language question to SQL, statistics, plots, and an auditable report |
| Researcher | preserve dataset hashes, evidence lineage, and reproduction artifacts alongside conclusions |
| ML engineer / data scientist | run regression, classification, forecasting, and evaluation inside one inspectable workflow |
See it in action
Interactive path: Try the live hosted demo →
Artifact-only path: Open the verified Product Tour →
The Product Tour is a static view of repository artifacts from verified DSA runs. It does not accept uploads or pretend to be a live hosted model/API service. The live demo is separate and is explicitly labeled as a temporary public preview.
Question → profile → plan → tools → evidence → critic → reproducible report.
Start with 3 flagship workflows
| Workflow | Ask DSA | What it demonstrates |
|---|---|---|
| Sales analytics | What drives revenue across regions and categories? | SQL + statistics → evidence → reproducible report |
| Time-series forecasting | What are the next 30 values, and how well does the baseline forecast perform? | Forecasting, holdout evaluation, reproducibility, and visible failure recovery |
| ML classification | Can DSA train, evaluate, and explain an imbalanced classifier? | Model evaluation + feature importance inside the same provenance trail |
Browse all 8 verified case studies →
These are verified repository workflows intended to show product behavior and evidence artifacts. They are not presented as independent real-LLM leaderboard results.
What makes DSA different?
1. Claim-level evidence
Supported findings can be connected to the analysis that produced them:
Claim
└── statistical result
└── executed tool
└── parameters
└── dataset SHA-256
2. Reproducibility by default
DSA records run metadata and reproduction artifacts instead of treating the final prose answer as the only output.
3. Evidence-aware critique
A critic stage checks whether conclusions go beyond available evidence. Causal language can be rejected when the underlying analysis only supports association.
4. Statistical and modeling guardrails
The current analysis path can select semantic outcome/treatment columns, run significance tests, encode categorical features for RandomForest importance, exclude exact target copies from feature importance, and preserve an explicit association-vs-causation boundary.
5. Real data-science tools
Core workflows can coordinate:
- dataset profiling and exploratory analysis
- SQL with DuckDB
- correlation and hypothesis testing
- regression and classification
- forecasting and feature importance
- visualization
- report generation
6. One runtime, multiple interfaces
| Surface | Entry point |
|---|---|
| CLI | dsa <command> |
| Python SDK | from data_science_agent import Agent |
| REST API | FastAPI |
| Streaming | Server-Sent Events |
| MCP | MCP server |
| Jupyter | %load_ext dsa_jupyter |
| VS Code | Dataset explorer + analysis replay |
| Plugins | Custom data-science tools |
Python SDK
import asyncio
from data_science_agent import Agent
async def main():
result = await Agent().analyze(
"sales.csv",
"Which region drives the most revenue, and is the trend statistically significant?",
)
print(result.report_markdown)
asyncio.run(main())
Inspect evidence programmatically:
for evidence in result.evidence:
print(evidence.claim)
print(evidence.source_id)
print(evidence.result)
Evaluation
DSA is developed against versioned benchmark suites rather than relying only on hand-picked demos.
The repository contains deterministic benchmark and evaluator-validation results, including frozen task suites and reproducibility checks. These results are useful for regression testing and validating the evaluation harness, but they should not be interpreted as an independent comparison of real LLM model quality unless the run identifies a real model/provider and reproducible configuration.
The current public result registry includes a stub/small validation run. It is intentionally labeled as such so test-harness scores are not confused with real-model performance.
Architecture
flowchart LR
A["Natural-language question"] --> B["Planner"]
B --> C["Data-science tools"]
C --> D["SQL / Statistics / ML / Visualization"]
D --> E["Evidence graph"]
E --> F["Critic"]
F --> G["Evidence-backed report"]
G --> H["Reproduction artifacts"]
Hosted demo topology:
flowchart LR
U["Browser"] --> W["Next.js · Vercel"]
W --> A["FastAPI · Render"]
A --> D["Temporary dataset storage"]
A --> T["DSA tools"]
T --> R["Evidence + report"]
The runtime uses a LangGraph-based orchestration layer over typed data-science tools, with local-first data operations built around Python, DuckDB, Polars, SciPy, scikit-learn, and Matplotlib.
DSA vs. typical AI data analysis
| Capability | Chat-with-data tools | Generic coding agents | Data Science Agent |
|---|---|---|---|
| Natural-language analysis | ✓ | ✓ | ✓ |
| SQL / statistics / ML | ✓ | ✓ | ✓ |
| Autonomous workflow | Limited | ✓ | ✓ |
| Dataset hashing | — | — | ✓ |
| Claim-level evidence | — | — | ✓ |
| Evidence graph | — | — | ✓ |
| Reproduction bundle | Limited | Limited | ✓ |
| Evidence-aware critic | — | — | ✓ |
| MCP interface | Varies | Varies | ✓ |
| Plugin runtime | Varies | Varies | ✓ |
DSA is not intended to be only another natural-language interface to a dataframe. Its focus is verifiable, reproducible AI data science.
Documentation
Start here:
- Live Demo
- Product Tour
- Getting Started
- Hosted Demo Deployment
- SDK & API Reference
- Evaluation
- Benchmarks
- MCP
- Research & Limitations
- Case Studies
- Roadmap
- Changelog
- Releases
Development
git clone https://github.com/Jackxiaozhiren/data-science-agent.git
cd data-science-agent
uv sync --dev
uv run dsa demo
uv run pytest
Static checks:
uv run ruff check .
uv run mypy .
Contributing
Contributions are welcome, especially:
- real-model benchmark baselines
- reproducibility failures
- new datasets and benchmark tasks
- statistical validation improvements
- data-science tools and plugins
- case studies and documentation
New contributor? Start with the good first issue queue.
See CONTRIBUTING.md, ROADMAP.md, and CODE_OF_CONDUCT.md.
Citation, security, and license
- Academic use: CITATION.cff
- Security reports: SECURITY.md
- License: MIT
Ask. Analyze. Verify. Reproduce.
Live Demo · Product Tour · Get Started · Case Studies · Evaluation · Roadmap · Contribute
⭐ If reproducible AI data analysis is useful to you, consider starring the project.
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 jack_data_science_agent-4.3.2.tar.gz.
File metadata
- Download URL: jack_data_science_agent-4.3.2.tar.gz
- Upload date:
- Size: 1.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4bb6fcf9418f10b2c438c63cdf7a7f9292f5c3145fa161d7cafdea3cf2fa75dc
|
|
| MD5 |
ee8178e5f093445d1243cde6409a2e3c
|
|
| BLAKE2b-256 |
760474591cb70c8b9e00fab039fce09836be7546bfa6ae82cab957b7bacddb41
|
Provenance
The following attestation bundles were made for jack_data_science_agent-4.3.2.tar.gz:
Publisher:
publish.yml on Jackxiaozhiren/data-science-agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jack_data_science_agent-4.3.2.tar.gz -
Subject digest:
4bb6fcf9418f10b2c438c63cdf7a7f9292f5c3145fa161d7cafdea3cf2fa75dc - Sigstore transparency entry: 2719615523
- Sigstore integration time:
-
Permalink:
Jackxiaozhiren/data-science-agent@648fd45f56ef3a1683c2f3aeea53ebdc2462034e -
Branch / Tag:
refs/tags/v4.3.2 - Owner: https://github.com/Jackxiaozhiren
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@648fd45f56ef3a1683c2f3aeea53ebdc2462034e -
Trigger Event:
push
-
Statement type:
File details
Details for the file jack_data_science_agent-4.3.2-py3-none-any.whl.
File metadata
- Download URL: jack_data_science_agent-4.3.2-py3-none-any.whl
- Upload date:
- Size: 185.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89d372efcb66fee4ba7fc9e4d8fc1a22f820922572f1323fe16edaf6a50574c0
|
|
| MD5 |
e9ee0ddc3a5a3f6f70c751878d9de62e
|
|
| BLAKE2b-256 |
51500461e1850734e04723de4b5004db69ab6b3f3ac7aaf315501fc483c0263f
|
Provenance
The following attestation bundles were made for jack_data_science_agent-4.3.2-py3-none-any.whl:
Publisher:
publish.yml on Jackxiaozhiren/data-science-agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jack_data_science_agent-4.3.2-py3-none-any.whl -
Subject digest:
89d372efcb66fee4ba7fc9e4d8fc1a22f820922572f1323fe16edaf6a50574c0 - Sigstore transparency entry: 2719614866
- Sigstore integration time:
-
Permalink:
Jackxiaozhiren/data-science-agent@648fd45f56ef3a1683c2f3aeea53ebdc2462034e -
Branch / Tag:
refs/tags/v4.3.2 - Owner: https://github.com/Jackxiaozhiren
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@648fd45f56ef3a1683c2f3aeea53ebdc2462034e -
Trigger Event:
push
-
Statement type: