Observed since 20 Oct, 22:14 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Agentic Data Scientist - General-purpose multi-agent framework with ADK and Claude Code
For users requiring access to substantially more powerful capabilities, K-Dense Web is available. Visit k-dense.ai to learn more.
An Adaptive Multi-Agent Framework for Data Science
Agentic Data Scientist is an open-source framework that uses a sophisticated multi-agent workflow to tackle complex data science tasks. Built on Google's Agent Development Kit (ADK) and Claude Agent SDK, it separates planning from execution, validates work continuously, and adapts its approach based on progress.
⭐ If Agentic Data Scientist saves you time or helps your work move faster, please star this repository. A star helps other data scientists, engineers, and open-source contributors find the project, and gives us a clear reason to keep expanding it for the community.
Stay up to date: Follow K-Dense on X, LinkedIn, and YouTube for new features, release announcements, walkthroughs, and research workflow demos.
Before using Agentic Data Scientist, you must have:
Claude Code CLI installed
npm install -g @anthropic-ai/claude-code
Or visit Claude Code Quickstart
Required API Keys configured (see Configuration section below)
# Install from PyPI
uv tool install agentic-data-scientist
# Or use with uvx (no installation needed)
uvx agentic-data-scientist --mode simple "your query here"
API Keys
You must configure two API keys:
OpenRouter API Key (required for planning and review agents):
export OPENROUTER_API_KEY="your_key_here"
Get your key at: https://openrouter.ai/keys
Anthropic API Key (required for coding agent):
export ANTHROPIC_API_KEY="your_key_here"
Get your key at: https://console.anthropic.com/
Alternatively, create a .env file in your project directory:
OPENROUTER_API_KEY=your_key_here
ANTHROPIC_API_KEY=your_key_here
Network Access Control (Optional)
By default, agents have access to network tools (web search and URL fetching). To disable network access:
export DISABLE_NETWORK_ACCESS=true
This disables:
fetch_url tool for ADK agentsWebFetch and WebSearch tools for Claude Code agentNetwork access is enabled by default. Set to "true" or "1" to disable.
Important: You must specify --mode to choose your execution strategy. This ensures you're aware of the complexity and API costs.
Working Directory: By default, files are saved to ./agentic_output/ in your current directory and preserved after completion. Use --temp-dir for temporary storage with auto-cleanup.
# Complex analysis with planning, execution, and validation
agentic-data-scientist "Perform differential expression analysis" --mode orchestrated --files data.csv
# Multiple files with custom working directory
agentic-data-scientist "Compare datasets" --mode orchestrated -f data1.csv -f data2.csv --working-dir ./my_analysis
# Directory upload (recursive)
agentic-data-scientist "Analyze all data" --mode orchestrated --files data_folder/
# Quick coding tasks without planning overhead
agentic-data-scientist "Write a Python script to parse CSV files" --mode simple
# Question answering
agentic-data-scientist "Explain how gradient boosting works" --mode simple
# Fast analysis with temporary directory
agentic-data-scientist "Quick data exploration" --mode simple --files data.csv --temp-dir
# Custom log file location
agentic-data-scientist "Analyze data" --mode orchestrated --files data.csv --log-file ./analysis.log
# Verbose logging for debugging
agentic-data-scientist "Debug issue" --mode simple --files data.csv --verbose
# Keep files (override default preservation)
agentic-data-scientist "Generate report" --mode orchestrated --files data.csv --keep-files
Agentic Data Scientist uses a multi-phase workflow designed to produce high-quality, reliable results:
Why separate planning from execution?
Why use iterative refinement?
Why adapt during execution?
Why continuous validation?
┌─────────────────────────────────────────────────────────────┐
│ USER QUERY │
└─────────────────────┬───────────────────────────────────────┘
│
┌─────────────▼────────────────┐
│ PLANNING PHASE │
│ ┌───────────────────────┐ │
│ │ Plan Maker │◄──┤ Iterative refinement
│ │ "What needs to be │ │ until plan is complete
│ │ done?" │ │ and validated
│ └──────────┬────────────┘ │
│ │ │
│ ┌──────────▼────────────┐ │
│ │ Plan Reviewer │ │
│ │ "Is this complete?" │───┤
│ └──────────┬────────────┘ │
│ │ │
│ ┌──────────▼────────────┐ │
│ │ Plan Parser │ │
│ │ Structures into │ │
│ │ executable stages │ │
│ └──────────┬────────────┘ │
└─────────────┼────────────────┘
│
┌─────────────▼────────────────┐
│ EXECUTION PHASE │
│ (Repeated for each stage) │
│ │
│ ┌───────────────────────┐ │
│ │ Coding Agent │ │
│ │ Implements the stage │ │ Stage-by-stage
│ │ (uses Claude Code) │ │ implementation with
│ └──────────┬────────────┘ │ continuous validation
│ │ │
│ ┌──────────▼────────────┐ │
│ │ Review Agent │◄──┤ Iterates until
│ │ "Was this done │ │ implementation
│ │ correctly?" │───┤ is approved
│ └──────────┬────────────┘ │
│ │ │
│ ┌──────────▼────────────┐ │
│ │ Criteria Checker │ │
│ │ "What have we │ │
│ │ accomplished?" │ │
│ └──────────┬────────────┘ │
│ │ │
│ ┌──────────▼────────────┐ │
│ │ Stage Reflector │ │
│ │ "What should we do │ │
│ │ next?" Adapts plan │ │
│ └──────────┬────────────┘ │
└─────────────┼────────────────┘
│
┌─────────────▼────────────────┐
│ SUMMARY PHASE │
│ ┌───────────────────────┐ │
│ │ Summary Agent │ │
│ │ Creates comprehensive │ │
│ │ final report │ │
│ └───────────────────────┘ │
└──────────────────────────────┘
Each agent in the workflow has a specific responsibility:
┌──────────────────────────────────────────────────────────────┐
│ CLI Interface │
├──────────────────────────────────────────────────────────────┤
│ Agentic Data Scientist Core │
│ (Session & Event Management) │
├──────────────────────────────────────────────────────────────┤
│ ADK Multi-Agent Workflow │
│ ┌────────────────────────────────────────────────────────┐ │
│ │ Planning Loop (Plan Maker → Reviewer → Parser) │ │
│ └────────────────────────────────────────────────────────┘ │
│ ┌────────────────────────────────────────────────────────┐ │
│ │ Stage Orchestrator │ |
│ │ ├─> Implementation Loop (Coding → Review) │ │
│ │ ├─> Criteria Checker │ │
│ │ └─> Stage Reflector │ │
│ └────────────────────────────────────────────────────────┘ │
│ ┌────────────────────────────────────────────────────────┐ │
│ │ Summary Agent │ │
│ └────────────────────────────────────────────────────────┘ │
├──────────────────────────────────────────────────────────────┤
│ Tool Layer │
│ • Built-in Tools: Read-only file ops, web fetch │
│ • Claude Scientific Skills: 143 skills │
│ • MCP Servers: Context7 (library documentation) │
└──────────────────────────────────────────────────────────────┘
Create a .env file:
# Required: API keys
ANTHROPIC_API_KEY=your_key_here # Claude Agent SDK (coding agent)
OPENROUTER_API_KEY=your_key_here # ADK planning and review agents
# Optional: Model configuration (defaults shown)
DEFAULT_MODEL=google/gemini-3.5-flash
REVIEW_MODEL=google/gemini-3.5-flash
CODING_MODEL=claude-opus-4-8 # Must be an Anthropic model available in Claude Code
# Optional: OpenRouter configuration (defaults shown)
OPENROUTER_API_BASE=https://openrouter.ai/api/v1
OR_SITE_URL=k-dense.ai
OR_APP_NAME=Agentic Data Scientist
# Optional: Context7 API key for enhanced library documentation access
CONTEXT7_API_KEY=your_key_here
# Optional: Disable network access (web search/fetch)
DISABLE_NETWORK_ACCESS=true
Built-in Tools (planning/review agents):
read_file, read_media_file, list_directory, directory_tree, search_files, get_file_infofetch_urlClaude Scientific Skills (coding agent):
.claude/skills/ at coding agent startupMCP Servers (coding agent):
https://mcp.context7.com/mcp). Set CONTEXT7_API_KEY for higher rate limits.All built-in tools are sandboxed to the working directory for security.
Complex Data Analysis
# Differential expression analysis with multiple files
agentic-data-scientist "Perform DEG analysis comparing treatment vs control" \
--mode orchestrated \
--files treatment_data.csv \
--files control_data.csv
Multi-Step Workflows
# Complete analysis pipeline with visualization
agentic-data-scientist "Analyze customer churn, create predictive model, and generate report" \
--mode orchestrated \
--files customers.csv \
--working-dir ./churn_analysis
Directory Processing
# Process entire dataset directory
agentic-data-scientist "Analyze all CSV files and create summary statistics" \
--mode orchestrated \
--files ./raw_data/
Quick Scripts
# Generate utility scripts
agentic-data-scientist "Write a Python script to merge CSV files by common column" \
--mode simple
Code Explanation
# Technical questions
agentic-data-scientist "Explain the difference between Random Forest and Gradient Boosting" \
--mode simple
Fast Prototypes
# Quick analysis with temporary workspace
agentic-data-scientist "Create a basic scatter plot from this data" \
--mode simple \
--files data.csv \
--temp-dir
# Default behavior (./agentic_output/ with file preservation)
agentic-data-scientist "Analyze data" --mode orchestrated --files data.csv
# Temporary directory (auto-cleanup)
agentic-data-scientist "Quick test" --mode simple --files data.csv --temp-dir
# Custom location
agentic-data-scientist "Project analysis" --mode orchestrated --files data.csv --working-dir ./my_project
# Custom location with explicit cleanup
agentic-data-scientist "Temporary analysis" --mode simple --files data.csv --working-dir ./temp --keep-files=false
# Clone repository
git clone https://github.com/K-Dense-AI/agentic-data-scientist.git
cd agentic-data-scientist
# Install with dev dependencies using uv
uv sync --extra dev
# Run tests
uv run pytest tests/
# Format code
uv run ruff format .
# Lint
uv run ruff check --fix .
agentic-data-scientist/
├── src/agentic_data_scientist/
│ ├── core/ # Core API and session management
│ │ ├── api.py # DataScientist entry point
│ │ └── events.py # Event types and handling
│ ├── agents/ # Agent implementations
│ │ ├── adk/ # ADK multi-agent workflow
│ │ │ ├── agent.py # Agent factory
│ │ │ ├── stage_orchestrator.py # Stage-by-stage execution
│ │ │ ├── implementation_loop.py# Coding + review loop
│ │ │ ├── loop_detection.py # Loop detection agent
│ │ │ ├── review_confirmation.py# Review decision logic
│ │ │ ├── event_compression.py # Context window management
│ │ │ └── utils.py # Model config & shared helpers
│ │ └── claude_code/# Claude Code integration
│ │ ├── agent.py # Claude Agent SDK wrapper
│ │ └── templates.py # Prompt/context templates
│ ├── prompts/ # Prompt templates
│ │ ├── base/ # Agent role prompts
│ │ └── domain/ # Domain-specific prompts (e.g. bioinformatics)
│ ├── tools/ # Built-in tools (file ops, web fetch)
│ └── cli/ # CLI interface
├── tests/ # Test suite (unit + integration)
└── docs/ # Documentation
Contributions welcome! See CONTRIBUTING.md for details.
# Fork and clone, then:
uv sync --extra dev
# Make changes, add tests
uv run pytest tests/ -v
# Submit PR
For maintainers:
Create and push tag:
./scripts/release.sh 0.2.0
Create GitHub release:
One-time PyPI Setup: Configure trusted publishing on PyPI with repo K-Dense-AI/agentic-data-scientist and workflow pypi-publish.yml.
Use conventional commits (feat:, fix:, docs:, etc.) for clean changelogs.
The framework implements aggressive event compression to manage context window usage during long-running analyses:
session.events to ensure changes take effectThe system employs multiple layers of protection:
These mechanisms work together to keep the total context under 1M tokens even during complex multi-stage analyses.
Built with:
MIT License - see LICENSE for details.
Copyright © 2025 K-Dense Inc. (k-dense.ai)
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.2.3 | 29 May 2026 | 14 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 22:14 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:7b61d0181d04ae272f699a99e121a595b7ff7735548495a1a5aecf25f15949d1