This tutorial demonstrates building an AI agent from scratch using Python. The agent, a GPT-powered chatbot, interacts with Asana to create tasks. It leverages OpenAI and Asana APIs, managing tasks autonomously based on user requests. The tutorial covers setting up environment variables, defining messages for the chatbot, and creating functions for API interaction. The resulting agent can understand and execute task creation requests, providing links to the created Asana tasks. In the chatbot interaction with GPT, the messages have three defined roles: The specific roles are part of how the system interacts with GPT, maintaining a list of messages. Each message in the list has one of these three roles. This structure is used both within and outside of Python code when interacting with GPT. The provided context does not explicitly mention the names of the three roles. Based on general knowledge and common usage in OpenAI's API: The three roles are typically: System : Sets the behavior of the assistant. User : Represents the user's input or query. Assistant : Represents the AI's response.