agenticml-py
Python SDK for the AgenticML experiment-tracking platform — metrics, config, code snapshots, artifacts, media, and system metrics.
⚠️ Pre-alpha. The public API is not yet stable. Pin exact versions if you depend on this.
📦 Note on naming: install as
agenticml-py, import asagenticml.
Install
pip install agenticml-py
# Optional extras
pip install "agenticml-py[system]" # CPU/RAM/disk system metrics
pip install "agenticml-py[gpu]" # NVIDIA GPU metrics
pip install "agenticml-py[media]" # Image logging from numpy/PIL
Quickstart
import agenticml
agenticml.init(
project="demo",
name="exp1",
config={"learning_rate": 0.01, "epochs": 10},
tags=["baseline"],
)
for step in range(10):
agenticml.log({"loss": 1 / (step + 1), "accuracy": step / 10}, step=step)
agenticml.summary["best_loss"] = 0.1
agenticml.finish()
What you get
- Module-level API:
init / log / finish / config / summary / log_artifact. One active run per process, like wandb. ARunclass is also exported for multi-run cases and as a context manager. - Auto-incrementing step with optional
commit=Falseto merge metrics from multiple sources at the same step. - Runtime source snapshots: project code actually imported and project files actually opened for reading.
track_model(model)copies architecture.py(plusagenticml/model.json) without uploadingsite-packages.track_optimizer/track_loss/track_dataloadercapture class identity and hyperparameters the same way. Content-addressed: re-runs only upload bytes the server doesn't have. 10 MB/file and 100 MB total caps by default. - Artifacts with auto-versioning:
agenticml.log_artifact(path, name, type, metadata). - Media:
agenticml.Image(data, caption)accepts paths, bytes, PIL.Image, or numpy arrays. - System metrics: psutil (CPU/RAM/disk) and pynvml (GPU) sampled in the background and logged as
_system/.... - Resume:
init(id=..., resume="allow"|"must"). - Offline mode:
mode="offline"(orAGENTICML_MODE=offline) writes a journal locally;offline_dir=chooses the folder (elseAGENTICML_OFFLINE_DIR/~/.agenticml/offline).agenticml syncreplays it. - Distributed-aware: standard rank env vars detected; non-rank-0 ranks become silent no-ops.
Configuration
| Env var | Default | Purpose |
|---|---|---|
AGENTICML_HOST |
https://api.agenticml.xyz |
Server base URL |
AGENTICML_API_KEY |
(none) | Sent in the x-api-key header |
AGENTICML_MODE |
online |
online, offline, or disabled |
AGENTICML_OFFLINE_DIR |
~/.agenticml/offline |
Fallback offline journal root |
init(..., offline_dir=...) is offline-only and overrides AGENTICML_OFFLINE_DIR. Passing it with mode="online" or mode="disabled" raises ValueError. init(..., verbose=True) prints the run id and resolved asset paths (or host) to stdout after the run exists.
Source tracking
Runtime-used tracking is enabled by default. AgenticML observes source modules
and input files while the run is active, then creates and uploads a SHA-256
manifest during finish().
agenticml.init(
project="demo",
name="training",
track_source="runtime", # default
source_roots=["../shared_templates"],
extra_files=["settings.yaml"],
)
| File category | Default behavior |
|---|---|
| Entrypoint and project-local imported Python modules | Tracked automatically |
| Project-local configs, templates, and other regular files opened for reading | Tracked automatically |
Files below a configured source_roots directory that are imported or read |
Tracked automatically |
Files passed through extra_files or track_files() |
Tracked explicitly |
Architecture source of an instantiated module via track_model() |
Copied into the snapshot under model/ plus agenticml/model.json; original env paths stay excluded |
Optimizer, loss, and dataloader via track_optimizer() / track_loss() / track_dataloader() |
Metadata JSON under agenticml/ plus custom .py copies; torch stdlib source and dataset contents are not uploaded |
Virtual environments, site-packages, dist-packages, and __pypackages__ |
Always excluded; package versions are captured separately |
Packaging products (*.egg*, *.dist-info, wheels, build/, dist/) |
Always excluded as generated installation artifacts |
| Other third-party packages outside the allowed roots | Excluded |
| Write-only/generated outputs | Excluded; use log_artifact() or track_files() |
.git, virtual environments, caches, node_modules, ignored paths |
Excluded |
| Files over the configured per-file or total size limits | Excluded and reported as skipped |
track_source="repo" retains the earlier full-repository walk with static AST
import discovery. track_source=True is a compatibility alias for
"runtime"; False disables source tracking. .gitignore and
.agenticmlignore apply to automatic discovery in runtime and repository
modes; an explicit extra_files/track_files() path overrides those patterns.
Call track_model after the object exists if you need the defining source of
one third-party (or local) architecture class. Site-packages remain excluded
from automatic scans; only the staged copies are attached. Optimizer, loss,
and dataloader objects use the same pattern — hyperparameters and class
identity, not weights, tensors, or dataset files. init(model=) /
init(optimizer=) are not supported; call the track_* helpers after the
objects exist:
agenticml.init(project="demo", name="asr")
model = Wav2Vec2ForCTC.from_pretrained("facebook/wav2vec2-base-960h")
optimizer = torch.optim.AdamW(model.parameters(), lr=1e-4)
criterion = torch.nn.CrossEntropyLoss()
agenticml.track_model(model)
agenticml.track_optimizer(optimizer)
agenticml.track_loss(criterion)
agenticml.track_dataloader(train_loader, name="train")
agenticml.track_dataloader(val_loader, name="val")
Resource reads before agenticml.init() cannot be observed, so pass those
files through extra_files. Imported modules already present in
sys.modules are still detected. Snapshot contents are read at finish();
files deleted before then are listed as missing rather than uploaded.
See Runtime source tracking for lifecycle, safety, migration, and troubleshooting details.
Offline mode
agenticml.init(
project="demo",
name="asr",
mode="offline",
offline_dir="/data/experiments/agenticml", # optional; else env / ~/.agenticml/offline
verbose=True, # print run id + journal/code/artifacts/media paths
)
Assets land in <offline_dir>/<run_id>/ (journal.jsonl, code/, artifacts/, media/). offline_dir is rejected unless the resolved mode is "offline".
AGENTICML_MODE=offline python train.py
# ...later, from a machine with network access:
agenticml sync --dir /data/experiments/agenticml --host https://api.agenticml.xyz --api-key $AGENTICML_API_KEY
Development
git clone https://github.com/agenticML/agenticml.git
cd agenticml
pip install -e ".[dev]"
pytest
Releasing
Releases are published to PyPI via GitHub Actions on tags matching v*:
# bump version in pyproject.toml and src/agenticml/__init__.py
git commit -am "release: v0.0.3"
git tag v0.0.3
git push --tags
License
MIT — see LICENSE.
Release files for agenticml-py 0.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agenticml_py-0.0.5.tar.gz | 53.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agenticml_py-0.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 96.7 kB
Release files / agenticml_py-0.0.5.tar.gz
| Download URL | agenticml_py-0.0.5.tar.gz |
|---|---|
| Size | 53.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
044d508957007649732f96b611ae65a7c0e22689a6157932174efa79af8b4d8e
|
|
BLAKE2b-256 checksum How to use checksums |
0badbd245e224a402150166ec4b7964fd1d5a0d9694cab0c59bff19ad17e3150
|
| 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 Sep 21, 2026.
Transparency logRelease files / agenticml_py-0.0.5-py3-none-any.whl
| Download URL | agenticml_py-0.0.5-py3-none-any.whl |
|---|---|
| Size | 42.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b6244214ce613e0ea790fa5adc735077cfa0246ea25ffa3c216ce67635eff68b
|
|
BLAKE2b-256 checksum How to use checksums |
2cd7cc42a37c3ce14af84a7a93f3ccea52ded43547482868f059c8760e2cbc6a
|
| 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 Sep 21, 2026.
Transparency log