# entbappy/complete-agentic-ai-course architecture

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

- Interactive diagram: https://gitdiagram.com/entbappy/complete-agentic-ai-course
- Repository: https://github.com/entbappy/complete-agentic-ai-course

## Overview

#### Repository Scope
This is a course-material monorepo for agentic-AI concepts rather than one deployable application. It combines notebooks, PDFs, and several standalone Python examples covering LangChain agents, LangGraph workflows, validation, asynchronous programming, and interview preparation.

#### Primary Entry Points
Runnable project entry points are concentrated in:
- `LangChain-Multi-Agent-Research-System/app.py` and `LangChain-Multi-Agent-Research-System/main.py`
- `Langchain-Single-Agent/app.py` and `Langchain-Single-Agent/main.py`
- `LangGraph-Code/Agentic-Chatbot-using-LangGraph/app_simple.py`
- Variant chatbot UIs: `LangGraph-Code/Agentic-Chatbot-using-LangGraph/app_db.py`, `app_rag.py`, `app_hitl.py`, and `app_tool.py`

The numerous `LangGraph-Code/*.ipynb` files are instructional, independently executable workflow examples rather than modules in a single runtime.

#### Multi-Agent Research System
`LangChain-Multi-Agent-Research-System` is the most conventionally layered application:
- Agent definitions and delegation logic: `src/agents/agents.py`
- Research/tool integrations: `src/tools/tools.py`
- Pipeline orchestration: `src/pipelines/pipeline.py`

Control flow is expected to enter through the top-level app scripts, construct agents/tools, and execute the pipeline. The `src` boundary separates orchestration, agent behavior, and external-capability adapters.

#### Single-Agent LangChain Example
`Langchain-Single-Agent/main.py` and `Langchain-Single-Agent/app.py` provide a smaller standalone agent application. Supporting experimentation is isolated under `Langchain-Single-Agent/research/agent_demo.ipynb`. This forms the simpler baseline against which the multi-agent system’s delegation and pipeline layering can be understood.

#### LangGraph Workflow Curriculum
`LangGraph-Code` contains progressive examples of graph-based stateful control flow: prompt chaining, moderation, review, iteration, persistence, human-in-the-loop (HITL), subgraphs, shared subgraphs, and guardrails. Representative stages are in:
- `LangGraph-Code/3_Prompt_Chaining_Workflow.ipynb`
- `LangGraph-Code/8_Iterative_Workflows.ipynb`
- `LangGraph-Code/9_Persistence.ipynb`
- `LangGraph-Code/10_HITL.ipynb`
- `LangGraph-Code/11_subgraphs.ipynb`
- `LangGraph-Code/13_guardrails_crash_course.ipynb`

These are educational graph patterns, not a shared package dependency tree.

#### Agentic Chatbot Variants
`LangGraph-Code/Agentic-Chatbot-using-LangGraph` is a feature-oriented chatbot implementation with alternate graph backends:
- Basic conversation: `agentic_chatbot_backend.py`
- Tool-enabled agent: `agentic_chatbot_tool_backend.py`
- RAG-enabled agent: `agentic_chatbot_rag_backend.py`
- Persistent database-backed agent: `agentic_chatbot_db_backend.py`
- Human-approval/interrupt path: `agentic_chatbot_hitl_backend.py`

Each corresponding `app_*.py` file is a presentation/runtime entry point. The boundary is clear: app scripts collect/display conversation interactions; backend scripts define LangGraph execution behavior.

#### State, Retrieval, and External Dependencies
The chatbot persists local conversation-related state in SQLite artifacts: `chatbot.db`, `chatbot.db-wal`, and `chatbot.db-shm`. Its RAG path uses a local FAISS vector index at `faiss_db/index.faiss` and `faiss_db/index.pkl`. Python dependencies are scoped per subproject in `LangGraph-Code/requirements.txt`, `LangGraph-Code/Agentic-Chatbot-using-LangGraph/requirements.txt`, and the LangChain project requirements files. Environment files in LangGraph areas indicate external LLM/API credentials, but no cloud deployment infrastructure is represented in the tree.

Main entry points: [`LangGraph-Code/9_Persistence.ipynb`](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/9_Persistence.ipynb) (Persistence), [`LangGraph-Code/10_HITL.ipynb`](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/10_HITL.ipynb) (Human-in-the-loop), [`LangChain-Multi-Agent-Research-System/src/pipelines/pipeline.py`](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangChain-Multi-Agent-Research-System/src/pipelines/pipeline.py) (Research pipeline), [`LangChain-Multi-Agent-Research-System/src/agents/agents.py`](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangChain-Multi-Agent-Research-System/src/agents/agents.py) (Delegating agents)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_multi["Multi-Agent Research System"]
  node_multi_app["App entry point<br/>Python UI<br/>[app.py]"]
  node_multi_main["CLI entry point<br/>Python runner<br/>[main.py]"]
  node_pipeline["Research pipeline<br/>orchestration<br/>[pipeline.py]"]
  node_agents["Delegating agents<br/>agent logic<br/>[agents.py]"]
  node_tools{{"Research tools<br/>external adapters<br/>[tools.py]"}}
