Actions on Google is Google's platform to provide apps for the Google Assistant and Google Home. Technically speaking, the Actions on Google platform is just a broker connecting services with the Google Assistant system, i.e. invocations by users arrive at Actions on Google, which uses information from the Action Package (or API.AI project, ref) to route the invocation request to the correct service.
There are a couple of ways to create services for Actions on Google. One can use Templates available on the Actions on Google platform, or define a request/response pattern on API.AI, or completely build and self-host the applications using the Actions SDK.
They all have in common that they use the Actions on Google console to manage, test and deploy different projects that shall be published to Google Assistant. Some of those tasks may be done using the gactions CLI, but all data appears there eventually.
Templates are used directly from the Actions console and can be clicked together completely in browser. Plus, its content is configured in Google Docs sheets.
API.AI is used to create an agent service, that receives requests (from Actions on Google) and resolves tem to the correct intents. An intent may be triggered by many different requests ("user says"), but results in exactly one action (e.g. "input.welcome", "input.goodbye", see here). However, each intent/action can have multiple responses or a so-called fulfillment. A fulfillment is an Actions SDK powered service accessed by a webhook. It may be hosted anywhere. API.AI can also be used to connect to other servies using the same agent, i.e. Slack, Cortana, Twitter and even helps to clone the project to Alexa.
Actions SDK is a toolkit helping to write own fulfillments. These may be hosted as serverless function at Google Cloud Platform (or indirectly at Google's Firebase) and are accessed directly by the Actions on Google service or indirectly through API.AI.
In the following, we'll build a multilingual app using API.AI. First, we'll build and test an app using API.AI's request/response pattern only. After that, we'll serve some intents with a webhooks (build using Actions SDK).