Dynamo Sweeper Integration
AI Simulate’s Sweeper core does not depend on Dynamo. Dynamo owns its optional Planner and Router
sweep configuration providers and DynamoReplayRunnerFactory.
Install
The supported prebuilt environment is the dynamo-planner image. The image stages and installs the
published aisimulate==0.1.0.dev1 wheel alongside the Dynamo wheels. Dynamo’s Rust workspace
resolves aisimulate-core==0.1.0-dev.1 from crates.io.
For Dynamo source development, install the published AI Simulate wheel and build the matching Dynamo bindings:
The repository does not yet provide an ai-dynamo[simulation] extra. Add that extra only after the
full AI Simulate and Replay refactor has a supported distribution path.
Run a Dynamo Sweep
Compose the runtime directly:
There is no --enable-dynamo flag. Selecting a Dynamo adapter in configuration and injecting the
Dynamo runner are the explicit composition points.
Dynamo Providers
The ai-dynamo distribution registers these entry points:
Each adapter value is a search space, not one concrete Planner or Router config:
The legacy flat Planner preset lists remain accepted for backward compatibility but emit a
FutureWarning. They will be removed after the 1.5 release. Nest each list under its sub-item’s
preset field.
Each Planner preset sub-item owns a complete knob set:
Named presets and custom mappings are validated against the complete sub-item. The provider fills family defaults for conditionally inactive predictor knobs before validation.
The Planner provider derives load-predictor parameters from all configured scaling intervals during
generate_search_space. Enabled candidates materialize a concrete PlannerConfig runtime hook.
The Router provider materializes either round-robin behavior without a hook or a concrete KV-router
hook.
Replay Composition
DynamoReplayRunnerFactory converts each serializable ReplaySpec into an invocation of the
shared AI Simulate Replayer. It resolves materialized Planner and Router hooks into Dynamo-owned
scaling and placement policies, while the Replayer continues to own traffic execution and report
generation.
The runner passes trace, fixed, or KV-load-derived closed-loop concurrency through
ReplaySpec.concurrency. It applies a goodput SLA only when goal.sla is configured; this SLA is
independent of the Planner’s scaling SLA. A dynamo.router:placement_policy@1 hook selects the
Dynamo placement policy. Without that hook, the Replayer uses its built-in round-robin policy.