Syed Umer Hasan — SysDE @ Amazon | IEEE Senior Member | 11x Cloud Certified
About Me
Syed Umer Hasan
System Development Engineer @ Amazon
IEEE Senior Member | AWS Book Author
Co-founder: codeforgeeks.com
11x Cloud Certified
What We're Building Toward
Agents that detect, diagnose, fix, and learn
— without waking you up at 3am.
Today we'll build every piece of this system from scratch.
LLM vs Agentic AI
LLM (ChatGPT)
Agentic AI
Interaction
Single prompt → response
Autonomous loop until task done
Tools
None (just text)
Reads files, runs code, calls APIs
Memory
Per-conversation only
Persists across sessions
Decisions
You decide next step
Agent decides next step
Collaboration
One model
Multiple agents coordinating
An agent is an LLM + tools + a loop + memory. It acts, not just responds.
The Agent Loop
Lab 01: You build this loop from scratch
The Framework Landscape
Framework
By
Strength
Weakness
LangChain
LangChain Inc
Ecosystem, chains, RAG
Complex abstractions, heavy
LangGraph
LangChain Inc
Stateful graphs, cycles
Steep learning curve
CrewAI
Community
Multi-agent roles
Less flexible routing
Strands Agents
AWS
Simple, model-agnostic, production
Newer ecosystem
We use Strands Agents SDK — minimal boilerplate, swappable models, built for production.
Why Strands Agents
from strands import Agent
from strands_tools import file_read, shell
agent = Agent(
model=AnthropicModel("claude-haiku-4-5"),
tools=[file_read, shell],
system_prompt="You are a DevOps assistant."
)
result = agent("Find and fix the failing service")
Simple
Agent in 5 lines
Flexible
Swap Ollama/Claude/Bedrock
Production
Sessions, OTEL, multi-agent
What Is a Tool?
A function the LLM can call. The agent decides when to use it.
# Custom tool
from strands import tool
@tool
def check_service(name: str):
"""Check if a service is healthy"""
result = subprocess.run(
["systemctl", "status", name],
capture_output=True
)
return result.stdout
Model Context Protocol — a universal tool standard
Tools as external servers — language agnostic
Agent discovers tools dynamically at runtime
One protocol, infinite integrations
Lab 01 (07_web_fetch): MCP web search server
What Is HITL?
Human-in-the-Loop — safety before dangerous actions
from strands.agent.conversation_manager import SlidingWindowConversationManager
from strands.handlers.tool_handler import HumanInTheLoop
agent = Agent(
tools=[file_read, file_write, shell],
callback_handler=callback_handler,
# Ask human before write/shell operations
tool_handler=HumanInTheLoop(allowed_tools=["file_read"])
)
Allowed
file_read executes freely
Requires Approval
file_write, shell ask the user first
Lab 01: All write operations use HITL
Stateful Agents
Memory that survives restarts
# Session persistence
from strands.session import FileSessionManager
agent = Agent(
session_manager=FileSessionManager(
session_id="user-123",
storage_dir="./sessions"
)
)
# Conversation history persists!
# Key-value state
from strands import tool
from strands.types.tools import ToolContext
@tool(context=True)
def save_note(context: ToolContext,
key: str, value: str):
"""Save a note to memory"""
context.state[key] = value
return f"Saved: {key}"
Sessions = conversation history. State = structured key-value data. Both persist.
Each lab builds on the previous. By the end you have every building block for self-healing agents.
Demo Time
$ python3 lab_03_agents_as_tools/08_coding_assistant.py
> Find the bug in server.py and fix it
│ Let me analyze the code...
● file_read — reading server.py
│ I found a null pointer on line 42.
● file_write — patching the null check
● shell — running pytest
│ All 12 tests pass. The bug is fixed.
────────────────────────────────────────
A Claude Code-like CLI. Built with Strands in ~50 lines.
Try It Now
git clone https://github.com/SyedUmerHasan/ai-summit-labs.git
cd ai-summit-labs
docker compose up -d
python3 -m venv .venv && source .venv/bin/activate
pip install -e . && pip install -r requirements.txt
# Run your first agent
python3 lab_01_first_agent/01_basic_agent.py
github.com/SyedUmerHasan/ai-summit-labs
syedumerhasan.dev
strandsagents.com
Thank You
Syed Umer Hasan
SysDE @ Amazon | IEEE Senior Member | AWS Book Author