Five leading agent frameworks. Six real projects. One repository.
This repository is my complete record of a 6-week, hands-on journey building autonomous AI agents. Each week introduces a framework through a series of labs (learn the concepts) and culminates in a real, runnable project (apply them).
| Week | Framework | Capstone Project | Highlight |
|---|---|---|---|
| 1 | Raw LLM APIs + Tools | π§βπΌ Career Digital Twin | An AI that is you |
| 2 | OpenAI Agents SDK | π¬ Deep Research Assistant | 4-agent research pipeline |
| 3 | CrewAI | π· Engineering Team (+4 crews) | A team that ships software |
| 4 | LangGraph | π¦Ύ Sidekick | Self-evaluating co-worker |
| 5 | AutoGen | π Agent Factory | Agents that create agents |
| 6 | Model Context Protocol | π Autonomous Trading Floor | 4 traders, live & autonomous |
π Full capability matrix (click to expand)
Category What's covered Agent patterns tool calling Β· agents-as-tools Β· handoffs / delegation Β· plannerβworkerβevaluator loops Β· hierarchical (manager) crews Β· agents that generate agents Tools & integrations web search (Serper / Brave / hosted WebSearchTool) Β· Playwright browser automation Β· Python REPL Β· Docker code execution Β· file management Β· Wikipedia State & memory Pydantic structured outputs Β· LangGraph checkpointers Β· CrewAI short / long-term / entity memory Β· SQLite & ChromaDB persistence Multi-model OpenAI Β· Anthropic Β· Ollama Β· DeepSeek Β· Gemini Β· Grok (via OpenRouter) Ops & delivery observability / tracing Β· Gradio UIs Β· Pushover & SendGrid notifications Β· gRPC distributed runtime Β· MCP servers / clients / resources
This project uses uv for dependency and environment management.
# 1 β Install uv (if needed)
pip install uv
# 2 β Sync the environment from pyproject.toml / uv.lock
uv sync
# 3 β Add your secrets (see below)
# create a .env file in the project rootπ Environment variables (click to expand)
Create a .env file in the project root (agents/) with the keys you need:
OPENAI_API_KEY=...
ANTHROPIC_API_KEY=...
SERPER_API_KEY=... # web search (CrewAI)
PUSHOVER_TOKEN=... # push notifications
PUSHOVER_USER=...
SENDGRID_API_KEY=... # email (Deep Research)
# Week 6 β optional multi-model + market data
DEEPSEEK_API_KEY=... GOOGLE_API_KEY=... GROK_API_KEY=...
OPENROUTER_API_KEY=... BRAVE_API_KEY=... POLYGON_API_KEY=...π Notebooks (
*.ipynb) run lab-by-lab Β· π₯οΈ Apps launch withuv run <file>.pyΒ· π₯ CrewAI projects run withcrewai runfrom inside the project folder.
π
1_foundationsΒ Β·Β π§± OpenAI / Anthropic / Ollama SDKs Β· Gradio Β· Pushover
|
A chatbot ( Two tools push to my phone via Pushover: one records an interested visitor's email, the other logs any question it couldn't answer.
|
π
2_openaiΒ Β·Β π§± OpenAI Agents SDK Β· SendGrid Β· Tracing
|
A multi-agent pipeline (
A |
π
3_crewΒ Β·Β π§± CrewAI (Agent/Task/Crew) Β· YAML config Β· Serper Β· Pydantic Β· Memory Β· Docker
- The CrewAI model: agents & tasks declared in
agents.yaml/tasks.yaml, assembled by a@CrewBaseclass. - Sequential vs hierarchical processes (a manager agent that delegates).
- Tools (
SerperDevTool, custom), Docker code execution, context passing between tasks, Pydantic outputs, and persistent memory (short-term RAG Β· long-term SQLite Β· entity). - Mixing models per-agent (GPT-4o lead, Claude Sonnet coder/judge).
| Crew | What it does |
|---|---|
π» coder |
A Python-developer agent that writes & runs code in a safe Docker sandbox to solve an assignment. |
βοΈ debate |
A debater argues both sides of a motion; a judge (Claude) decides the winner. |
π financial_researcher |
A researcher (web search) + analyst produce a polished company report. |
π stock_picker |
Hierarchical crew with a manager: finds trending companies, researches them, picks the best stock β with memory + push notifications. |
β engineering_team |
The capstone β a full software team: a Lead designs β a Backend Engineer codes (Docker) β a Frontend Engineer builds a Gradio UI β a Test Engineer writes unit tests. Requirements β working app. |
π
4_langgraphΒ Β·Β π§± LangGraph Β· LangChain tools Β· Playwright Β· Gradio
|
A self-evaluating co-worker ( You give it a request and a success criterion. A worker agent uses tools to attempt the task; an evaluator agent judges the result against your criterion β approving it, or routing back with feedback until the bar is met (or it needs to ask you a question). |
π
5_autogenΒ Β·Β π§± AutoGen AgentChat + Core Β· gRPC distributed runtime
|
A self-expanding world of entrepreneurs ( A |
π
6_mcpΒ Β·Β π§± MCP (clients + servers) Β· OpenAI Agents SDK Β· multi-model Β· SQLite Β· Gradio
- What MCP is: a standard protocol connecting agents to tools, data & resources via MCP servers.
- Consuming MCP servers in the OpenAI Agents SDK (
MCPServerStdio) β incl. community servers (fetch, Brave, memory, Playwright). - Writing my own MCP servers (
accounts_server.py,market_server.py,push_server.py) and a custom client. - Exposing not just tools but resources (reading an account / strategy over MCP).
- Running agents across many models (GPT Β· DeepSeek Β· Gemini Β· Grok via OpenRouter).
A continuously-running simulated hedge fund (trading_floor.py):
- π§βπΌ Four traders with distinct strategies β Warren (patience) Β· George (bold) Β· Ray (systematic) Β· Cathie (crypto) β each optionally on a different LLM.
- π¬ Each has a Researcher sub-agent (web fetch + Brave search + persistent memory over MCP), trading against a market via MCP servers and managing a real
Account(balance, holdings, transactions, P&L in SQLite). - β° A scheduler wakes the floor every N minutes during market hours β fully observable via tracing + a Gradio dashboard (
app.py).
π The grand finale β multi-agent orchestration + tools + memory + the MCP standard + multi-model, running autonomously.