# L1: Your First Agent

Build a single-tool agent from scratch.

**Module**: M1 Foundations  
**Est. Time**: 60 min  
**Files**: `starter.py`, `solution.py`

## Objective

Create an agent that reads a file and answers questions about its contents.

## Concepts

- LLM + Tools + Loop = Agent
- Tool definition with input schema
- The agent loop (think → act → observe → repeat)
- The `reasoning` parameter

## Starter

```bash
cd course/labs/L1-first-agent/
python starter.py test.txt "What is this file about?"
```

The starter has TODO markers where you fill in:
1. Define the `read_file` tool schema
2. Implement the `execute_tool` function
3. Implement the `run_agent` loop
4. Wire up the main entry point

## Solution

```bash
python solution.py test.txt "What is this file about?"
```

Compare your implementation against the solution. Key differences to check:
- Did you set `MAX_ITERATIONS`?
- Does every tool call include `reasoning`?
- Does the loop terminate on `end_turn`?

## Checkpoints

1. Tool call is made correctly (schema matches)
2. Tool result is fed back to the LLM
3. LLM produces final answer using tool result
4. Loop terminates (doesn't run forever)
