自动化与运维 distributed-schedulingworkflow-orchestrationvllmraypython-sdkgpu-schedulinglanggraph-adapterhacs

Maze 分布式 LLM Agent 框架

把 LLM Agent 程序变成跨 GPU/CPU/IO 异构资源的分布式可观测工作流,统一调度、恢复、模型服务与产物管理。

FollowAgents 评估 · FARS-2.1
不推荐
51/ 100 五分制 2.6 / 5
1 2 3 4 5 6
1信任安全12 / 29 · 2.1/5

工作流说明只提及任务沙箱与相对路径,未描述代理任务的最小权限模型,故 least_privilege 仅得 1;取消/重试需用户显式发起但无危险操作确认机制,user_confirmation 得 1;工件寻址、工作区文件到任务沙箱的路径规则、模型路由状态说明较清楚,data_flow_transparency 得 2;使用 OpenAI 兼容端点但完全未提及密钥与敏感数据处理,sensitive_data_handling 得 1;依赖已锁定版本但含可疑项(zmq==0.0.0 是占位包、transformers>=5.12.1 与公开版本序列不符),dependency_security 得 1;系统会自动部署/缩容模型实例并占用 GPU,文档未描述防护或限制,external_effects 得 1;有重试、取消、重启安全的 Run 发现,但未描述回滚语义,rollback 得 1;引用条目与致谢齐全,但作者邮箱为 [email protected] 占位符且仓库 URL 相互矛盾,source_attribution 得 2。

2可靠稳定8 / 14 · 2.9/5

README 声称多项 GA 能力而 pyproject 标注 Development Status: 4 - Beta,且 News 日期为 2026 年(未来),自述相互不一致,self_consistency 得 1;PyPI 安装、可选 vllm extra、锁定 ray 版本使依赖可用性尚可,dependency_availability 得 2;结构化错误字段(error_type、retryable、origin、node_id、attempt、traceback 等)描述详尽,failure_messages 得 2。

3适用触发10 / 18 · 2.8/5

面向分布式 LLM 代理开发与科研场景,示例覆盖静态/动态工作流、应用规格与 Workbench,audience_and_scenarios 得 2;明确声明 GAIA 模板仅为集成练习而非基准复现、missing_model 与未部署检查点的区分,capability_boundaries 得 2;代理任务的触发/调度入口语义描述有限,trigger_precision 得 1;端口、环境变量、Python 版本、模型目录配置有说明,但 OS Independent 声明与 GPU 集群现实存在张力,environment_fit 得 2。

4规范维护10 / 18 · 2.8/5

README 结构清晰(架构、快速开始、工作流、运维、Workbench 分节),information_architecture 得 2;pip 安装、源码安装、启动与 worker 命令均有,install_notes 得 2;包名 maze-agent 与仓库 Maze 混用,pyproject 中 Homepage 指向 QinbinLi/Maze 而 README 指向 maze-agent/Maze,naming_stability 得 1;代码与 YAML 示例丰富但无 FAQ,examples_and_faq 得 2;无已知限制章节,仅有零散边界说明,known_limitations 得 1;MIT 许可证全文在 LICENSE 且与 pyproject 一致,license 得 3;有版本号与 News 时间线但无正式 CHANGELOG,versioning_changelog 得 2;维护者为占位邮箱 '[email protected]',无真实维护者联系或治理说明,maintenance_responsibility 得 1。

5有效结果7 / 13 · 2.7/5

统一 Run API、CLI 与 Workbench 输出(结果摘要、日志、工件引用)描述可用,output_usability 得 2;在 Ray 之上提供工作流契约、异构调度与持久 Run,具有一定边际价值,但未与现有方案对比,marginal_value 得 2;GPU 部署与预留成本显著,无任何成本/收益指引,cost_benefit 得 1。

6证据核验4 / 8 · 2.5/5

