50 lines
1.2 KiB
Markdown
50 lines
1.2 KiB
Markdown
# 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)
|