Skip to content

Latest commit

Β 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ€– Master AI Agentic Engineering

Build & Deploy Autonomous AI Agents β€” a 6-Week Journey

Five leading agent frameworks. Six real projects. One repository.


OpenAI Agents SDK CrewAI LangGraph AutoGen MCP


🧭 Overview

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

🧰 Tech Stack β€” Everything Used in the Course

🧠 Agent Frameworks

OpenAI Agents SDK CrewAI LangGraph AutoGen MCP

πŸ€– Models & Providers

OpenAI Anthropic Gemini Ollama DeepSeek Grok OpenRouter

πŸ› οΈ Tools, Data & Integrations

Gradio Playwright Pydantic SQLite ChromaDB Serper Brave Search SendGrid Pushover Docker gRPC

βš™οΈ Language & Environment

Python uv Jupyter

πŸ“‹ 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

πŸš€ Quick Start

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 with uv run <file>.py Β· πŸ‘₯ CrewAI projects run with crewai run from inside the project folder.


πŸ“… The 6-Week Journey

🟒 Week 1 β€” Foundations

πŸ“ 1_foundations Β Β·Β  🧱 OpenAI / Anthropic / Ollama SDKs Β· Gradio Β· Pushover

πŸ“– What I learned

  • Calling LLMs directly via raw APIs, comparing multiple models (OpenAI, Claude, local via Ollama).
  • Designing prompts, system messages, and multi-step LLM workflows (one model feeding the next).
  • Tool calling from first principles β€” hand-written JSON tool schemas + an execution loop.
  • Reading a PDF as context and shipping a chat UI with Gradio.

πŸš€ Project Β· Career Digital Twin

A chatbot (app.py) that acts as me β€” answering questions about my career from my LinkedIn PDF + a personal summary.

Two tools push to my phone via Pushover: one records an interested visitor's email, the other logs any question it couldn't answer.

The foundational pattern β€” LLM + context + tools + UI β€” that every later framework builds on.


πŸ”΅ Week 2 β€” OpenAI Agents SDK

πŸ“ 2_openai Β Β·Β  🧱 OpenAI Agents SDK Β· SendGrid Β· Tracing

πŸ“– What I learned

  • Core primitives: Agent, Runner, function_tool, trace (observability dashboard).
  • Agents as tools β€” wrapping one agent so another can call it.
  • Handoffs β€” delegating control to a specialized agent.
  • Structured Outputs with Pydantic for typed, validated results.
  • A Sales Development Rep workflow: a planning manager orchestrating writer agents + an email handoff.

πŸš€ Project Β· Deep Research Assistant

A multi-agent pipeline (deep_research/) behind a Gradio UI:

  1. 🧠 planner β†’ N structured search terms
  2. πŸ”Ž search β†’ parallel web search + summaries
  3. ✍️ writer β†’ long structured markdown report
  4. πŸ“§ email β†’ clean HTML, sent via SendGrid

A ResearchManager orchestrates the flow and streams live status to the UI.


🟣 Week 3 β€” CrewAI

πŸ“ 3_crew Β Β·Β  🧱 CrewAI (Agent/Task/Crew) Β· YAML config Β· Serper Β· Pydantic Β· Memory Β· Docker

πŸ“– What I learned

  • The CrewAI model: agents & tasks declared in agents.yaml / tasks.yaml, assembled by a @CrewBase class.
  • 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).

πŸš€ Projects Β· Five Crews

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.

🟠 Week 4 β€” LangGraph

πŸ“ 4_langgraph Β Β·Β  🧱 LangGraph Β· LangChain tools Β· Playwright Β· Gradio

πŸ“– What I learned

  • The graph model: a typed State (with add_messages reducers), nodes, edges, and conditional edges for routing.
  • Compiling with a checkpointer (MemorySaver) for persistent, thread-based memory.
  • A rich LangChain toolset: Playwright browser, file management, Python REPL, Wikipedia, Serper search.
  • The worker β†’ tools β†’ evaluator loop.

πŸš€ Project Β· Sidekick

A self-evaluating co-worker (sidekick.py + app.py).

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).


πŸ”΄ Week 5 β€” AutoGen

πŸ“ 5_autogen Β Β·Β  🧱 AutoGen AgentChat + Core Β· gRPC distributed runtime

πŸ“– What I learned

  • AutoGen AgentChat β€” AssistantAgent, conversations, tool use.
  • AutoGen Core β€” the actor model: RoutedAgent, @message_handler, message passing, runtime registration.
  • Running agents on a distributed gRPC runtime so many run concurrently.

πŸš€ Project Β· Agent Factory

A self-expanding world of entrepreneurs (world.py).

A Creator (creator.py) takes an agent template (agent.py), asks an LLM to generate a brand-new agent with a unique personality, writes it to a file & registers it live. Each agent invents a business idea and may bounce it off another agent to refine it β€” 20 agents spawning ideas on the gRPC runtime.


⚫ Week 6 β€” MCP (Model Context Protocol)

πŸ“ 6_mcp Β Β·Β  🧱 MCP (clients + servers) Β· OpenAI Agents SDK Β· multi-model Β· SQLite Β· Gradio

πŸ“– What I learned

  • 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).

πŸš€ Project Β· Autonomous Trading Floor

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.


⭐ 6 frameworks · 6 projects · 1 journey from raw API calls to fully autonomous agents.


Built with the OpenAI Agents SDK Β· CrewAI Β· LangGraph Β· AutoGen Β· MCP

About

πŸ€– Build & deploy autonomous AI agents β€” 6 real projects across 5 leading frameworks: OpenAI Agents SDK Β· CrewAI Β· LangGraph Β· AutoGen Β· MCP.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages