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.
Metadata
Release files for jack-data-science-agent 4.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| jack_data_science_agent-4.3.3.tar.gz | 1.8 MB | With provenance | Details for jack_data_science_agent-4.3.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| jack_data_science_agent-4.3.3-py3-none-any.whl | Python 3 | none | any | Details for jack_data_science_agent-4.3.3-py3-none-any.whl |
Total release size: 2.0 MB
Release files / jack_data_science_agent-4.3.3.tar.gz
| Download URL | jack_data_science_agent-4.3.3.tar.gz |
|---|---|
| Size | 1.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
13790e9e1dbd42e411edfc54a91492604e9289060b08fb0e4d98c80ac0571a04
|
|
BLAKE2b-256 checksum How to use checksums |
923da2cfe9881e9f7ed0eeefdbc792880b39a6dc58606e4a0163566c92c18d4e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.
Transparency logRelease files / jack_data_science_agent-4.3.3-py3-none-any.whl
| Download URL | jack_data_science_agent-4.3.3-py3-none-any.whl |
|---|---|
| Size | 185.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0738b64e7e88d24c85cf40a07ed5a82d99f1d0570176101afb77e52b4936493a
|
|
BLAKE2b-256 checksum How to use checksums |
23d86a6002a329576430a72e128246508ec0c57c8e1f5aa774db0056b0869ff4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.
Transparency logSecurity for jack-data-science-agent 4.3.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for jack_data_science_agent-4.3.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.