This project implements an end‑to‑end vehicle predictive maintenance and customer interaction system. It combines three intelligent agents working in a pipeline:
- Prediction Agent – Processes real‑time vehicle sensor data to detect anomalies.
- Diagnosis Agent – Analyzes anomalies using ML models + rule‑based logic to determine the likely issue.
- Customer Interaction Agent – Interacts with the vehicle owner in natural Hinglish, explains the issue, and schedules service appointments.
The architecture is modular, node‑based, and built using a LangGraph-style pipeline. Future agents like Scheduling, Insights, and Feedback can be plugged in easily.
- Autoencoder-based latent representation of sensor data
- Reconstruction error to detect anomalies
- Rule-based domain logic
- XGBoost fallback model
- Optional FAISS-based RAG for contextual support
- Outputs structured JSON with:
diagnosisconfidenceexplanationsource
- LLM-powered Hinglish conversation
- Maintains conversational memory
- Supports MCP tool calls:
find_centernormalise_datebook_slot
- LLM-powered Hinglish conversation
- Maintains conversational memory
- Supports MCP tool calls:
find_centernormalise_datebook_slot
- Dual interaction modes:
- Text mode → traditional typed conversation
- Voice mode → powered by Azure Cognitive Services Speech
- Blocking TTS (agent speaks Hinglish in natural Indian voices)
- Continuous STT (owner replies naturally, no timeout pressure)
- Console-based interaction
- Can later integrate with Twilio, WhatsApp, or voice interfaces
- UEBA for agent behavior monitoring
- Semantic Kernel for RBAC
- JSON-based structured inter-agent communication (MCP / A2A)
├── CustomerInteraction/
│ ├── data/
│ └── tools/
| |__tools.py
| |__ tools_registry.py
│ ├── agent.py
│ ├── customer_node2.py
│ ├── node_base.py
│
│
├── Diagnosis_Agent/
│ ├── models/
│ │ ├── diagnosis_label_encoder.py
│ │ ├── diagnosis_node.py
│ │ ├── faiss.index
│ │ ├── faiss_meta.pkl
│ │ ├── node_base.py
│ │ ├── xgb_diagnosis.pkl
│ │ └── ...
│ └── tools/
│ ├── diagnosis_engine.py
│ ├── fallback.py
│ ├── generate_initial_csv.py
│ └── train_xg.py
│
├── Prediction_Agent/
│ ├── model/
│ │ └── models/
│ │ ├── autoencoder.pt
│ │ ├── scaler.pkl
│ │ ├── xgb_model.pkl
│ │ ├── classification_report.txt
│ │ ├── __init__.py
│ │ ├── node_base.py
│ │ ├── prediction_tool.py
│ │ ├── predictive_node.py
│ │ └── predictive_tool.py
│ └── train.py
│
├── insights_agent/
│ └── ... (future analytics agent)
│
├── schedulingAgent/
│ └── ... (future scheduling agent)
│
├── master.py
├── sensor_simulator.py
└── requirements.txt
--
git clone <repo_url>Create a .env file: GROQ_API_KEY=<your_groq_api_key>
python Langraph_master.py
- Scheduling Agent – Auto-booking based on user preferences
- Insights Agent – Failure analytics + user behavior
- Feedback Agent – Post-service feedback collection
- Python 3.10+
- NumPy, Pandas
- scikit-learn, XGBoost
- PyTorch (autoencoder)
- FAISS (RAG)
- Groq (LLM inference)
- MCPClient (tool calling)
- LangGraph (node orchestration)
- asyncio
Advitiya Prakash