{"adoption": {"forks": 328, "observed_at": "2026-08-28T04:06:16.880104+00:00", "stars": 2126}, "canonical_url": "https://ross.abutalabs.com/products/rlworkgroup-garage", "card": {"archived": false, "artifact_type": "library", "description": "A toolkit for reproducible reinforcement learning research.", "domain": ["reinforcement-learning", "machine-learning", "artificial-intelligence"], "enriched": true, "function": ["machine-learning", "reinforcement-learning", "benchmarking", "logging"], "health_score": 20, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["rlworkgroup/garage"], "name": "rlworkgroup/garage", "platform": ["python"], "pushed_at": "2023-05-04T14:44:22+00:00", "repo": "rlworkgroup/garage", "stars": 2126, "tags": ["reinforcement-learning", "pytorch", "tensorflow", "reproducibility", "experiment-tracking", "rl-algorithms", "research", "linux", "macos", "docker"], "topics": ["rl-algorithms", "reproducibility", "pytorch", "tensorflow"], "urls": [], "use_cases": ["implement and benchmark reinforcement learning algorithms", "run reproducible RL experiments with fixed random seeds", "train PPO, DDPG, DQN, SAC and other RL agents", "evaluate RL algorithms on Gym and other benchmark environments", "checkpoint and resume long-running RL training runs", "log RL experiment metrics to TensorBoard"], "what_it_is": "garage is a Python toolkit for developing and evaluating reinforcement learning algorithms, with a library of state-of-the-art RL algorithm implementations. It provides modular components like replay buffers, samplers, experiment checkpointing, and reproducibility tools supporting both PyTorch and TensorFlow.", "when_to_avoid": ["you need cutting-edge algorithms actively updated with the latest research", "you want a lightweight single-algorithm library rather than a full toolkit", "your project requires frequent releases or active maintenance", "you need non-Python or production RL deployment tooling"], "when_to_choose": ["you need reproducible RL research with experiment checkpointing and seeding", "you want ready implementations of many standard RL algorithms in one library", "you want framework flexibility between PyTorch and TensorFlow", "you need high-performance samplers and environment interfaces for RL benchmarks"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/rlworkgroup-garage", "repo": "rlworkgroup/garage", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.880104+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:52:32.126442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f69dfc2671d924e94c4e92131a71fa8ec59fb2c255331199d6657571510e1d7", "fetched_at": "2026-08-28T04:06:16.880104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rlworkgroup/garage"}, {"content_hash": "80efa7b3add1893243aa2da62838a71aa135004e4d45ddd0c4ca6c02ef4f62e7", "fetched_at": "2026-08-29T10:32:35.955204+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/garage/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.880104+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:52:32.126442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f69dfc2671d924e94c4e92131a71fa8ec59fb2c255331199d6657571510e1d7", "fetched_at": "2026-08-28T04:06:16.880104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rlworkgroup/garage"}, {"content_hash": "80efa7b3add1893243aa2da62838a71aa135004e4d45ddd0c4ca6c02ef4f62e7", "fetched_at": "2026-08-29T10:32:35.955204+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/garage/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:52:32.126442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f69dfc2671d924e94c4e92131a71fa8ec59fb2c255331199d6657571510e1d7", "fetched_at": "2026-08-28T04:06:16.880104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rlworkgroup/garage"}, {"content_hash": "80efa7b3add1893243aa2da62838a71aa135004e4d45ddd0c4ca6c02ef4f62e7", "fetched_at": "2026-08-29T10:32:35.955204+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/garage/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.880104+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.880104+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.880104+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:52:32.126442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f69dfc2671d924e94c4e92131a71fa8ec59fb2c255331199d6657571510e1d7", "fetched_at": "2026-08-28T04:06:16.880104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rlworkgroup/garage"}, {"content_hash": "80efa7b3add1893243aa2da62838a71aa135004e4d45ddd0c4ca6c02ef4f62e7", "fetched_at": "2026-08-29T10:32:35.955204+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/garage/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.880104+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.880104+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:52:32.126442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f69dfc2671d924e94c4e92131a71fa8ec59fb2c255331199d6657571510e1d7", "fetched_at": "2026-08-28T04:06:16.880104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rlworkgroup/garage"}, {"content_hash": "80efa7b3add1893243aa2da62838a71aa135004e4d45ddd0c4ca6c02ef4f62e7", "fetched_at": "2026-08-29T10:32:35.955204+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/garage/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.880104+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.880104+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.880104+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:52:32.126442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f69dfc2671d924e94c4e92131a71fa8ec59fb2c255331199d6657571510e1d7", "fetched_at": "2026-08-28T04:06:16.880104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rlworkgroup/garage"}, {"content_hash": "80efa7b3add1893243aa2da62838a71aa135004e4d45ddd0c4ca6c02ef4f62e7", "fetched_at": "2026-08-29T10:32:35.955204+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/garage/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.880104+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:16.880104+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:52:32.126442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f69dfc2671d924e94c4e92131a71fa8ec59fb2c255331199d6657571510e1d7", "fetched_at": "2026-08-28T04:06:16.880104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rlworkgroup/garage"}, {"content_hash": "80efa7b3add1893243aa2da62838a71aa135004e4d45ddd0c4ca6c02ef4f62e7", "fetched_at": "2026-08-29T10:32:35.955204+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/garage/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:52:32.126442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f69dfc2671d924e94c4e92131a71fa8ec59fb2c255331199d6657571510e1d7", "fetched_at": "2026-08-28T04:06:16.880104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rlworkgroup/garage"}, {"content_hash": "80efa7b3add1893243aa2da62838a71aa135004e4d45ddd0c4ca6c02ef4f62e7", "fetched_at": "2026-08-29T10:32:35.955204+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/garage/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:52:32.126442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f69dfc2671d924e94c4e92131a71fa8ec59fb2c255331199d6657571510e1d7", "fetched_at": "2026-08-28T04:06:16.880104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rlworkgroup/garage"}, {"content_hash": "80efa7b3add1893243aa2da62838a71aa135004e4d45ddd0c4ca6c02ef4f62e7", "fetched_at": "2026-08-29T10:32:35.955204+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/garage/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:52:32.126442+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f69dfc2671d924e94c4e92131a71fa8ec59fb2c255331199d6657571510e1d7", "fetched_at": "2026-08-28T04:06:16.880104+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rlworkgroup/garage"}, {"content_hash": "80efa7b3add1893243aa2da62838a71aa135004e4d45ddd0c4ca6c02ef4f62e7", "fetched_at": "2026-08-29T10:32:35.955204+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/garage/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3006, "days_push": 1217, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}