Skip to content

sb-ai-lab/AutoDS-Tools

Repository files navigation

AutoDS-Tools

Python 3.12+ License LangGraph

Multi-agent AutoDS system that can work with any DS/ML library.

Demo

Watch the Video on YouTube

Watch the video

Workspace Layout

AutoDS-Tools/
├── apps/
│   ├── cli/          # autods CLI entry point
│   ├── frontend/     # Next.js UI
│   └── server/       # FastAPI backend
├── packages/
│   ├── autods/       # core agent library
│   └── pygrad/       # publishable GRAD package
├── docker/           # local compose assets
├── pyproject.toml    # uv workspace root
└── justfile

Architecture

AutoDS-Tools Architecture

The main workflow:

  1. Analyst explores the task and data.
  2. Researcher studies relevant libraries through GRAD.
  3. Planner creates an execution strategy.
  4. Coder implements and debugs the solution.
  5. Presenter audits and summarizes the result.

Prerequisites

  • Python 3.12+
  • uv
  • Node.js 18+ and npm for the frontend
  • Docker

Setup

Python workspace

just install

That runs uv sync --all-packages and installs all Python workspace members into the shared workspace environment.

Frontend

cd apps/frontend
npm install

Configuration

AutoDS reads its model runtime configuration from environment variables.

Minimal .env example:

AUTODS_MODEL=gpt-5
AUTODS_API_KEY=sk-your-key
AUTODS_BASE_URL=https://api.openai.com/v1

Optional advanced request settings:

AUTODS_MAX_RETRIES=3
AUTODS_MODEL_KWARGS_JSON={"temperature":0.2}
AUTODS_EXTRA_BODY_JSON={"reasoning":{"effort":"medium"}}
AUTODS_DEFAULT_HEADERS_JSON={"X-Title":"AutoDS"}

The runtime supports OpenAI-compatible request/response schema only. To switch backends, point AUTODS_BASE_URL at a compatible gateway such as OpenAI, OpenRouter, LiteLLM, vLLM, or an OpenAI-compatible Ollama endpoint.

Running The System

Server

uv run autods-web
# or
uv run autods server

The API listens on http://localhost:8000 by default.

Frontend

just frontend-dev

The UI runs on http://localhost:3000.

The frontend uses NEXT_PUBLIC_API_URL when it is set.

Without that variable:

  • local browser development on localhost / 127.0.0.1 falls back to http://<host>:8000
  • non-local browser hosts fall back to the current origin for same-origin proxy deployments

Set apps/frontend/.env.local if you want an explicit local override, for example:

NEXT_PUBLIC_API_URL=http://localhost:8000

CLI

uv run autods --help
uv run autods chat
uv run autods exec "Solve this classification task using LightAutoML"
uv run autods resume <session-id>
uv run autods server

CLI behavior:

  • if --server-url or AUTODS_SERVER_URL is set, the CLI talks to that hosted server
  • otherwise, chat, exec, and resume auto-start a local server on 127.0.0.1:8000 if needed
  • the CLI stores a persistent principal token in ~/.autods/cli_principal_token
  • browser and CLI can share the same hosted session namespace if they use the same principal identity

Examples:

# Run locally with environment-based model config
AUTODS_MODEL=gpt-5 \
AUTODS_API_KEY=sk-your-key \
AUTODS_BASE_URL=https://api.openai.com/v1 \
uv run autods exec "Train a baseline model"

# Start an explicit local server
uv run autods server

# Run against a remote server
AUTODS_SERVER_URL=http://my-host:8000 uv run autods exec "Train a baseline model"

# Override server URL per command
uv run autods exec --server-url http://my-host:8000 "Analyze this dataset"

GRAD

GRAD is the documentation and graph-retrieval layer used by the agent when it needs to understand external libraries.

Package sources and docs live under packages/pygrad.

License

See LICENSE.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors