Skip to content

en-medina/network-support-chatbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Ask DeepWiki

network-support-chatbot

Resume

This Master’s Thesis addresses the design, implementation, and evaluation of a chatbot using a multi-agent architecture to provide specialized technical support for local area networks (LAN). The project stems from the student’s interest in applying generative artificial intelligence to solve complex problems in technological environments.

The main objective is to develop an intelligent support system that leverages generative AI models and a multi-agent architecture to deliver accurate and contextualized responses. The proposed solution is composed of four specialized agents: a classification agent to route queries, a knowledge agent that uses the Retrieval-Augmented Generation (RAG) technique to consult internal documentation, a connectivity agent to perform real-time network diagnostics, and an escalation agent to handle requests requiring human intervention.

Among the technical requirements, special emphasis is placed on optimizing a language model using the Low-Rank Adaptation (LoRA) technique to improve the accuracy of request classification. In addition, the project considers the development of a vector database with multilingual embeddings to ensure the system’s knowledge remains relevant and up to date. User interaction will be enabled through the Telegram messaging platform, supported by a serverless architecture. Finally, the chatbot’s performance will be evaluated in real-world scenarios, measuring both its accuracy and user satisfaction.

Core Architecture Components

1. Main Orchestrator

The NetworkSupportChatbot class serves as the central orchestrator that initializes all agents and manages the workflow 2 . It creates a LangGraph StateGraph workflow with memory persistence using MemorySaver.

2. Agent State Management

The system maintains conversation state through the AgentState TypedDict structure 3 . This state tracks:

  • Message history across different agent types
  • User context (question, language)
  • Processing metadata (scores, actions)
  • Final responses

3. Multi-Agent System

The architecture implements four specialized agents, each with distinct responsibilities:

Triage Agent

Routes incoming queries to appropriate specialized agents 4 . Uses pattern matching to classify requests and defaults to the knowledge agent when unclear.

Connectivity Agent

Performs network diagnostics using tools like ping, DNS queries, and port checks 5 . Implements a ReAct pattern for tool usage with iterative reasoning.

Knowledge Agent

Retrieves information from a vector database using semantic search 6 . Routes to escalation if knowledge relevance scores are below threshold.

Escalation Agent

Handles complex issues requiring human intervention by creating support tickets 7 . Integrates with ClickUp for ticket management.

Based on the codebase context, you're asking for the directory structure of the network support chatbot system. Here's the comprehensive directory structure for the en-medina/network-support-chatbot repository:

Directory Structure

en-medina/network-support-chatbot/
β”œβ”€β”€ lambda/
β”‚   └── generator/
β”‚       β”œβ”€β”€ agents/
β”‚       β”‚   β”œβ”€β”€ networksupportchatbot.py      # Main orchestrator class
β”‚       β”‚   β”œβ”€β”€ triageagent.py                # Query routing agent
β”‚       β”‚   β”œβ”€β”€ connectivityagent.py          # Network diagnostics agent
β”‚       β”‚   β”œβ”€β”€ knowledgeagent.py             # Knowledge retrieval agent
β”‚       β”‚   β”œβ”€β”€ escalationagent.py            # Human escalation agent
β”‚       β”‚   └── state.py                      # AgentState management
β”‚       β”œβ”€β”€ tools/
β”‚       β”‚   β”œβ”€β”€ network.py                    # Network diagnostic tools
β”‚       β”‚   β”œβ”€β”€ vectordb.py                   # Vector database integration
β”‚       β”‚   β”œβ”€β”€ model.py                      # Model selection utilities
β”‚       β”‚   β”œβ”€β”€ language.py                   # Language detection
β”‚       β”‚   └── escalation.py                # Escalation tools
β”‚       β”œβ”€β”€ parser/
β”‚       β”‚   β”œβ”€β”€ knowledge.py                  # Knowledge response parsers
β”‚       β”‚   β”œβ”€β”€ connectivity.py               # Connectivity response parsers
β”‚       β”‚   └── escalation.py                # Escalation response parsers
β”‚       β”œβ”€β”€ train/
β”‚       β”‚   └── data/
β”‚       β”‚       └── json/
β”‚       β”‚           └── triage_train.json     # Training data for triage agent
β”‚       β”œβ”€β”€ test/
β”‚       β”‚   β”œβ”€β”€ playground.ipynb              # Interactive development notebook
β”‚       β”‚   β”œβ”€β”€ with_langgraph.py             # LangGraph testing framework
β”‚       β”‚   └── requirements-full.txt         # Development dependencies
β”‚       └── settings.py                       # Configuration management
β”œβ”€β”€ infrastructure/                           # AWS deployment configs
β”œβ”€β”€ diagram.drawio                           # System architecture diagram
β”œβ”€β”€ LLM_PROMPT.md                           # Development prompts
└── Dockerfile                              # Container configuration

Key Directory Explanations

/lambda/generator/agents/

Contains the core multi-agent system implementation 1 . The main orchestrator initializes all four specialized agents and manages the LangGraph workflow.

/lambda/generator/tools/

Houses external service integrations and utility functions. Network tools provide diagnostic capabilities 2 , while the vector database tools enable knowledge retrieval.

/lambda/generator/test/

Development and testing infrastructure including the interactive Jupyter notebook 3 for testing HuggingFace integrations and the standalone LangGraph testing framework 4 .

/lambda/generator/train/

Training data and model fine-tuning resources, specifically the triage agent training dataset 5 containing labeled examples for query classification.

Workflow Architecture

The system uses a state machine pattern where agents can route to each other based on processing outcomes 8 :

START β†’ Triage β†’ [Connectivity|Knowledge|Escalation] β†’ END

Each agent implements a route_condition method that determines the next step in the workflow based on the current state.

External Integrations

The system integrates with multiple external services:

  • AWS Bedrock: For LLM inference with different models per agent
  • Pinecone: Vector database for knowledge retrieval 9
  • ClickUp: Task management for escalated issues
  • Telegram: User interface via webhook integration

Deployment Infrastructure

The system deploys as containerized AWS Lambda functions with:

  • Webhook handler for receiving Telegram messages
  • Generator Lambda containing the multi-agent system
  • SQS queuing for asynchronous message processing
  • Environment-specific model selection supporting local development

Key Design Patterns

  1. Event-Driven: SQS decouples message reception from processing
  2. State Machine: LangGraph manages conversation flow and context
  3. Multi-Agent: Domain-specific expertise through specialized agents
  4. Tool Integration: External capabilities via service adapters
  5. Multilingual: Language detection and response localization

The architecture provides scalability through stateless processing, horizontal Lambda scaling, and optimized model selection based on task complexity.

Notes

The system demonstrates a sophisticated approach to conversational AI by combining multiple specialized agents with external tool integration. The LangGraph framework enables complex workflow orchestration while maintaining conversation state across agent transitions. The modular design allows for independent agent development and testing while ensuring cohesive system behavior.

About

πŸ€– Multi-agent LLM network support chatbot for enterprise IT, built with LLaMA and LangGraph.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors