The Problem

Data‑science teams spend a large fraction of time wiring together data ingestion, cleaning, modelling, visualisation and report generation. The hand‑off between steps is error‑prone, and non‑technical stakeholders must wait for analysts to run notebooks or scripts.

What This Does

DeepAnalyze provides an agentic LLM that can drive the full data‑science pipeline end‑to‑end. The core agent lives under deepanalyze/SkyRL/skyagent/skyagent/ and implements a set of agents (react, codeact, etc.) that orchestrate tool calls such as skyagent/tools/webbrowser.py, skyagent/tools/searchengine.py, and sandboxed code execution (skyagent/tasks/verifiers/).

The public HTTP API is defined in API/ – API/main.py creates a FastAPI app, routing requests through API/chatapi.py which invokes the agent via skyagent/skyagent/auto.py. Model weights and inference wrappers are in deepanalyze/SkyRL/skyagent/integrations/openai.py and .../skyrltrain/skyrltrainbackend.py, allowing the same code to run on local models or OpenAI endpoints. Example data files (API/example/.csv) and request scripts (API/example/exampleRequest.py) illustrate a complete “upload‑CSV → analysis → report” flow.

How To Use It

Setup

Clone the repo git clone https://github.com/ruc-datalab/DeepAnalyze.git cd DeepAnalyze

Install Python dependencies (uv is used in the sub‑projects) uv sync -p 3.12 -C deepanalyze/SkyRL/pyproject.toml # installs core SkyRL deps uv sync -p 3.12 -C deepanalyze/SkyRL/skyagent/pyproject.toml uv sync -p 3.12 -C deepanalyze/SkyRL/skyrl-gym/pyproject.toml

If you prefer containerised execution: docker build -f deepanalyze/SkyRL/docker/Dockerfile -t deepanalyze:latest .

Configuration

Copy the example env files, fill in any API keys, and place them beside the respective modules:

deepanalyze/SkyRL/skyagent/.env.example → deepanalyze/SkyRL/skyagent/.env (e.g., OPENAIAPIKEY, SKYRLAPIURL). deepanalyze/SkyRL/skyrl-train/.env.example → deepanalyze/SkyRL/skyrl-train/.env for training‑time settings. Adjust API/config.py if you need a different host/port for the FastAPI server.

Running it

Start the API server (entry point) python API/main.py The server listens on http://0.0.0.0:8000 by default

For a direct CLI invocation (research mode) you can use the top‑level wrapper: python deepanalyze.py --data path/to/data.csv --output report.pdf

(See deepanalyze.py for the argument parser.)

Real‑World Use

A SaaS platform can embed the API as a micro‑service. When a user uploads a CSV through the UI, the platform posts the file to POST /analyze (implemented in API/fileapi.py). The service runs the agent, which automatically: Detects column types (skyagent/agents/mapping.py). Generates exploratory visualisations (skyagent/tools/finish.py produces a PDF). Trains a baseline model (skyagent/integrations/skyrltrain/skyrltrainbackend.py).

The resulting PDF is returned to the UI for immediate download, removing the need for a data‑science engineer in the loop.

Code Health & Issues

Medium – No CI/CD pipeline – No .github/workflows or other CI config; automated testing is not gated. Low – Inconsistent lock files – deepanalyze/SkyRL/skyagent/uv.lock and skyrl-gym/uv.lock exist, but the top‑level deepanalyze/SkyRL/pyproject.toml lacks a lock, risking reproducibility. Medium – Unsafe code execution – Verifier modules (skyagent/tasks/verifiers/coder1/unsafelocalexec.py) invoke arbitrary code; sandboxing relies on external tools and may be bypassed. Low – Sparse API docs – API/README.md gives high‑level usage but no OpenAPI spec or example curl commands; developers must read source to discover request shape. Low – Test coverage limited – 16 test files exist, primarily for agent dispatch and gym environments; core data‑pipeline paths (API/file_api.py, report generation) are untested.

Overall the repository compiles and runs, and the presence of a full test suite for the agent framework is a positive sign.

The Bottom Line

DeepAnalyze delivers a functional agentic data‑science stack with a clear entry point (API/main.py) and Docker support, making it viable for teams that want to automate routine analysis tasks. The main drawbacks are the lack of CI, incomplete dependency locking, and potential security concerns around sandboxed execution. It is best suited for organizations that can allocate resources to harden the runtime environment and integrate the API into their own orchestration layer.