Google recently promoted the environments feature to GA. However, there are no APIs available to "promote" a Dialogflow agent from one environment (eg. staging) to another (eg. production).
I wanted to create a pipeline that migrates the bot. At this point, the only available solution looks like taking an export of the bot and pushing it to a new agent marked "production".
So, the question is, does Google internally take a zip and create a new agent for each environment we create? In doing so, will it maintain any training done on the agent?
I believe your intention is to create multiple versions of your agent and publish them to separate environments; this way you would have custom environments for: testing, development, production, etc.
An agent version is an immutable snapshot of your agent. Therefore the training is expected to maintain between versions. However, in order to be able to serve different versions for different use cases you can select the environment in which you will proceed further trainings.
In order to publish an agent version and create new environments you can do it through the Dialogflow Console. You can also revert an environment to a previous version or load a previous version to draft. In this link you will find the in-depth explanation on how to achieve these actions.