How brusa99/r-mabm works
R-MABM provides a multi-agent reinforcement-learning interface to the CATS macroeconomic model. A typical run resets the Gymnasium environment, obtains observations, has agents select actions, advances the Julia-backed economic model, and returns observations, rewards, and termination information; optional training updates Q-learning agents, and optional logging persists episode data. The README and sampled source support this workflow and the documented ABCredit integration. CatsLog is registered in the package, but its implementation was not sampled, so its internal behavior and connections are not shown.
Main entry points: simulation.py Episode simulation · cats.py CATS environment · qlearners.py Q-learning agent · logger.py Episode logger
Components 10
Simulation
- Episode simulation
rmabm/simulation.py - Episode histories
rmabm/simulation.py
Agents
- Q-learning agent
rmabm/agents/qlearners.py - Baseline agent
rmabm/agents/heuristic.py
Economic Environment
- CATS environment
rmabm/environments/cats.py - Logged CATS variant
rmabm/environments/__init__.py
Logging
- Episode logger
rmabm/logger.py
Other components
- Experiment runner
- ABCredit model
- Log files
Connections 12
- Experiment runner → Episode simulation: runs episodes
- Episode simulation → CATS environment: resets and steps
- Episode simulation → Q-learning agent: requests actions
- Episode simulation → Baseline agent: requests actions
- Episode simulation → CATS environment: passes actions
- CATS environment → Episode simulation: returns transitions
- Episode simulation → Q-learning agent: trains with transitions
- Episode simulation → Episode histories: records transitions
- Q-learning agent → CATS environment: reads space bounds
- CATS environment → ABCredit model: initializes and advances
- Episode simulation → Episode logger: logs episode data
- Episode logger → Log files: writes arrays