end

subgraph group_single["Single-Agent Example"]
  node_single_app["App entry point<br/>Python UI<br/>[app.py]"]
  node_single_main["CLI entry point<br/>Python runner<br/>[main.py]"]
  node_single_demo["Agent experiment<br/>notebook<br/>[agent_demo.ipynb]"]
end

subgraph group_curriculum["LangGraph Curriculum"]
  node_prompt_chain["Prompt chaining<br/>workflow notebook"]
  node_iterative["Iterative workflows<br/>workflow notebook"]
  node_persistence_lesson["Persistence<br/>workflow notebook"]
  node_hitl_lesson["Human-in-the-loop<br/>workflow notebook<br/>[10_HITL.ipynb]"]
  node_guardrails["Guardrails<br/>workflow notebook"]
end

subgraph group_chatbot["Agentic Chatbot Variants"]
  node_chat_simple_app["Basic chatbot UI<br/>Python app<br/>[app_simple.py]"]
  node_chat_variant_apps["Feature variant UIs<br/>Python apps"]
  node_basic_backend["Conversation graph<br/>LangGraph backend"]
  node_feature_backends["Feature graph backends<br/>LangGraph backends"]
  node_sqlite[("Conversation state<br/>SQLite<br/>[chatbot.db]")]
  node_faiss[("Retrieval index<br/>FAISS<br/>[index.faiss]")]
end

node_multi_app -->|"runs"| node_pipeline
node_multi_main -->|"runs"| node_pipeline
node_pipeline -->|"coordinates"| node_agents
node_agents -->|"uses"| node_tools
node_single_app -->|"launches"| node_single_main
node_single_demo -.->|"explores baseline"| node_single_main
node_prompt_chain -.->|"progresses to"| node_iterative
node_iterative -.->|"adds state"| node_persistence_lesson
node_persistence_lesson -.->|"adds intervention"| node_hitl_lesson
node_hitl_lesson -.->|"adds safety"| node_guardrails
node_chat_simple_app -->|"invokes"| node_basic_backend
node_chat_variant_apps -->|"invoke"| node_feature_backends
node_feature_backends -->|"persists conversations"| node_sqlite
node_feature_backends -->|"retrieves context"| node_faiss
node_persistence_lesson -.->|"illustrates pattern"| node_sqlite
node_hitl_lesson -.->|"informs HITL variant"| node_feature_backends

