One problem, however, is if the roboport you are injecting new bots into gets filled with the other kind of bot. For example, if the roboport is filled with logistic bots then the system can no longer add construction bots. This problem actually happened the other day in my factory!
The solution is to use two roboports: one is exclusively reserved for logistic bots and the other for construction bots. Smart inserters with a buffer of steel chests are used to move the "wrong" bots out into the other roboport. If the chests start to fill, that means that the bots in the chest are not currently needed. As soon as they are needed, the corresponding roboport will begin to empty and they will be injected back into the system.
Note: if you are using requestor chests to supply circuits (as in the diagram), then ensure that the red circuits at least have a good supply: since there may be no free logistic bots to supply circuits to the assembler making logistic bots!
Circuit conditions are used to ensure that a supply of bots is kept in the logistic system, with any extras inserted back into the roboports.
Here is the blueprint string:
Blueprint