Agents are best described as NLU (Natural Language Understanding) modules. These can be included in your app, product, or service and transforms natural user requests into actionable data.

This transformation occurs when a user input matches one of the intents inside your agent. Intents are the predefined or developer-defined components of agents that process a user’s request.

Agents can also be designed to manage a conversation flow in a specific way. This can be done with the help of contexts, intent priorities, slot filling, responsibilities, and fulfillment via webhook.


To create an agent, click on Create Agent in the left menu.

Choose a unique name for your agent and set the relevant settings.

  • Description - This is to describe the purpose of your agent
  • Add Sample Data - Choose a predefined knowledge data set to add to your agent. These are similar to prebuilt agents, but include responses in the intent.
  • Language - Select the language for your agent
  • Default Time Zone - Select the default time zone for your agent
  • Google Project - Choose an existing Google Cloud Project or leave on "Create a new Google project" to do so.


You can access the settings for the agent by clicking the gear icon settings next to the agent name.


Description & Update Avatar - These will only be displayed in the Web Demo for your agent.

Language - Select the language for your agent

Default Time Zone - Select the default time zone for your agent. This timezone will be used if you don't pass the timezone parameter in query requests.

Google Project - The Google Cloud Project linked to the agent. This is created and linked by default and is only relevant if you're using Google Cloud or Firebase for deployment.

Client Access Token - For end-user interaction with /query, /context and /userEntites endpoints only.

Developer Access Token - Used for agent modification. Do not share

Delete Agent - Completely deletes agent (cannot be undone).

ML Settings (Machine Learning)

Match Mode - This setting defines what algorithm should be used for machine learning. The setting applies to all the intents in which Machine Learning is enabled.

  • Hybrid - This mode fits best for agents with a small number of examples in intents and/or wide use of composite entities.
  • ML Only - This mode can be used for agents with a large number of examples in intents, especially the ones using the system entity @sys.any

ML Classification Threshold - Defines a threshold value between 0 and 1 for triggering fallback intents and returns the "score" in the JSON response to the query. If no fallback intents are provided, no intent will be triggered.

Export and Import

Export as ZIP - Exports agent as .ZIP file (JSON includes these fields)

Restore from ZIP - Replaces the current agent with the supplied .ZIP file

Import from ZIP - Upload intents and entities from an existing exported agent


This page is used to share access to the agent with other API.AI users.

Enter the email address of the other user you want to share the agent with, choose one of the following roles for that user, and then click Add:

  • Developer - Ability to edit intents, entities, fulfillment, integrations and training for the agent. This is ideal for team members like developers and linguists.
  • Reviewer - Read-only access to intents and entities. This is ideal for project managers, legal and anyone who just needs to review content.

Prebuilt Agents

Prebuilt agents are a collection of agents developed by the API.AI team. In the developer console, you can download agents to your account that fit your use case and use them as a base for building a conversational interface for your app, bot, or device.

How to Import Prebuilt Agents

In the developer console, click Prebuilt Agents in the left hand menu. You can search the agents by keywords related to your desired use case. Click on the card of a specific agent for more information and examples. To import a specific agent to your account, click the IMPORT button.

Prebuilt Agents Structure

Prebuilt agents are ready to use for user input classification, that is, transforming a user's natural language into actionable data.

Agent responses are not provided since they either may depend on particular use cases or may need to be retrieved from external sources (from a web service connected to your agent via a webhook or from external APIs or databases connected to your web service). For example, for providing weather forecast for the users, you need to retrieve it from a 3rd party Weather API.

How to Customize Prebuilt Agents

Prebuilt agents are fully customizable, as you’ll have access to edit everything.

Customize Topics Coverage and Classification Model

Prebuilt agents cover the most popular user inputs. You may want to cover additional topics related to the same area or, on the contrary, cover less user questions. For these purposes, you can add or delete intents and entities.

You can copy or move intents and entities between agents, as well as delete intents and entities in bulk. For more information, read the respective sections about batch operations with intents and entities.

Customize Agent’s Responses

Defining Responses in Intents

For simple use cases, you can define agent responses directly in intents. If you use our one-click integrations with some messaging platforms (currently, Actions on Google, Kik, Facebook Messanger, Kik, Slack, Telegram, Viber, and Skype), you can define responses not only as text, but as Rich Messages as well.

Defining Responses in Your Fulfillment Service

You can consider creating your web service and connecting it to your agent via webhook. In your web service, you can define responses based on the actionable data received from your agent, perform operations, and retrieve information from external sources (databases or 3rd-party APIs).

If you already have your backend service, you may prefer sending query requests to your agent and defining responses in your business logic. See the list of our SDKs designed for sending query requests and getting responses in different platforms/languages.