Acme Core Workflows
Use this sub-skill when an agent needs to assemble or debug the framework-level Acme loop before choosing a JAX, TensorFlow/Sonnet, or distributed backend.
Read First
- Start with Core API contracts for exact signatures, method ordering, and import surfaces.
- Use Core workflows for adapting Gym-like environments, building a minimal
Actor, wiringEnvironmentLoop, wrappers, loggers, counters, and observers. - Use Core troubleshooting when loop bounds, specs, dtypes, wrapper behavior, logger timing, or optional backend imports fail.
- Run check_core_imports.py to inspect the local Acme installation without requiring JAX/TF/Reverb/Launchpad execution.
Scope
This sub-skill covers:
acme.core.Actor,Learner,VariableSource,Saveable, andWorkercomponent contracts.acme.specsaliases andmake_environment_spec(environment)fordm_envenvironments.acme.EnvironmentLoopandacme.environment_loop.EnvironmentLoopsingle-environment interaction.- Core wrappers from
acme.wrappers, especiallyGymWrapper,SinglePrecisionWrapper,CanonicalSpecWrapper,EnvironmentWrapper, andwrap_all. acme.utils.counting.Counter,acme.utils.loggers,acme.utils.observers, and signal-safe loop termination basics.
Route elsewhere:
- Replay adders, Reverb tables, datasets, and iterator pipelines belong in
replay-and-data. - JAX networks, builders, experiments, and agent-specific JAX behavior belong in
jax-agents. - TensorFlow/Sonnet agents and Launchpad-backed TF examples belong in
tf-agents.
Quick Routing
- If the user has a custom environment, first make it implement
dm_env.Environmentor wrap it withacme.wrappers.GymWrapper, then verifyobservation_spec(),action_spec(),reward_spec(), anddiscount_spec(). - If the user has a loop failure, check
EnvironmentLoop.run()bounds, action/spec dtype compatibility, and whether optional imports are failing before the loop starts. - If the user needs metrics, prefer
Counter, aLoggerimplementation, andEnvLoopObserverinstances instead of modifyingEnvironmentLoopinternals. - If the user asks for a complete learning agent, keep this sub-skill focused on the
Actor/Learnerinterface and route backend-specific network or replay decisions to the backend/data sub-skills.


