# kashish1530/agentic-ai architecture

> Architecture diagram of the GitHub repository kashish1530/agentic-ai, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kashish1530/agentic-ai
- Repository: https://github.com/kashish1530/agentic-ai

## Overview

This repository is a five-day collection of agentic-AI lessons and runnable demos, culminating in a persistent, tool-using assistant with Streamlit and FastAPI interfaces. The principal workflow is a user request entering the capstone, which loads and updates user memory, calls the model, dispatches requested tools, applies safety checks, and returns an answer with source information. Separate lessons demonstrate alternative agent patterns, multi-agent routing, context management, reliability, evaluation, and model routing. Some branches are documented only by filenames; their internal wiring is therefore omitted.

Main entry points: [`DAY5/day5_s1_capstone.py`](https://github.com/kashish1530/agentic-ai/blob/main/DAY5/day5_s1_capstone.py) (Capstone Agent), [`DAY5/day5_s2_streamlit.py`](https://github.com/kashish1530/agentic-ai/blob/main/DAY5/day5_s2_streamlit.py) (Streamlit Chat), [`DAY5/day5_s2_fastapi.py`](https://github.com/kashish1530/agentic-ai/blob/main/DAY5/day5_s2_fastapi.py) (FastAPI Interface), [`DAY5/memory_store`](https://github.com/kashish1530/agentic-ai/tree/main/DAY5/memory_store) (User Memory)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interfaces["User Interfaces"]
  node_streamlit["Streamlit Chat"]
  node_fastapi["FastAPI Interface<br/>[day5_s2_fastapi.py]"]
end

subgraph group_capstone["Capstone Runtime"]
  node_capstone_agent["Capstone Agent"]
  node_memory[("User Memory")]
  node_tool_dispatch["Tool Dispatch"]
  node_safety["Safety Checks"]
  node_sources["Cited Sources"]
end

subgraph group_agent_lessons["Agent Patterns"]
  node_tool_calling["Tool Calling<br/>[s1_tool_calling.py]"]
  node_tools_demo["Tool Examples<br/>[s2_tools.py]"]
  node_multistep["Multi-step Agent<br/>[s3_multistep.py]"]
  node_mcp["MCP Lesson<br/>[s4_mcp.py]"]
  node_react["ReAct Loop<br/>[day2_s1_react.py]"]
  node_langgraph["LangGraph Agent"]
  node_multiagent["Multi-agent Routing"]
  node_pipeline["Pipeline Comparison"]
end

subgraph group_trust_ops["Trust And Operations"]
  node_context["Context Management"]
  node_observability["Run Observability"]
  node_reliability["Reliability Controls"]
  node_guardrails["Prompt Guardrails"]
  node_eval["Agent Evaluation<br/>[DAY4_S3.PY]"]
  node_model_routing["Model Routing<br/>[DAY4_S4.PY]"]
end

node_user(("User"))
node_groq["Groq Model API"]
node_tool_services{{"Tool Services"}}

node_user -->|"submits chat"| node_streamlit
node_streamlit -->|"invokes agent"| node_capstone_agent
node_user -->|"sends request"| node_fastapi
node_fastapi -->|"invokes agent"| node_capstone_agent
node_capstone_agent -->|"loads and saves"| node_memory
node_capstone_agent -->|"requests completion"| node_groq
node_capstone_agent -->|"dispatches calls"| node_tool_dispatch
node_tool_dispatch -->|"runs tools"| node_tool_services
node_capstone_agent -->|"checks response"| node_safety
node_capstone_agent -->|"records citations"| node_sources
node_streamlit -->|"loads preferences"| node_memory
node_tool_calling -->|"requests tool calls"| node_groq
node_tools_demo -->|"requests completion"| node_groq
node_multistep -->|"requests tool calls"| node_groq
node_react -->|"requests next step"| node_groq
node_langgraph -->|"runs agent"| node_groq
node_multiagent -->|"routes work"| node_groq
node_pipeline -->|"compares strategies"| node_groq
node_context -->|"compares prompts"| node_groq
node_observability -->|"invokes model"| node_groq
node_reliability -->|"requests tool calls"| node_groq
node_guardrails -->|"sends guarded prompt"| node_groq
node_eval -->|"judges responses"| node_groq
node_model_routing -->|"selects model tier"| node_groq

click node_streamlit "https://github.com/kashish1530/agentic-ai/blob/main/DAY5/day5_s2_streamlit.py"
click node_fastapi "https://github.com/kashish1530/agentic-ai/blob/main/DAY5/day5_s2_fastapi.py"
click node_capstone_agent "https://github.com/kashish1530/agentic-ai/blob/main/DAY5/day5_s1_capstone.py"
click node_memory "https://github.com/kashish1530/agentic-ai/tree/main/DAY5/memory_store"
click node_tool_dispatch "https://github.com/kashish1530/agentic-ai/blob/main/DAY5/day5_s1_capstone.py"
click node_safety "https://github.com/kashish1530/agentic-ai/blob/main/DAY5/day5_s1_capstone.py"
click node_sources "https://github.com/kashish1530/agentic-ai/blob/main/DAY5/day5_s1_capstone.py"
click node_tool_calling "https://github.com/kashish1530/agentic-ai/blob/main/DAY1/s1_tool_calling.py"
click node_tools_demo "https://github.com/kashish1530/agentic-ai/blob/main/DAY1/s2_tools.py"
click node_multistep "https://github.com/kashish1530/agentic-ai/blob/main/DAY1/s3_multistep.py"
click node_mcp "https://github.com/kashish1530/agentic-ai/blob/main/DAY1/s4_mcp.py"
click node_react "https://github.com/kashish1530/agentic-ai/blob/main/DAY2/day2_s1_react.py"
click node_langgraph "https://github.com/kashish1530/agentic-ai/blob/main/DAY2/day2_s2_langgraph.py"
click node_multiagent "https://github.com/kashish1530/agentic-ai/blob/main/DAY3/day3_s1_multiagent.py"
click node_pipeline "https://github.com/kashish1530/agentic-ai/blob/main/DAY3/day3_s2_pipeline_vs_agent.py"
click node_context "https://github.com/kashish1530/agentic-ai/blob/main/DAY3/day3_s3_contextengineering.py"
click node_observability "https://github.com/kashish1530/agentic-ai/blob/main/DAY3/day3_s4_observability.py"
click node_reliability "https://github.com/kashish1530/agentic-ai/blob/main/DAY2/day2_s4_reliability.py"
click node_guardrails "https://github.com/kashish1530/agentic-ai/blob/main/DAY4/day4_s2_guardrails.py"
click node_eval "https://github.com/kashish1530/agentic-ai/blob/main/DAY4/DAY4_S3.PY"
click node_model_routing "https://github.com/kashish1530/agentic-ai/blob/main/DAY4/DAY4_S4.PY"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_streamlit,node_fastapi,node_user toneBlue
class node_capstone_agent,node_memory,node_tool_dispatch,node_safety,node_sources toneAmber
class node_tool_calling,node_tools_demo,node_multistep,node_mcp,node_react,node_langgraph,node_multiagent,node_pipeline,node_groq toneMint
class node_context,node_observability,node_reliability,node_guardrails,node_eval,node_model_routing toneRose
class node_tool_services toneIndigo
```

## Components

### User Interfaces

- [Streamlit Chat](https://github.com/kashish1530/agentic-ai/blob/main/DAY5/day5_s2_streamlit.py): `DAY5/day5_s2_streamlit.py`
- [FastAPI Interface](https://github.com/kashish1530/agentic-ai/blob/main/DAY5/day5_s2_fastapi.py): `DAY5/day5_s2_fastapi.py`

### Capstone Runtime

- [Capstone Agent](https://github.com/kashish1530/agentic-ai/blob/main/DAY5/day5_s1_capstone.py): `DAY5/day5_s1_capstone.py`
- [User Memory](https://github.com/kashish1530/agentic-ai/tree/main/DAY5/memory_store): `DAY5/memory_store`
- [Tool Dispatch](https://github.com/kashish1530/agentic-ai/blob/main/DAY5/day5_s1_capstone.py): `DAY5/day5_s1_capstone.py`
- [Safety Checks](https://github.com/kashish1530/agentic-ai/blob/main/DAY5/day5_s1_capstone.py): `DAY5/day5_s1_capstone.py`
- [Cited Sources](https://github.com/kashish1530/agentic-ai/blob/main/DAY5/day5_s1_capstone.py): `DAY5/day5_s1_capstone.py`

### Agent Patterns

- [Tool Calling](https://github.com/kashish1530/agentic-ai/blob/main/DAY1/s1_tool_calling.py): `DAY1/s1_tool_calling.py`
- [Tool Examples](https://github.com/kashish1530/agentic-ai/blob/main/DAY1/s2_tools.py): `DAY1/s2_tools.py`
- [Multi-step Agent](https://github.com/kashish1530/agentic-ai/blob/main/DAY1/s3_multistep.py): `DAY1/s3_multistep.py`
- [MCP Lesson](https://github.com/kashish1530/agentic-ai/blob/main/DAY1/s4_mcp.py): `DAY1/s4_mcp.py`
- [ReAct Loop](https://github.com/kashish1530/agentic-ai/blob/main/DAY2/day2_s1_react.py): `DAY2/day2_s1_react.py`
- [LangGraph Agent](https://github.com/kashish1530/agentic-ai/blob/main/DAY2/day2_s2_langgraph.py): `DAY2/day2_s2_langgraph.py`
- [Multi-agent Routing](https://github.com/kashish1530/agentic-ai/blob/main/DAY3/day3_s1_multiagent.py): `DAY3/day3_s1_multiagent.py`
- [Pipeline Comparison](https://github.com/kashish1530/agentic-ai/blob/main/DAY3/day3_s2_pipeline_vs_agent.py): `DAY3/day3_s2_pipeline_vs_agent.py`

### Trust And Operations

- [Context Management](https://github.com/kashish1530/agentic-ai/blob/main/DAY3/day3_s3_contextengineering.py): `DAY3/day3_s3_contextengineering.py`
- [Run Observability](https://github.com/kashish1530/agentic-ai/blob/main/DAY3/day3_s4_observability.py): `DAY3/day3_s4_observability.py`
- [Reliability Controls](https://github.com/kashish1530/agentic-ai/blob/main/DAY2/day2_s4_reliability.py): `DAY2/day2_s4_reliability.py`
- [Prompt Guardrails](https://github.com/kashish1530/agentic-ai/blob/main/DAY4/day4_s2_guardrails.py): `DAY4/day4_s2_guardrails.py`
- [Agent Evaluation](https://github.com/kashish1530/agentic-ai/blob/main/DAY4/DAY4_S3.PY): `DAY4/DAY4_S3.PY`
- [Model Routing](https://github.com/kashish1530/agentic-ai/blob/main/DAY4/DAY4_S4.PY): `DAY4/DAY4_S4.PY`

### Other components

- **User**
- **Groq Model API**
- **Tool Services**

## Connections

- User → Streamlit Chat: submits chat
- Streamlit Chat → Capstone Agent: invokes agent
- User → FastAPI Interface: sends request
- FastAPI Interface → Capstone Agent: invokes agent
- Capstone Agent → User Memory: loads and saves
- Capstone Agent → Groq Model API: requests completion
- Capstone Agent → Tool Dispatch: dispatches calls
- Tool Dispatch → Tool Services: runs tools
- Capstone Agent → Safety Checks: checks response
- Capstone Agent → Cited Sources: records citations
- Streamlit Chat → User Memory: loads preferences
- Tool Calling → Groq Model API: requests tool calls
- Tool Examples → Groq Model API: requests completion
- Multi-step Agent → Groq Model API: requests tool calls
- ReAct Loop → Groq Model API: requests next step
- LangGraph Agent → Groq Model API: runs agent
- Multi-agent Routing → Groq Model API: routes work
- Pipeline Comparison → Groq Model API: compares strategies
- Context Management → Groq Model API: compares prompts
- Run Observability → Groq Model API: invokes model
- Reliability Controls → Groq Model API: requests tool calls
- Prompt Guardrails → Groq Model API: sends guarded prompt
- Agent Evaluation → Groq Model API: judges responses
- Model Routing → Groq Model API: selects model tier
