{"id":37064926,"url":"https://github.com/dmitryglhf/scald","last_synced_at":"2026-01-14T07:35:40.946Z","repository":{"id":324098456,"uuid":"1083075597","full_name":"dmitryglhf/scald","owner":"dmitryglhf","description":"Agentic Approach to AutoML","archived":false,"fork":false,"pushed_at":"2025-12-16T15:50:35.000Z","size":3121,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-20T06:54:54.755Z","etag":null,"topics":["agent-based-modeling","ai-agents","automated-machine-learning","automl","data-science","machine-learning","python","tabular-data"],"latest_commit_sha":null,"homepage":"https://dmitryglhf.github.io/scald/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dmitryglhf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-25T09:47:04.000Z","updated_at":"2025-12-16T15:50:39.000Z","dependencies_parsed_at":"2025-11-13T21:02:34.938Z","dependency_job_id":null,"html_url":"https://github.com/dmitryglhf/scald","commit_stats":null,"previous_names":["dmitryglhf/scald"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/dmitryglhf/scald","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmitryglhf%2Fscald","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmitryglhf%2Fscald/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmitryglhf%2Fscald/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmitryglhf%2Fscald/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmitryglhf","download_url":"https://codeload.github.com/dmitryglhf/scald/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmitryglhf%2Fscald/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28413432,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T05:26:33.345Z","status":"ssl_error","status_checked_at":"2026-01-14T05:21:57.251Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-based-modeling","ai-agents","automated-machine-learning","automl","data-science","machine-learning","python","tabular-data"],"created_at":"2026-01-14T07:35:40.297Z","updated_at":"2026-01-14T07:35:40.933Z","avatar_url":"https://github.com/dmitryglhf.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"./assets/logo.svg\" alt=\"logo\" width=\"200\"/\u003e\n\n# SCALD\n\n### Scalable Collaborative Agents for Data Science\n\n[![Python 3.11+](https://img.shields.io/badge/python-3.11+-white.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-white.svg)](https://opensource.org/licenses/MIT)\n[![Documentation](https://img.shields.io/badge/docs-online-white.svg)](https://dmitryglhf.github.io/scald/)\n\n\u003c/div\u003e\n\n## Overview\n\nScald automates machine learning workflows through collaborative AI agents using the Actor-Critic pattern. The Actor agent explores data, engineers features, and trains models using five specialized MCP servers. The Critic agent evaluates solutions and provides targeted feedback for iterative refinement. This approach combines LLM-powered reasoning with gradient boosting algorithms (CatBoost, LightGBM, XGBoost) for both classification and regression tasks.\n\nThe system learns from past experiences through ChromaDB-based memory, enabling transfer learning across datasets. Each iteration produces executable code artifacts, comprehensive logs, and cost tracking for full reproducibility.\n\n## Installation\n\nInstall from PyPI:\n\n```bash\npip install scald\n```\n\nConfigure API credentials:\n\n```bash\ncp .env.example .env  # Add your OpenRouter API key\n```\n\nFor development work, clone the repository and install with all dependencies:\n\n```bash\ngit clone https://github.com/dmitryglhf/scald.git\ncd scald\nuv sync\n```\n\n## Usage\n\nRun AutoML from the command line:\n\n```bash\nscald --train data/train.csv --test data/test.csv --target price --task-type regression\n```\n\nOr use the Python API:\n\n```python\nfrom scald import Scald\nimport polars as pl\n\nscald = Scald(max_iterations=5)\n\n# Option 1: Using CSV file paths\npredictions = await scald.run(\n    train=\"data/train.csv\",\n    test=\"data/test.csv\",\n    target=\"target_column\",\n    task_type=\"classification\",\n)\n\n# Option 2: Using DataFrames (Polars or Pandas)\ntrain_df = pl.read_csv(\"data/train.csv\")\ntest_df = pl.read_csv(\"data/test.csv\")\n\npredictions = await scald.run(\n    train=train_df,\n    test=test_df,\n    target=\"target_column\",\n    task_type=\"classification\",\n)\n```\n\nThe Actor-Critic loop executes for the specified iterations (default: 5), producing predictions and saving all artifacts to a timestamped session directory.\n\n## Architecture\n\n\u003cimg src=\"./assets/arch.svg\" alt=\"arch\"/\u003e\n\nThe Actor agent has access to specialized MCP servers for data preview, statistical analysis, preprocessing, model training, file operations, and structured reasoning. The Critic agent reviews solutions without tool access to maintain evaluation objectivity. This separation enables independent verification while the memory system accumulates experience for improved performance on similar tasks.\n\n## Documentation\n\nFull documentation available at [dmitryglhf.github.io/scald](https://dmitryglhf.github.io/scald/)\n\nServe locally:\n\n```bash\nuv sync --group docs\nmkdocs serve\n```\n\n## Development\n\nInstall development dependencies:\n\n```bash\nuv sync --group dev\n```\n\nRun tests and code quality checks:\n\n```bash\njust test      # Run tests\njust lint      # Check code quality\njust format    # Format code\njust --list    # Show all commands\n```\n\n## Requirements\n\nPython 3.11+, uv package manager, and an API key from OpenRouter or compatible LLM provider.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmitryglhf%2Fscald","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmitryglhf%2Fscald","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmitryglhf%2Fscald/lists"}