Registry system for managing and discovering environments
from synth_ai.environments.registry import EnvironmentRegistry # Get the global registry registry = EnvironmentRegistry.get_instance() # Register a custom environment @registry.register("my-custom-env", version="1.0") class MyCustomEnvironment: def __init__(self, config): self.config = config def reset(self): return {"state": "initial"}
# Load environment by name env = registry.create("my-custom-env", config={"param": "value"}) # Load with specific version env = registry.create("my-custom-env", version="1.0") # List available environments available = registry.list_environments() print(available) # ["my-custom-env", "crafter", "text-env", ...]
env = registry.create("crafter", config={ "world_size": (64, 64), "max_steps": 1000, "render_mode": "rgb_array" })
env = registry.create("text-qa", config={ "dataset": "squad", "max_context_length": 2048 })
# Get environment info info = registry.get_info("crafter") print(info) # { # "name": "crafter", # "version": "2.0", # "description": "Minecraft-like crafting environment", # "observation_space": {...}, # "action_space": {...}, # "tags": ["gaming", "crafting", "multimodal"] # } # Search by tags gaming_envs = registry.find_by_tags(["gaming"])