<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Introduction
In this notebook, we will show you how to extract all of the Agent files for a given GCP project and save them in a specified Google Cloud Storage (GCS) bucket.
Prerequisites
Ensure you have a GCP Service Account key with the Dialogflow API Admin privileges assigned to it.
Step1:  Imports
Step2:  User Inputs
In the next section, we will collect runtime variables needed to execute this notebook. 
This should be the only cell of the notebook you need to edit in order for this notebook to run.
For this notebook, we'll need the following inputs
Step3:  Extract All Agents from GCP Project
Step5:  Backup All Agents to GCS Bucket
Store LRO results in a list to be iterated on after the run is complete to check for backup status
<ASSISTANT_TASK:>
Python Code:
# If you haven't already, make sure you install the `dfcx-scrapi` library
!pip install dfcx-scrapi
Explanation: Introduction
In this notebook, we will show you how to extract all of the Agent files for a given GCP project and save them in a specified Google Cloud Storage (GCS) bucket.
Prerequisites
Ensure you have a GCP Service Account key with the Dialogflow API Admin privileges assigned to it.
End of explanation
from dfcx_scrapi.core.project import Project
Explanation: Imports
End of explanation
creds_path = '<YOUR_CREDS_PATH>'
project_id = '<YOUR_GCP_PROJECT_ID>'
gcs_bucket = '<YOUR_GCS_BUCKET>'
Explanation: User Inputs
In the next section, we will collect runtime variables needed to execute this notebook. 
This should be the only cell of the notebook you need to edit in order for this notebook to run.
For this notebook, we'll need the following inputs:
creds_path: Your local path to your GCP Service Account Credentials
project_id: Your GCP Project ID in String format (i.e. 'my-project-id')
gcs_bucket: Your GCS Bucket name in String format (i.e. 'my-gcs-bucket')
End of explanation
p = Project(creds_path, project_id=project_id)
all_agents = p.list_agents()
Explanation: Extract All Agents from GCP Project
End of explanation
lro_list = p.backup_all_agents(gcs_bucket)
# Example of a single LRO Response
{'name': 'projects/<project name>/locations/global/operations/<lro id>',
 'metadata': {'@type': 'type.googleapis.com/google.protobuf.Struct'},
 'done': True,
 'response': {'@type': 'type.googleapis.com/google.cloud.dialogflow.cx.v3beta1.ExportAgentResponse',
  'agentUri': 'gs://<bucket name>/<agent display name'}}
Explanation: Backup All Agents to GCS Bucket
Store LRO results in a list to be iterated on after the run is complete to check for backup status
End of explanation
<END_TASK>