Skip to main content

aidp-mlops

Track ML work in AIDP's MLflow-compatible MLOps — experiments, runs, metrics/params, registered models, and model versions. Use when the user wants to log/track experiments, list runs or metrics, register a model, transition a model-version stage, or query the model registry. Primary engine is the official `aidp` CLI (`aidp mlops …`); the same Preview MLflow REST API via `oci raw-request` is the no-CLI fallback. Verify live first.

Jump to install

Source facts

Repository
oracle-samples/oracle-aidp-samples
Last source activity
June 24, 2026 at 07:21
Detected SKILL.md language
English
Stars
47
Forks
32

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
aidp-mlops
description
Track ML work in AIDP's MLflow-compatible MLOps — experiments, runs, metrics/params, registered models, and model versions. Use when the user wants to log/track experiments, list runs or metrics, register a model, transition a model-version stage, or query the model registry. Primary engine is the official `aidp` CLI (`aidp mlops …`); the same Preview MLflow REST API via `oci raw-request` is the no-CLI fallback. Verify live first.
# `aidp-mlops` — MLflow experiments & model registry (Preview) Interact with AIDP's MLflow-compatible MLOps surface. This is AIDP-native MLOps — distinct from OCI Data Science. **CLI (preferred):** `aidp mlops <command> --instance-id <DATALAKE_OCID> --auth api_key --profile DEFAULT --region <r>` - Experiments/runs: `aidp mlops list-experiments | create-experiment | list-experiment-runs | log-experiment-run-metric` - Registry: `aidp mlops list-registered-models | create-registered-model | create-model-version | transition-model-version-stage` - **Full surface = 46 subcommands** — see the grouped command index below (experiments / runs / registered-models / model-versions / tags / artifacts). **Fallback (no CLI):** same MLflow REST surface via `oci raw-request` (identical endpoint + auth; see `references/oci-raw-request.md`). > **Preview + verify-first (no-fabrication):** MLOps is **Preview**. Probed 2026-06-10: > `GET …/workspaces/<ws>/mlops/api/2.0/mlflow/experiments/search` → **404** — either MLOps isn't provisioned > in this tenancy, or (likely) the MLflow endpoints are **POST-shaped** (`experiments/search` is a POST in > MLflow). Confirm the working path/verb with a live `aidp mlops list-experiments` (CLI) before relying on > the REST surface; record in `references/rest-endpoint-map.md`. Don't assert unverified endpoints. ## When to use - "Track/log an experiment or run", "list runs/metrics", "register a model", "promote a model version", "query the model registry". ## Workflow 1. **Verify** with `aidp mlops list-experiments` (CLI) — or `experiments/search` (REST fallback; auth ladder). 2. Standard MLflow patterns: create/find an experiment → create a run → log params/metrics → register the model → create/transition a model version. Bodies follow the MLflow REST schema. 3. For training itself, run code in a notebook (`aidp-notebooks`) and log to MLOps from there. **Mutating ops** (`create-experiment`, run logging, `create-registered-model`, `create-model-version`, `transition-model-version-stage`): persist the body to `.aidp/payloads/` and confirm first ([references/payloads.md]($HOME/.aidp/references/payloads.md)). ### Full `aidp mlops` command index (46 subcommands) All `(Preview)`. Positional args differ by group: **experiment/run/artifact** commands take `<DLID> <WS>` (workspace-scoped); **registered-model/model-version** commands take **`<DLID>` only** (no `<WS>`). `--body <JSON>` rows are mutating *or* POST-search reads — persist the body to `.aidp/payloads/` and confirm first ([references/payloads.md]($HOME/.aidp/references/payloads.md)). Field names below are confirmed from `docs/cli/README.md` mlops section (lines 2455–4049). Source: CLI README §ML Ops. **Experiments** (`<DLID> <WS>`) | Command | Mutates? | Body / options (required *) | |---|---|---| | `list-experiments` | read (POST) | body `ListExperimentsDetails`: `filter` · `max_results` · `order_by[]` · `page_token` · `view_type` (`ACTIVE_ONLY`\|`DELETED_ONLY`\|`ALL`) | | `get-experiment-by-id` | read | opt `--experiment-id*` (works on deleted experiments) | | `get-experiment-by-name` | read | opt `--experiment-name*` (prefers active on name clash) | | `create-experiment` | yes | body `CreateExperimentDetails`: `name*` · `artifact_location` · `tags[]` (each `ExperimentTag {key*,value}`) | | `update-experiment` | yes | body `UpdateExperimentDetails`: `experiment_id*` · `new_name` | | `delete-experiment` | yes | body `DeleteExperimentDetails`: `experiment_id*` | | `restore-experiment` | yes | body `RestoreExperimentDetails`: `experiment_id*` | **Experiment runs** (`<DLID> <WS>`) | Command | Mutates? | Body / options (required *) | |---|---|---| | `list-experiment-runs` | read (POST) | body `ListExperimentRunsDetails`: `experiment_ids[]` · `filter` · `max_results` · `order_by[]` · `page_token` · `run_view_type` (`ACTIVE_ONLY`\|`DELETED_ONLY`\|`ALL`) | | `get-experiment-run-by-id` | read | opt `--run-id*` | | `get-experiment-run-metric-history` | read | opt `--run-id* --metric-key*` · `--page-token --max-results` | | `list-artifacts` | read | opt `--run-id*` · `--path --page-token` | | `list-logged-models` | read (POST) | body `ListLoggedModelsDetails`: `experiment_ids[]` · `filter` · `max_results` · `order_by[]` (each `LoggedModelOrder {field_name*,ascending}`) · `page_token` | | `create-experiment-run` | yes | body `CreateExperimentRunDetails`: `experiment_id` · `run_name` · `start_time` · `tags[]` (`ExperimentRunTag {key,value}`) | | `update-experiment-run` | yes | body `UpdateExperimentRunDetails`: `run_id*` · `end_time` · `run_name` · `status` (`RUNNING`\|`SCHEDULED`\|`FINISHED`\|`FAILED`\|`KILLED`\|`INTERNAL_ERROR`) | | `delete-experiment-run` | yes | body `DeleteExperimentRunDetails`: `run_id*` | | `restore-experiment-run` | yes | body `RestoreExperimentRunDetails`: `run_id*` | | `log-experiment-run-metric` | yes | body `LogExperimentRunMetricDetails`: `key* run_id* timestamp* value*` · `step` | | `log-experiment-run-param` | yes | body `LogExperimentRunParamDetails`: `key* run_id* value*` | | `log-experiment-run-model` | yes | body `LogExperimentRunModelDetails`: `model_json* run_id*` | | `log-experiment-run-inputs` | yes | body `LogExperimentRunInputsDetails`: `run_id*` · `dataset_inputs[]` (`DatasetInput {dataset*,tags[]}`; `Dataset {digest*,name*,source*,source_type*,profile,schema}`; `InputTag {key*,value*}`) | | `log-experiment-run-batch` | yes | body `LogExperimentRunBatchDetails`: `run_id*` · `metrics[]` (`ExperimentRunMetric {key,value,timestamp,step}`) · `params[]` (`ExperimentRunParam {key,value}`) · `tags[]` (`ExperimentRunTag {key,value}`) | **Experiment / run tags** (`<DLID> <WS>`) | Command | Mutates? | Body (required *) | |---|---|---| | `set-experiment-tag` | yes | `SetExperimentTagDetails`: `experiment_id* key* value*` | | `delete-experiment-tag` | yes | `DeleteExperimentTagDetails`: `experiment_id* key*` | | `update-experiment-tags` | yes | `UpdateExperimentTagsDetails`: `experiment_id*` · `set_tags[]` (`ExperimentTag {key*,value}`) · `delete_tags[]` (`ExperimentTagKey {key*}`) | | `set-experiment-run-tag` | yes | `SetExperimentRunTagDetails`: `run_id* key* value*` | | `delete-experiment-run-tag` | yes | `DeleteExperimentRunTagDetails`: `run_id* key*` | | `update-experiment-run-tags` | yes | `UpdateExperimentRunTagsDetails`: `run_id*` · `set_tags[]` (`ExperimentRunTag {key,value}`) · `delete_tags[]` (`ExperimentRunTagKey {key*}`) | **Registered models** (`<DLID>` only — no `<WS>`) | Command | Mutates? | Body / options (required *) | |---|---|---| | `list-registered-models` | read | opt `--filter --max-results` (default 100, max 1000) `--page-token --order-by` | | `get-registered-model` | read | opt `--name*` | | `create-registered-model` | yes | body `CreateRegisteredModelDetails`: `name*` · `description` · `deployment_job_id` · `tags[]` (`RegisteredModelTag {key,value}`) | | `update-registered-model` | yes | body `UpdateRegisteredModelDetails`: `name*` · `description` · `deployment_job_id` | | `rename-registered-model` | yes | body `RenameRegisteredModelDetails`: `name*` · `new_name` | | `delete-registered-model` | yes | body `DeleteRegisteredModelDetails`: `name*` | | `set-registered-model-tag` | yes | body `SetRegisteredModelTagDetails`: `name* key* value*` | | `delete-registered-model-tag` | yes | body `DeleteRegisteredModelTagDetails`: `name* key*` | | `update-registered-model-tags` | yes | body `UpdateRegisteredModelTagsDetails`: `name*` · `set_tags[]` (`RegisteredModelTag {key,value}`) · `delete_tags[]` (`RegisteredModelTagKey {key*}`) | **Model versions** (`<DLID>` only — except `create-workspace-model-version` which is `<DLID> <WS>`) | Command | Mutates? | Body / options (required *) | |---|---|---| | `list-model-versions` | read | opt `--filter --max-results --page-token --order-by` | | `get-model-version` | read | opt `--name* --version*` | | `create-model-version` | yes | body `CreateModelVersionDetails`: `name* source*` · `description` · `model_id` · `run_id` · `run_link` · `tags[]` (`ModelVersionTag {key,value}`) | | `create-workspace-model-version` | yes | `<DLID> <WS>` · body `CreateModelVersionDetails` (same fields as above) | | `update-model-version` | yes | body `UpdateModelVersionDetails`: `name* version*` · `description` | | `delete-model-version` | yes | body `DeleteModelVersionDetails`: `name* version*` | | `transition-model-version-stage` | yes (impactful) | body `TransitionModelVersionStageDetails`: `name* version* stage* archive_existing_versions*` — `stage` is a free string in the SDK (no enum constants); confirm valid stage names live before relying on them | | `set-model-version-tag` | yes | body `SetModelVersionTagDetails`: `name* version* key* value*` | | `delete-model-version-tag` | yes | body `DeleteModelVersionTagDetails`: `name* version* key*` | | `update-model-version-tags` | yes | body `UpdateModelVersionTagsDetails`: `name* version*` · `set_tags[]` (`ModelVersionTag {key,value}`) · `delete_tags[]` (`ModelVersionTagKey {key*}`) | > Timestamps (`start_time`/`end_time`/metric `timestamp`) are **Unix epoch milliseconds** (per SDK field docs). > The 13 tag commands are: `set-`/`delete-`/`update-` × {`experiment`, `experiment-run`, `model-version`, > `registered-model`} tag(s) — note `update-*-tags` (plural) takes batched `set_tags`/`delete_tags` arrays. ### Fallback (no CLI) — REST endpoints (workspace-scoped MLflow; Preview, try `20260430` → `20240831`) Base: `…/workspaces/{ws}/mlops/api/2.0/mlflow/…` - Experiments: `experiments/create|search|get` - Runs: `runs/create|update|search|get` · `runs/log-metric|log-parameter|log-batch` - Registered models: `registered-models/create|get|search` - Model versions: `model-versions/create|get|search|transition-stage` ## Guardrails - Stage transitions (e.g. to Production) are impactful — confirm. - Preview surface may shift — cite live status; don't assert unverified endpoints. ## References - [references/aidp-cli-map.md]($HOME/.aidp/references/aidp-cli-map.md) (skill → CLI map) · [references/payloads.md]($HOME/.aidp/references/payloads.md) (persist + confirm bodies) ·
View on GitHub
This SKILL.md is very large, so SkillsMP previews the first section here. View on GitHub