# Getting Started with Mastra Welcome to the first step of building your first Mastra agent! In this lesson, you'll learn how to create a simple agent that can read data from a public Google Sheet using a custom tool function. ## What is an Agent? An agent is software with non-deterministic code that can make autonomous decisions based on inputs and environment rather than following fixed, predictable instructions every time. Agents are AI systems that can: - Perceive their environment through various inputs - Make decisions based on those inputs - Take actions to accomplish specific goals - Learn and adapt their behavior over time The best agents use several important features: 1. **Memory**: They remember past interactions and learn from them 2. **Planning**: They can break down complex tasks into smaller steps 3. **Tool use**: They can leverage external tools and APIs to expand their capabilities 4. **Feedback loops**: They can evaluate their own performance and adjust accordingly