A system comprising one or more processors and memory operably coupled with the one or more processors, wherein the memory stores instructions that, in response to execution of the instructions by one or more processors, cause the one or more processors to perform the following operations: providing a plurality of textual challenge phrases, wherein each textual challenge phrase includes a challenge configured to elicit a response from a natural language dialog software agent, comprising applying a plurality of textual requests as input across a challenge generator machine learning model to generate, respectively, the plurality of textual challenge phrases, wherein the plurality of textual requests are configured to elicit a textual challenge phrase from the natural language dialog software agent; applying the plurality of textual challenge phrases as inputs across an answer generator machine learning model to generate a respective plurality of synthetic answers, wherein each respective synthetic answer of the plurality of synthetic answers is responsive to the challenge included with the respective textual challenge; assigning each of the plurality of synthetic answers a label indicative of it being generated by a natural language dialog software agent; assigning each of a plurality of human-generated answers a label indicative of it being generated by a human; applying a plurality of answers as inputs across an answer discriminator machine learning model to generate a respective plurality of CAPTCHA outputs, wherein each respective CAPTCHA output of the plurality of CAPTCHA outputs comprises a prediction of whether the respective answer of the plurality of answers was generated by the natural language dialog software agent or a human, and wherein the plurality of answers comprises the plurality of synthetic answers and the plurality of human-generated answers; and training the challenge generator, the answer generator and the answer discriminator machine learning models based on a comparison of the labels assigned to the plurality of answers with the plurality of CAPTCHA outputs. providing a plurality of textual challenge phrases, wherein each textual challenge phrase includes a challenge configured to elicit a response from a natural language dialog software agent, comprising applying a plurality of textual requests as input across a challenge generator machine learning model to generate, respectively, the plurality of textual challenge phrases, wherein the plurality of textual requests are configured to elicit a textual challenge phrase from the natural language dialog software agent; applying the plurality of textual challenge phrases as inputs across an answer generator machine learning model to generate a respective plurality of synthetic answers, wherein each respective synthetic answer of the plurality of synthetic answers is responsive to the challenge included with the respective textual challenge; assigning each of the plurality of synthetic answers a label indicative of it being generated by a natural language dialog software agent; assigning each of a plurality of human-generated answers a label indicative of it being generated by a human; applying a plurality of answers as inputs across an answer discriminator machine learning model to generate a respective plurality of CAPTCHA outputs, wherein each respective CAPTCHA output of the plurality of CAPTCHA outputs comprises a prediction of whether the respective answer of the plurality of answers was generated by the natural language dialog software agent or a human, and wherein the plurality of answers comprises the plurality of synthetic answers and the plurality of human-generated answers; and training the challenge generator, the answer generator and the answer discriminator machine learning models based on a comparison of the labels assigned to the plurality of answers with the plurality of CAPTCHA outputs.