Agents are best described as Natural Language Understanding (NLU) modules. These modules can be included in your app, website, product, or service and translate text or spoken user requests into actionable data. This translation occurs when a user's utterance matches an intent within your agent.
The matched intent then delivers a response back to the user. This response can be a simple text or spoken acknowledgement, or a webhook response that includes information obtained from another system. In the example above, Dialogflow sends a webhook request with the location and date parameters to a third-party weather service. This weather service returns a webhook response in JSON format. The agent's custom fulfillment parses the JSON data and delivers a response to the user with the relevant information.