MARO 资源优化平台
用仿真、强化学习和分布式组件优化资源配置决策。
- Star 数
- ★ 926
- 最近更新
- 3 年前
- License
- MIT
- 主语言
- Python
- FA 评分
- 44/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台
- 费用
- 免费,无需付费服务
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 物流优化团队需要在集装箱库存管理场景中评估资源平衡决策时。
- 不适合
- 需要开箱即用、不想编译 C++ 或配置环境的团队
- 只想用 pip 安装并需要 CLI 与可视化工具的用户
- 需要现成生产级认证、授权与故障恢复能力的团队
这个 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?
核心包可在 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。
这个 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 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| MARO 资源优化平台 当前 | 44 · 缺口较多 | 代码库 / SDK免费 | ★ 926 | 3 年前 | Python | — |
| Agent Lightning | 40 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 19k | 1 天前 | Python | OpenAI API |
| AgileRL 强化学习库 | 71 · 存在缺口 | 代码库 / SDK免费版 + 付费版 | ★ 965 | 1 天前 | Python | — |
| Mava | 41 · 缺口较多 | 命令行工具免费 | ★ 941 | 1 个月前 | Python | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:仓库来自微软官方组织,有明确的MIT许可证和SECURITY.md,提供了安全漏洞报告渠道。但未发现权限最小化、用户确认、数据流透明性、敏感数据处理、依赖安全、外部影响、回滚等机制的具体实现或文档。因此,除来源归属外,其他信任标准均未得到支持。
证据显示:README和文档提供了清晰的结构,安装说明和快速示例一致,依赖在PyPI和Docker Hub上可用。但失败消息方面,仅看到测试中的异常抛出,没有面向用户的错误处理文档。
证据显示:README明确了目标用户(研究人员、工程师)和应用场景(CIM、Citi Bike、VM调度等),提供了多种安装方式和示例。但触发精度方面,没有明确的触发条件或事件定义,能力边界在文档中有部分描述。
证据显示:README提供了清晰的信息架构,安装说明详细,命名稳定(pymaro),有示例和FAQ(通过文档链接),许可证明确(MIT),有版本和变更日志(通过GitHub releases),维护责任明确(微软)。但已知限制未明确列出。
证据显示:输出可用性方面,提供了Python API和可视化工具,示例展示了如何使用。边际价值方面,提供了多种场景和工具,但成本效益方面,没有性能基准或资源消耗数据。
证据显示:README中的声明(如支持RL和OR)有相关论文和文档支持,多个来源(README、文档、CI)相互印证,事实和推断在文档中有所区分。
- 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 未发现权限最小化、用户确认、数据流透明性等安全机制的具体实现或文档,使用前需自行评估。
- 依赖安全方面,未提供依赖漏洞扫描结果或安全审计报告,建议检查依赖版本。
- 已知限制未明确列出,可能影响对工具适用性的判断。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
maro-0.3.2a4 maro-0.3.2a4 🚀
发布说明摘录
- Add DDQN - Add prioritized sampling - Improve explore strategy - Fix minor issues在 GitHub 查看 ↗ -
maro-0.3.2a3 maro-0.3.2a3 🚀
发布说明摘录
- Fix DiscreteRLPolicy set_state bug (https://github.com/microsoft/maro/commit/a9a638134bef84176a0623fdadc5b789c2d7c3cf, https://github.com/microsoft/maro/commit/b3c6a589ad9036b03221e776a6929b2bc1eb4680)在 GitHub 查看 ↗ -
maro-0.3.2a1 maro-0.3.2a1 🚀
发布说明摘录
- Refine RL workflow + Add **kwargs to support more problem setting (e.g., Graph based ones) (#589) - add **kwargs to RL models' forward funcs and _shape_check() - add **kwargs to RL policies' get_action related funcs and _post_check() - add **kwargs to choose_actions of AbsEnvSampler; remain it None in current sample() and eval() + Add detached loss to the return value of update_critic() and update_actor() of current TrainOps; add default False early_stop to update_actor() of current TrainOps (#589) …在 GitHub 查看 ↗
常见问题
PyPI 安装后能使用 maro inspector 吗?
pymaro 包不包含 CLI(包括可视化工具);需从源码安装。是否需要 API 密钥或云账号?
最小可运行示例会产出什么?
Env.step(None) 返回 metrics、decision_event 和 is_done;循环结束后可读取 env.metrics。Windows 有额外运行要求吗?
能否用 Docker 快速体验?
maro2020/playground 镜像,并映射 Redis Commander 的 40009 端口和 Jupyter Lab 的 40010 端口。