agentic-ml
An agentic framework that tackles a data scientist's machine learning problems with LLM agents. Instead of a fixed AutoML search space, an agent writes and runs real training code in an experimentation loop, keeps an auditable record of every trial, and exports a lightweight, production-ready model.
Status: early prototype. The first (and currently only) supported task is tabular regression. Agent-written trials may only use
numpy,pandasandscikit-learnas ML dependencies — this keeps the evaluation environment predictable, but also means no deep learning / gradient-boosting libraries (e.g. XGBoost, LightGBM, PyTorch) are available yet. The sandbox that runs agent-written code is intentionally naive: see Security note for exactly what it does and does not protect against.
Table of Contents
Installation
Requires Python 3.11 (this project currently pins >=3.11,<3.12).
uv add jcaste05-agentic-ml # base install: the light production model only
uv add "jcaste05-agentic-ml[research]" # adds Strands, the agent runtime that drives research
jcaste05-agentic-ml[research] installs strands-agents itself but not a specific LLM provider.
Strands ships each provider as its own extra, so you pick whichever one matches the LLM API you
want the research agent to use, e.g.:
uv add "strands-agents[gemini]" # Google Gemini
uv add "strands-agents[openai]" # OpenAI-compatible endpoints
See the Strands Agents docs for the full list of supported model providers and how to configure each one.
If you only need AgenticModel to serve an already-exported model in production, skip
[research] entirely: it depends solely on numpy, pandas, scikit-learn and joblib.
Links of interest
- Quick example — a runnable
end-to-end tutorial notebook (tabular regression on the scikit-learn
diabetesdataset). - Documentation — architecture overview and full API reference generated from the source code's docstrings.
Security note
Research and AgenticModel.load execute Python code produced by the agent (or
previously saved by it). Every trial is run out-of-process by a naive sandbox
(core/sandbox.py), which only provides:
- A hard timeout on the subprocess (
timeoutinresearch(...)), so a hung trial doesn't stall the whole run. - Environment variable filtering: any variable whose name contains
KEY,TOKEN,SECRET,PASSWORD,PASSWDorCREDENTIALis stripped before launching the subprocess, to reduce accidental secret leakage into agent-written code. - A prompt-level (not enforced) instruction telling the agent to only use
numpy,pandasandscikit-learn.
It does not provide process isolation, filesystem or network sandboxing, or CPU/memory limits — the subprocess runs as the same user, with the same filesystem and network access as your own process. Treat agent-written code and saved artifacts with the same trust level as a pickle: only run/load artifacts you produced or trust.
Development
uv sync --all-extras
uv run ruff check .
uv run ruff format . --check --diff
uv run pytest
To preview the documentation locally:
uv run mkdocs serve
License
Apache-2.0.
Metadata
Release files for jcaste05-agentic-ml 0.2.0
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 | |
|---|---|---|---|---|
| jcaste05_agentic_ml-0.2.0.tar.gz | 129.7 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jcaste05_agentic_ml-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 169.9 kB
Release files / jcaste05_agentic_ml-0.2.0.tar.gz
| Download URL | jcaste05_agentic_ml-0.2.0.tar.gz |
|---|---|
| Size | 129.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dc4ee2aaee3e7e9b41592d90f80ec5816f8d674ee332ede254910e4ccaff32a7
|
|
BLAKE2b-256 checksum How to use checksums |
c2a232d3bd56deb1db1acd0b220b7f62fc419858fccac1d78857d8452551670b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logRelease files / jcaste05_agentic_ml-0.2.0-py3-none-any.whl
| Download URL | jcaste05_agentic_ml-0.2.0-py3-none-any.whl |
|---|---|
| Size | 40.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bfff4b3895530e24aafb80be2577476275c01821433d24c1c742d570c3916f78
|
|
BLAKE2b-256 checksum How to use checksums |
33ad663e05ac3e634b5c92c0a98ff104b59816d6a97f307acc8e52f74381e914
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Oct 1, 2026.
Transparency logSecurity for jcaste05-agentic-ml 0.2.0
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 jcaste05_agentic_ml-0.2.0.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 Oct 1, 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.