Adapt Autosklearn¶
Optional MLJAR AutoML adapter for the MVP workspace. MCP exposes 11 tools.
Cluster: Uncategorised | Type: component | MCP Tools: 15
Overview¶
MLJAR-first AutoML adapter kept under the historical adapt_autosklearn name for compatibility. The preferred backend is MLJAR (mljar-supervised); auto-sklearn naming and execution are compatibility-only. When MLJAR is unavailable, the component surfaces that dependency gap through capability discovery, structured degradation, and warning cards. Non-production requests may still use the deterministic majority-classifier (classification) or mean-regressor (regression) baseline; production mode blocks that fallback.
When to use:
- When you want MLJAR AutoML search, structured reports, artifact manifests, and explicit dependency health through G6's AIBlock interface
- On any platform when you want a deterministic baseline (majority class / mean) with a loud
qualified-draftreliability envelope - As a sanity-check baseline in adapt_automl benchmarking -- the fallback's accuracy bounds the real AutoML's value-add
Example:
from mvp.adapt_autosklearn import AdaptAutoSklearnBlock, AutoSklearnInput
block = AdaptAutoSklearnBlock(name="autosklearn")
result = block.infer(AutoSklearnInput(
X=[[1.0, 2.0], [2.0, 3.0], [3.0, 4.0]], # n_samples x n_features
y=[0, 0, 1], # class labels for classification
task="classification", # or "regression" / "auto"
mode="fit_predict", # or "fit" / "predict"
time_left_for_this_task=60, # MLJAR total search budget (sec)
allow_fallback=True, # production_mode=True still blocks fallback
))
# With MLJAR installed:
# result.value.backend == "mljar"; reports and artifact_manifest are populated
# With MLJAR absent in non-production mode:
# result.value.backend == "fallback"
# result.value.best_model == "majority_classifier"
# result.value.predictions == [0, 0, 0]
# result.value.score == 0.6667 (2/3 labels were 0)
# result.value.completion_state == "qualified-draft"
# result.value.warning_card explains that real AutoML search did not run
Works well with: adapt_automl (richer FLAML/AutoGluon/H2O AutoML when available), adapt_algo_selector (rule-based algorithm picker as a faster alternative), adapt_sklearn (manual model selection)
Public API¶
AdaptAutoSklearnBlock(AIBlock[AutoSklearnInput, AutoSklearnOutput, Any])¶
Stateful optional adapter for auto-sklearn classifiers and regressors.
| Field | Type | Default |
|---|---|---|
name | str | 'adapt_autosklearn' |
state | Any \| None | None |
Methods:
infer(data: AutoSklearnInput) -> Result[AutoSklearnOutput]¶
bias() -> dict[str, Any]¶
AutoSklearnInput(BaseModel)¶
Input for fitting or using the AutoML compatibility adapter.
| Field | Type | Default |
|---|---|---|
X | list[list[float]] | required |
y | list[float \| int \| str] | Field(default_factory=list) |
backend | Literal['auto', 'mljar', 'autosklearn'] | 'auto' |
mode | Literal['fit', 'predict', 'fit_predict'] | 'fit_predict' |
task | Literal['auto', 'classification', 'regression'] | 'auto' |
mljar_mode | Literal['Explain', 'Perform', 'Compete', 'Optuna'] | 'Explain' |
validation_strategy | str \| dict[str, Any] | 'auto' |
explain_level | int | Field(default=2, ge=0, le=2) |
results_path | str | '' |
eval_metric | str | 'auto' |
time_left_for_this_task | int | Field(default=30, ge=1, le=86400) |
per_run_time_limit | int | Field(default=10, ge=1, le=86400) |
ensemble_size | int | Field(default=1, ge=0, le=500) |
seed | int | Field(default=42, ge=0) |
n_jobs | int | Field(default=1, ge=1, le=64) |
include_estimators | list[str] | Field(default_factory=list) |
exclude_estimators | list[str] | Field(default_factory=list) |
allow_fallback | bool | True |
production_mode | bool | False |
request_id | str | '' |
task_id | str | '' |
run_id | str | '' |
AutoSklearnLeaderboardEntry(BaseModel)¶
One candidate entry reported by an AutoML backend.
| Field | Type | Default |
|---|---|---|
rank | int | required |
name | str | required |
score | float \| None | None |
params | dict[str, Any] | Field(default_factory=dict) |
DegradationNotice(BaseModel)¶
Normalized degradation notice for missing or partial backend capability.
| Field | Type | Default |
|---|---|---|
reason | str | required |
missing | list[str] | Field(default_factory=list) |
impact | str | '' |
install_hint | str | '' |
recoverable | bool | True |
BackendNativeOpRequest(BaseModel)¶
Constrained request for an allowlisted backend-native operation.
| Field | Type | Default |
|---|---|---|
operation | str | required |
input | dict[str, Any] | Field(default_factory=dict) |
safety_context | dict[str, Any] | Field(default_factory=dict) |
dry_run | bool | False |
max_runtime_ms | int | Field(default=10000, ge=1, le=300000) |
CapabilityDiscovery(BaseModel)¶
AutoML backend capability discovery payload.
| Field | Type | Default |
|---|---|---|
component | str | 'adapt_autosklearn' |
backend | str | 'mljar' |
available | bool | False |
status | str | 'missing_dependency' |
supported_modes | list[str] | Field(default_factory=list) |
supported_ops | list[str] | Field(default_factory=list) |
degraded_ops | list[str] | Field(default_factory=list) |
safety_policy | dict[str, Any] | Field(default_factory=dict) |
AutoSklearnOutput(BaseModel)¶
Result returned by AdaptAutoSklearnBlock.
| Field | Type | Default |
|---|---|---|
task | str | required |
backend | str | required |
best_model | str | required |
predictions | list[Any] \| None | None |
score | float \| None | None |
leaderboard | list[AutoSklearnLeaderboardEntry] | Field(default_factory=list) |
degraded | bool | False |
degradation_reason | str | '' |
degradation | list[dict[str, Any]] | Field(default_factory=list) |
warning_card | dict[str, Any] | Field(default_factory=dict) |
available_with | list[str] | Field(default_factory=list) |
fallback_used | bool | False |
completion_state | Literal['verified', 'qualified-draft', 'blocked-escalated'] | 'qualified-draft' |
evidence | dict[str, Any] | Field(default_factory=dict) |
request_id | str | '' |
task_id | str | '' |
run_id | str | '' |
report | dict[str, Any] | Field(default_factory=dict) |
artifact_manifest | dict[str, Any] | Field(default_factory=dict) |
explainability | dict[str, Any] | Field(default_factory=dict) |
model_cards | list[dict[str, Any]] | Field(default_factory=list) |
warnings | list[str] | Field(default_factory=list) |
agentic_evidence | dict[str, Any] | Field(default_factory=dict) |
MCP Tools¶
| Operation | Source |
|---|---|
ops | adapt_autosklearn_mcp |
help | adapt_autosklearn_mcp |
readiness_check | adapt_autosklearn_mcp |
list_strategies | adapt_autosklearn_mcp |
infer_task | adapt_autosklearn_mcp |
decide_missing_dependency | adapt_autosklearn_mcp |
explain_fallback_model | adapt_autosklearn_mcp |
list_patterns | adapt_autosklearn_mcp |
discover_capabilities | adapt_autosklearn_mcp |
dependency_health | adapt_autosklearn_mcp |
structured_report | adapt_autosklearn_mcp |
artifact_manifest | adapt_autosklearn_mcp |
backend_native_op | adapt_autosklearn_mcp |
classification | adapt_autosklearn_mcp |
regression | adapt_autosklearn_mcp |