多数性能与稳定性断言(确定性 GPU 清理、restart-safe、DCT EMA 调度收益)无随附测试或数据可静态追溯,claim_traceability 得 1;README、pyproject、LICENSE 之间存在矛盾(2026 年日期、两个不同仓库 URL、占位邮箱),跨源一致性差,cross_source_corroboration 得 1;但明确将 GAIA 模板与基准精度声明分离,事实与推断区分做得较好,fact_inference_separation 得 2。

证据充分度: 评估于 2026年9月9日 审查版本 e7b90f5c4cd1
使用前请注意
  • pyproject.toml 中作者/维护者邮箱为占位符 '[email protected]',无法核实维护者身份。
  • 依赖中存在可疑条目:zmq==0.0.0 是占位包而非真正的 pyzmq;transformers>=5.12.1 与公开版本序列不符,安装前请核实依赖解析结果。
  • README 与 pyproject 指向不同的仓库 URL(maze-agent/Maze 与 QinbinLi/Maze),且 News 与引用日期为 2026 年(未来),供应链来源需谨慎核实。
  • 系统会自动部署与缩容 vLLM/Transformers 模型实例并占用 GPU,请在生产环境前审查其资源与外部影响控制。
  • README 未提供任何 API 密钥或敏感数据处理指引,接入 OpenAI 兼容端点时请自行管理凭据。
  • 包声明 Development Status: Beta,但 README 宣称多项 GA 能力;本文为静态评审,所有运行时断言均未经执行验证。
评估证据 [1][2][3][4]
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

Maze(GitHub: maze-agent/Maze,MIT 许可)是一个把 Agent 程序转化为分布式、可观测工作流的开源框架。它由 Maze Core(Run 状态、事件、日志、产物)、调度器(基于 Ray,含 gpu/cpu/io 独立队列与 FCFS/HACS 算法)、Python SDK、LangGraph 适配器和可视化 Workbench 组成。所有客户端通过统一的 maze.workflow/v1 契约提交 DAG,静态 @workflow、动态 DynamicRun 和 maze.yaml 应用任务共享同一执行面。框架还负责本地模型检查点发现、按需部署 vLLM 或 Transformers 实例、GPU 租约管理和 LRU 缩容。任务失败带有结构化错误字段,支持重试、超时、取消和跨进程重启的状态恢复。该项目的研究论文被 SC26 接收,由华中科技大学、华为等机构贡献者支持。