click node_multi_app "https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangChain-Multi-Agent-Research-System/app.py"
click node_multi_main "https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangChain-Multi-Agent-Research-System/main.py"
click node_pipeline "https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangChain-Multi-Agent-Research-System/src/pipelines/pipeline.py"
click node_agents "https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangChain-Multi-Agent-Research-System/src/agents/agents.py"
click node_tools "https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangChain-Multi-Agent-Research-System/src/tools/tools.py"
click node_single_app "https://github.com/entbappy/complete-agentic-ai-course/blob/main/Langchain-Single-Agent/app.py"
click node_single_main "https://github.com/entbappy/complete-agentic-ai-course/blob/main/Langchain-Single-Agent/main.py"
click node_single_demo "https://github.com/entbappy/complete-agentic-ai-course/blob/main/Langchain-Single-Agent/research/agent_demo.ipynb"
click node_prompt_chain "https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/3_Prompt_Chaining_Workflow.ipynb"
click node_iterative "https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/8_Iterative_Workflows.ipynb"
click node_persistence_lesson "https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/9_Persistence.ipynb"
click node_hitl_lesson "https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/10_HITL.ipynb"
click node_guardrails "https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/13_guardrails_crash_course.ipynb"
click node_chat_simple_app "https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/Agentic-Chatbot-using-LangGraph/app_simple.py"
click node_basic_backend "https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/Agentic-Chatbot-using-LangGraph/agentic_chatbot_backend.py"
click node_sqlite "https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/Agentic-Chatbot-using-LangGraph/chatbot.db"
click node_faiss "https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/Agentic-Chatbot-using-LangGraph/faiss_db/index.faiss"

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_multi_app,node_multi_main,node_pipeline,node_agents,node_tools toneBlue
class node_single_app,node_single_main,node_single_demo toneAmber
class node_prompt_chain,node_iterative,node_persistence_lesson,node_hitl_lesson,node_guardrails toneMint
class node_chat_simple_app,node_chat_variant_apps,node_basic_backend,node_feature_backends,node_sqlite,node_faiss toneRose
```

## Components

### Multi-Agent Research System

- [App entry point](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangChain-Multi-Agent-Research-System/app.py): Python UI · `LangChain-Multi-Agent-Research-System/app.py`
- [CLI entry point](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangChain-Multi-Agent-Research-System/main.py): Python runner · `LangChain-Multi-Agent-Research-System/main.py`
- [Research pipeline](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangChain-Multi-Agent-Research-System/src/pipelines/pipeline.py): orchestration · `LangChain-Multi-Agent-Research-System/src/pipelines/pipeline.py`
- [Delegating agents](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangChain-Multi-Agent-Research-System/src/agents/agents.py): agent logic · `LangChain-Multi-Agent-Research-System/src/agents/agents.py`
- [Research tools](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangChain-Multi-Agent-Research-System/src/tools/tools.py): external adapters · `LangChain-Multi-Agent-Research-System/src/tools/tools.py`

### Single-Agent Example

- [App entry point](https://github.com/entbappy/complete-agentic-ai-course/blob/main/Langchain-Single-Agent/app.py): Python UI · `Langchain-Single-Agent/app.py`
- [CLI entry point](https://github.com/entbappy/complete-agentic-ai-course/blob/main/Langchain-Single-Agent/main.py): Python runner · `Langchain-Single-Agent/main.py`
- [Agent experiment](https://github.com/entbappy/complete-agentic-ai-course/blob/main/Langchain-Single-Agent/research/agent_demo.ipynb): notebook · `Langchain-Single-Agent/research/agent_demo.ipynb`

### LangGraph Curriculum

Independent instructional notebooks, not a shared runtime.

- [Prompt chaining](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/3_Prompt_Chaining_Workflow.ipynb): workflow notebook · `LangGraph-Code/3_Prompt_Chaining_Workflow.ipynb`
- [Iterative workflows](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/8_Iterative_Workflows.ipynb): workflow notebook · `LangGraph-Code/8_Iterative_Workflows.ipynb`
- [Persistence](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/9_Persistence.ipynb): workflow notebook · `LangGraph-Code/9_Persistence.ipynb`
- [Human-in-the-loop](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/10_HITL.ipynb): workflow notebook · `LangGraph-Code/10_HITL.ipynb`
- [Guardrails](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/13_guardrails_crash_course.ipynb): workflow notebook · `LangGraph-Code/13_guardrails_crash_course.ipynb`

### Agentic Chatbot Variants

- [Basic chatbot UI](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/Agentic-Chatbot-using-LangGraph/app_simple.py): Python app · `LangGraph-Code/Agentic-Chatbot-using-LangGraph/app_simple.py`
- **Feature variant UIs**: Python apps · Database, RAG, HITL, and tool UI entry points.
- [Conversation graph](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/Agentic-Chatbot-using-LangGraph/agentic_chatbot_backend.py): LangGraph backend · `LangGraph-Code/Agentic-Chatbot-using-LangGraph/agentic_chatbot_backend.py`
- **Feature graph backends**: LangGraph backends · Tool, RAG, database, and approval/interrupt graph variants.
- [Conversation state](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/Agentic-Chatbot-using-LangGraph/chatbot.db): SQLite · `LangGraph-Code/Agentic-Chatbot-using-LangGraph/chatbot.db`
- [Retrieval index](https://github.com/entbappy/complete-agentic-ai-course/blob/main/LangGraph-Code/Agentic-Chatbot-using-LangGraph/faiss_db/index.faiss): FAISS · `LangGraph-Code/Agentic-Chatbot-using-LangGraph/faiss_db/index.faiss`

## Connections

- App entry point → Research pipeline: runs
- CLI entry point → Research pipeline: runs
- Research pipeline → Delegating agents: coordinates
- Delegating agents → Research tools: uses
- App entry point → CLI entry point: launches
- Agent experiment → CLI entry point: explores baseline
- Prompt chaining → Iterative workflows: progresses to
- Iterative workflows → Persistence: adds state
- Persistence → Human-in-the-loop: adds intervention
- Human-in-the-loop → Guardrails: adds safety
- Basic chatbot UI → Conversation graph: invokes
- Feature variant UIs → Feature graph backends: invoke
- Feature graph backends → Conversation state: persists conversations
- Feature graph backends → Retrieval index: retrieves context
- Persistence → Conversation state: illustrates pattern
- Human-in-the-loop → Feature graph backends: informs HITL variant
