This repository contains all the code exercises and project materials for the Agent Engineering course, created by Towards AI and Decoding AI. This course is designed for developers who want to move beyond basic LLM tutorials and build production-grade AI agents and workflows. It provides a hands-on, project-based approach to learning agent architecture patterns, modern frameworks like LangGraph, and essential production skills like LLMOps, evaluation, and deployment.
The repository is organized to help you easily find and follow along with the course materials.
lessons/: This directory contains all the code notebooks (.ipynbfiles) for the course lessons. Each lesson has its own folder (e.g.,01_ai_agents_landscape/).lessons/utils/: Helper scripts and utility functions used in the notebooks..env.example: A template file for your environment variables.pyproject.toml: The main configuration file for project dependencies.uv.lock: A lock file generated byuvto ensure a reproducible environment.
For instructions on running the Nova research agent from the terminal (MCP server + client), see the dedicated README in
lessons/research_agent_part_2/README.md.
To run the course notebooks, you'll need to set up your local environment. Follow these steps to get everything installed and configured.
First, make sure you have Git and the uv package manager installed.
- Git: This is used to clone the repository.
uv: A modern, high-speed Python package manager that will handle all dependencies for this project.
Clone the course repository as described in the admin lesson of the course. It uses a fine-grained GitHub token to provide read-only access to its contents.
For Windows users: We recommend using WSL (Windows Subsystem for Linux) for local development. Some components (particularly MCP server connections via stdio transport) may not work correctly in native Windows. WSL resolves these compatibility issues.
Navigate into the cloned repository's root directory and run uv sync --group dev. This will create a virtual environment (.venv folder) and install all the necessary packages defined in the pyproject.toml file.
cd course-ai-agents
uv sync --group devThe course notebooks use Google's Gemini models. To use them, you'll need to get a free API key from Google AI Studio.
- Copy the example environment file:
cp .env.example .env - Open the new
.envfile and replace the placeholder text with your actualGOOGLE_API_KEY.
Alternatively, you can call the same Gemini models through Vertex AI instead of an API key,
which lets eligible new Google Cloud users run the course on the $300 free trial credits.
Authenticate with gcloud auth application-default login, then uncomment
GOOGLE_GENAI_USE_VERTEXAI=true, GOOGLE_CLOUD_PROJECT, and GOOGLE_CLOUD_LOCATION in your
.env instead of setting GOOGLE_API_KEY. See the course admin lesson for the full comparison
of both options and a cost overview of every service used in the course.
The code exercises are in the form of Jupyter Notebooks (.ipynb files). You can run them using the classic browser interface or a modern code editor like VS Code.
Option A: Run in your Web Browser
- First, create a Jupyter kernel that points to your new virtual environment:
uv run ipython kernel install --user --name="ai-agents-course" - Launch the Jupyter Notebook interface:
uv run jupyter notebook
- This will open a new tab in your browser. Navigate to a lesson's notebook file.
- Once the notebook is open, click on Kernel > Change kernel in the top menu and select
"ai-agents-course"from the list.
Option B: Run in VS Code
- Make sure you have the official Jupyter extension installed from the marketplace.
- Open the
course-ai-agentsproject folder in VS Code. - Open any
notebook.ipynbfile from thelessonsdirectory. - Click on the “Select Kernel” button in the top-right of the editor.
- Choose “Python Environments” from the list of options.
- Select the virtual environment from the cloned repository, which will be located at
.venv/bin/python.
You are now ready to run the code cells in the notebook
Along with the Jupyter Notebook lessons you can also run the research agent and writing workflow as independent projects.
You can find specialized documentation on how to install and run each project at:
| Project | Description | Location |
|---|---|---|
| Nova Research Agent | Research agent used in part 2. | lessons/research_agent_part_2/README.md |
| Nova MCP Server | Dockerized Nova MCP server used in part 3. | lessons/research_agent_part_3/README.md |
| Brown Writing Workflow | All the code for the writing workflow. | lessons/writing_workflow/README.md |