MARO 资源优化平台
用仿真、强化学习和分布式组件优化资源配置决策。
这个 Agent 能做什么,适合哪些场景?
MARO 是面向真实资源优化问题的多智能体资源优化平台,定位为强化学习即服务(RaaS)实例。它由仿真工具包、RL 工具包和分布式工具包组成:前者提供预定义场景和构建新场景的复用组件,后者包含 agent manager、agent、RL algorithms、learner、actor 与 shaper 等抽象。平台列出的应用场景包括物流中的集装箱库存管理、交通中的共享单车调度、数据中心虚拟机供给,以及金融资产管理。Python 可通过 `maro.simulator.Env` 创建环境并以 `step` 推进仿真,输出指标、决策事件和完成状态。PyPI 包提供核心能力;CLI 和可视化工具需要从源码安装,环境快照可由 `maro inspector dashboard` 检查。
使用者通过 Env(scenario=..., topology=..., start_tick=..., durations=...) 创建仿真环境,并调用 env.step(None) 获取 metrics、decision_event 与 is_done,直至环境结束后从 env.metrics 读取环境指标。cim 是示例中的场景,toy.5p_ssddd_l0.0 是示例拓扑。初始化时可设置 options={"enable-dump-snapshot": "./dump_data"} 写出环境快照;随后运行 maro inspector dashboard --source_path ./dump_data/YOUR_SNAPSHOT_DUMP_FOLDER 查看快照数据。源码版本还提供分布式通信组件、用户自定义函数的消息自动处理接口、集群供给和作业编排。
- 物流优化团队需要在集装箱库存管理场景中评估资源平衡决策时。
- 城市交通研究者需要在 Citi Bike 场景中模拟并评估单车重新调度时。
- 数据中心运营或研究团队需要探索虚拟机供给决策时。
- 金融研究人员需要将资产管理列为资源优化问题进行建模时。
- 强化学习工程师需要通过 `Env` 循环运行场景、收集环境指标和决策事件时。
- 需要部署带 Jupyter Lab 与 Redis Commander 的 Docker playground 进行试用的团队。
这个 Agent 有哪些优点和局限?
- 将仿真、强化学习抽象和分布式通信/作业编排组件放在同一平台中,而不是只提供单一算法接口。
- 提供与具体资源优化问题对应的场景,包括集装箱库存管理、Citi Bike 和虚拟机调度。
- `Env` 的逐步执行接口明确返回指标、决策事件和完成状态,便于构建仿真循环。
- 可写出快照并通过 `maro inspector dashboard` 进行环境检查;另有 Docker playground 可快速运行。
- PyPI 安装不包含 CLI 和可视化工具;需要这些功能时必须从源码安装。
- 源码安装依赖 C++ 编译器,Windows 还明确要求 Visual Studio 2017 Build Tools。
- Windows 安装说明要求先安装指定的 Torch 1.6.0 与 torchvision 0.7.0 版本。
- 提供的材料没有说明与 ChatGPT、Codex、Claude 或任何模型 API 的原生集成。
- 材料未给出生产部署的认证、权限模型、成本或故障恢复机制。
如何安装或部署这个 Agent?
核心包可在 macOS 或 Linux 上执行:pip install pymaro。Windows 先执行 pip install torch===1.6.0 torchvision===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html,再执行 pip install pymaro。如需 CLI 或可视化工具,克隆仓库后在 macOS/Linux 执行 bash scripts/install_maro.sh 和 pip install -r ./requirements.dev.txt;Windows 执行 ./scripts/install_maro.bat 和 pip install -r ./requirements.dev.txt。源码安装要求 C++ 编译器:Linux/macOS 为 gcc,Windows 为 Visual Studio 2017 Build Tools;若无法找到包,设置 PYTHONPATH=PATH-TO-MARO。未记录任何必需凭据。
如何使用这个 Agent?
安装后运行:from maro.simulator import Env;接着创建 env = Env(scenario="cim", topology="toy.5p_ssddd_l0.0", start_tick=0, durations=100)。先执行一次 metrics, decision_event, is_done = env.step(None),再在 while not is_done: 循环中继续调用 env.step(None),最后读取 env.metrics。如需快速交互式环境,可执行 docker pull maro2020/playground,再执行 docker run -p 40009:40009 -p 40010:40010 maro2020/playground;README 指明 Redis Commander 位于 http://127.0.0.1:40009,带 MARO 的 Jupyter Lab 位于 http://127.0.0.1:40010。