SkillAgentSearch skills...

Scout

🎯 Production-ready hyperparameter optimization for Elixir with >99% Optuna parity, BEAM platform advantages, and complete Docker/K8s infrastructure

Install / Use

/learn @jmanhype/Scout
About this skill

Quality Score

0/100

Category

Operations

Supported Platforms

Universal

README

Scout

Hyperparameter optimization library for Elixir. Umbrella project with the core library in apps/scout_core.

Implements samplers, pruners, and search-space primitives found in Python's Optuna, running on BEAM for process-level fault isolation and optional multi-node distribution.

Status

| Metric | Value | |--------|-------| | Version | 0.3.0 (umbrella), 0.3.3 (scout_core) | | Elixir | >= 1.14 | | Runtime deps (scout_core) | 4 (telemetry, telemetry_metrics, telemetry_poller, jason) | | Optional deps | 3 (ecto_sql, postgrex, oban -- for Postgres backend) | | Modules (.ex) | 89 | | Test files | 31 | | CI | GitHub Actions -- last run cancelled (Dec 2025) | | Hex published | No |

What it does

  • Defines a search space, runs trials across that space, records results.
  • 23 sampler implementations (TPE variants, CMA-ES, NSGA-II, QMC, GP, Random, Grid).
  • 7 pruner implementations (Median, Percentile, Patient, Threshold, Wilcoxon, SuccessiveHalving, Hyperband).
  • Storage backends: ETS (default, no database) or Postgres.
  • Optional Axon integration for neural-network hyperparameter tuning.
  • Optional Phoenix LiveView dashboard for monitoring studies.

Umbrella layout

apps/
  scout_core/       # Core library: samplers, pruners, store, search space
    lib/
      sampler/      # 23 sampler modules
      pruner/       # 7 pruner modules
      store/        # ETS and Postgres adapters
      executor/     # Local, iterative, and Oban-backed executors
      mix/tasks/    # scout.demo, scout.info, scout.study
    benchmark/      # Benchmark scripts (pruner, sampler, scaling)
    test/

Quick start

git clone https://github.com/jmanhype/scout
cd scout
mix deps.get
cd apps/scout_core
mix test
Application.ensure_all_started(:scout_core)

result = Scout.Easy.optimize(
  fn params -> train_model(params) end,
  %{learning_rate: {:log_uniform, 1e-5, 1e-1}, n_layers: {:int, 2, 8}},
  n_trials: 100
)

Dependencies (scout_core)

| Dependency | Purpose | Required | |-----------|---------|----------| | telemetry | Event emission | Yes | | telemetry_metrics | Metric definitions | Yes | | telemetry_poller | Periodic measurements | Yes | | jason | JSON encoding | Yes | | ecto_sql | Postgres storage | No | | postgrex | Postgres driver | No | | oban | Background job execution | No |

Limitations

  • Not published to Hex.
  • CI is not currently passing (last run was cancelled).
  • The ">99% Optuna parity" claim in the repo description is not verified by automated regression tests. Parity scripts exist but require manual execution and Python installed alongside.
  • Phoenix dashboard code is referenced but lives outside the core library; setup is not documented end-to-end.
  • No production deployment evidence.

License

MIT

View on GitHub
GitHub Stars9
CategoryOperations
Updated8d ago
Forks1

Languages

Elixir

Security Score

85/100

Audited on Mar 25, 2026

No findings