用户用 @task/@workflow 装饰器定义带资源声明的任务 DAG,或编写 maze.yaml 应用规格,通过 MaClient(如 client.create_workflow_from、client.create_dynamic_run)或 POST /workflows/submit 提交到 Maze Core。Core 生成 run_id,调度器按 gpu/cpu/io 队列以 FCFS 或 HACS 排序就绪任务,再由节点放置策略(如 least-loaded)选择注册节点,最终由 Ray 在 head/worker 节点上执行。模型任务声明 model_anchor 后,Maze 在 model_cache 中发现检查点,自动部署 vLLM/Transformers 实例并注入 OpenAI 兼容端点。运行期间产生事件、日志、放置信息和内容寻址产物(maze://artifacts/sha256/<hash>),可通过 CLI(maze runs/c cluster 命令)、SDK 或 Workbench 查询、取消、重试。

  1. ML 平台工程师需要在多 GPU 集群上跑带模型推理步骤的 Agent 工作流,希望 GPU/CPU/IO 任务互不阻塞排队
  2. 研究团队想以可视化 DAG 编辑器(Maze Workbench)搭建并复用任务目录,同时保留服务端工作区和文件管理
  3. 需要在运行时根据中间结果动态追加任务(DynamicRun)而非预先写死 DAG 的流水线开发者
  4. 用 LangGraph 编写 Agent 但需要持久化执行、重启恢复和跨节点调度的团队,可经 LangGraph 适配器接入
  5. 运维人员希望以 maze.yaml 声明应用式作业(命令、conda 环境、产物、超时、重试策略)并统一纳入 Run 历史
  6. 需要在生产中热备待命 worker、崩溃后重注册、并对模型实例做 GPU 租约与 LRU 缩容管理的集群管理者

这个 Agent 有哪些优点和局限?

优点
  • gpu/cpu/io 独立队列避免一类资源阻塞另一类,且支持论文对齐的 HACS 调度算法(可调 MAZE_HACS_* 参数)
  • Run 状态跨进程重启持久化,保留任务状态、结构化错误、事件、日志、重试和内容寻址产物
  • 调度器托管本地模型执行:自动部署 vLLM/Transformers 实例、显式 Model Wait 状态、GPU 租约复用与 LRU 缩容
  • SDK、LangGraph、Workbench 和应用规格统一走 maze.workflow/v1 契约与同一套 Core Run API,避免多套执行路径
局限
  • 核心分布式执行建立在 Ray 之上,Ray 节点必须额外注册为 Maze worker 才可调度,引入双层运行时运维成本
  • 分布式无共享存储时需启用 Head 端内容寻址产物存储,且任务代码必须用相对路径访问工作区文件
  • 模型执行依赖节点本地检查点:missing_model 表示没有任何节点报告该本地模型,需自行准备 model_cache 目录
  • GAIA 模板(reason/file/speech/vision)仅为工作流集成示例,README 明确不构成 GAIA 基准准确率复现声明
  • 较新的 SC26 论文与 2026 年时间线的更新记录,社区生产案例证据尚有限

如何安装或部署这个 Agent?

从 PyPI 安装:pip install maze-agent
或从源码:

git clone https://github.com/maze-agent/Maze.git
cd Maze

pip install -e .
需 Python 环境与 Ray 运行时;分布式部署还需可访问 head 节点的网络。

如何使用这个 Agent?

  1. 启动 head 与 Workbench:maze start --head --port 8000 --playground --detach(Workbench 在 http://localhost:5173,Core API 在 http://localhost:8000)。
  2. 添加 worker:maze start --worker --addr HEAD_IP:8000 --agent --heartbeat-interval 20;Ray 节点须同时注册为 Maze worker 才能被调度。
  3. 查看集群:maze cluster resources --server-url http://HEAD_IP:8000。
  4. 用 Python SDK 定义 @workflow 并通过 MaClient 提交运行,或 maze run maze.yaml --wait 运行应用规格。
  5. 查询与运维:maze runs list / show / logs / retry <run_id>,或 SDK 的 client.get_run、client.cancel_run 等接口。
  6. 管理服务:maze status、maze doctor、maze stop。

常见问题

必须使用 GPU 集群吗?
不需要。任务的资源声明是细粒度的(cpu_num/gpu_mem/io_num),纯 CPU/IO 任务(如示例中的 greet/uppercase)也能运行;模型路由任务才需要 GPU 和本地检查点。
已有一个 Ray 集群,能否直接用?
可以复用 Ray 作为执行层,但每个 Ray 节点还必须注册为 Maze worker(通过 maze start --worker 或 cluster join-command),否则 Maze 不会向其调度任务。
任务失败了怎么办?
任务失败返回结构化字段(error_type、message、retryable、origin、node_id、attempt、traceback),可在装饰器上配置 timeout_seconds、max_retries、retry_backoff_seconds 和 retry_on(如 node_lost、resource_unavailable),也可通过 maze runs retry 或 client.retry_run 手动重试。
如何接入自己的 LLM?
把检查点放到节点的 model_cache 目录(或用 MAZE_MODEL_DIR 指定),在任务中声明 model_anchor 指定 local_model 和 backend(vllm 或 transformers)。工作流消费的是注入的 OpenAI 兼容端点,不需要自己管理模型进程。
HACS 和 FCFS 该选哪个?
FCFS 是默认的任务排序方式;HACS 在派发时刷新就绪任务优先级并利用已完成工作流时长维护 DCT EMA,两者与节点放置策略(如 least-loaded)可独立组合,通过 --scheduling-algorithm HACS 启用。

相关 Agents