maze-agent/Maze
A distributed framework for LLM agents
What it solves
Maze is a distributed framework designed to turn agent programs into observable, scalable workflows. It solves the problem of managing complex LLM agent tasks across heterogeneous compute resources (CPU, GPU, and I/O) while providing a unified API for execution, recovery, and model serving.
How it works
Maze uses a centralized Core to manage "Runs" and a scheduler that distributes tasks across a cluster of worker nodes using Ray. It supports both static DAGs (defined via @workflow or specifications) and dynamic workflows where tasks are appended at runtime.
Key technical components include:
- Heterogeneous Scheduling: Separate queues for GPU, CPU, and I/O to prevent resource blocking, utilizing either FCFS or the HACS scheduling algorithm.
- Distributed Model Execution: Automatically discovers local checkpoints and deploys vLLM or Transformers instances on demand, routing tasks to available models without blocking the resource queues.
- Durable State: Persists task state, logs, and content-addressed artifacts across process restarts to ensure fault tolerance.
- Unified Interface: Provides a Python SDK, a visual Workbench (DAG editor), and a CLI that all interact with the same Core API.
Who it’s for
It is built for developers and researchers building complex LLM-based agents that require distributed execution, visual workflow orchestration, and efficient GPU resource management.
Highlights
- Visual Workflow Development: A Workbench featuring a DAG editor, task catalogs, and cluster monitoring.
- Resource-Aware Scheduling: Specialized queues for different hardware resources to optimize throughput.
- Dynamic & Static Workflows: Support for both predefined DAGs and runtime-appended tasks.
- Automated Model Lifecycle: On-demand deployment and scaling of model instances (vLLM/Transformers) with LRU scale-in.
- Fault Tolerance: Built-in retries, timeouts, and durable artifact storage using content-addressed references.
Related
- Project
- Project
- Project
- Project
- Project