diff --git a/multi-agentic-travel-advisor/chatbot/DOCKER_TAG b/agentic-workflows/multi-agentic-travel-advisor/chatbot/DOCKER_TAG
similarity index 100%
rename from multi-agentic-travel-advisor/chatbot/DOCKER_TAG
rename to agentic-workflows/multi-agentic-travel-advisor/chatbot/DOCKER_TAG
diff --git a/multi-agentic-travel-advisor/chatbot/Dockerfile b/agentic-workflows/multi-agentic-travel-advisor/chatbot/Dockerfile
similarity index 97%
rename from multi-agentic-travel-advisor/chatbot/Dockerfile
rename to agentic-workflows/multi-agentic-travel-advisor/chatbot/Dockerfile
index 0d9366122fa3798243b37758b6db670c4983a3f0..d44c5ea88ad7a02b02da94b486f84b9a9aa95ab1 100644
--- a/multi-agentic-travel-advisor/chatbot/Dockerfile
+++ b/agentic-workflows/multi-agentic-travel-advisor/chatbot/Dockerfile
@@ -1,5 +1,5 @@
 # Use a slim Python base image
-FROM python:3.10-slim
+FROM python:3.12-slim
 
 ENV PYTHONUNBUFFERED=1
 
diff --git a/multi-agentic-travel-advisor/chatbot/app.py b/agentic-workflows/multi-agentic-travel-advisor/chatbot/app.py
similarity index 51%
rename from multi-agentic-travel-advisor/chatbot/app.py
rename to agentic-workflows/multi-agentic-travel-advisor/chatbot/app.py
index 718fe520fa2ea4a205f97e07c23441b62cc12835..8d41823ecbfba15a2e0087615c5ad5979491c649 100644
--- a/multi-agentic-travel-advisor/chatbot/app.py
+++ b/agentic-workflows/multi-agentic-travel-advisor/chatbot/app.py
@@ -1,4 +1,4 @@
-from flask import Flask, render_template, request, redirect, url_for, session
+from flask import Flask, render_template, request, redirect, url_for, session, jsonify, render_template_string
 import logging
 
 # Initialize Flask app
@@ -45,3 +45,42 @@ def chat():
         chat_history = ["No conversation history yet."]
 
     return render_template("chat.html", chat_history=chat_history)
+
+@app.route("/ask", methods=["POST"])
+def ask():
+    data = request.get_json()
+    user_query = data.get("user_query", "")
+    if user_query:
+        logger.info(f"User query received via AJAX: {user_query}")
+        parameters.clear()
+        parameters.append(user_query)
+
+        try:
+            app.chatbot_instance.receive_new_query(user_query)
+        except Exception as e:
+            logger.error("Error with chatbot_instance: %s", e)
+            return jsonify({"success": False, "error": str(e)}), 500
+
+    return jsonify({"success": True})
+
+
+@app.route("/chat_history", methods=["GET"])
+def chat_history():
+    try:
+        with open("chat_log.txt", "r", encoding="utf-8") as log_file:
+            lines = log_file.readlines()
+            chat_history = [line.strip() for line in lines if line.strip()]
+    except FileNotFoundError:
+        chat_history = ["No conversation history yet."]
+
+    html = render_template_string('''
+        <h2><i class="fas fa-comments"></i> Chat History</h2>
+        {% for line in chat_history %}
+            <p class="chat-line {{ 'user' if 'User:' in line else 'bot' }}">
+                <i class="fas {{ 'fa-user' if 'User:' in line else 'fa-robot' }}"></i>
+                {{ line|safe }}
+            </p>
+        {% endfor %}
+    ''', chat_history=chat_history)
+
+    return html
\ No newline at end of file
diff --git a/multi-agentic-travel-advisor/chatbot/build_and_deploy.sh b/agentic-workflows/multi-agentic-travel-advisor/chatbot/build_and_deploy.sh
similarity index 100%
rename from multi-agentic-travel-advisor/chatbot/build_and_deploy.sh
rename to agentic-workflows/multi-agentic-travel-advisor/chatbot/build_and_deploy.sh
diff --git a/multi-agentic-travel-advisor/chatbot/chatbot.proto b/agentic-workflows/multi-agentic-travel-advisor/chatbot/chatbot.proto
similarity index 100%
rename from multi-agentic-travel-advisor/chatbot/chatbot.proto
rename to agentic-workflows/multi-agentic-travel-advisor/chatbot/chatbot.proto
diff --git a/multi-agentic-travel-advisor/chatbot/chatbot_pb2.py b/agentic-workflows/multi-agentic-travel-advisor/chatbot/chatbot_pb2.py
similarity index 100%
rename from multi-agentic-travel-advisor/chatbot/chatbot_pb2.py
rename to agentic-workflows/multi-agentic-travel-advisor/chatbot/chatbot_pb2.py
diff --git a/multi-agentic-travel-advisor/chatbot/chatbot_pb2_grpc.py b/agentic-workflows/multi-agentic-travel-advisor/chatbot/chatbot_pb2_grpc.py
similarity index 100%
rename from multi-agentic-travel-advisor/chatbot/chatbot_pb2_grpc.py
rename to agentic-workflows/multi-agentic-travel-advisor/chatbot/chatbot_pb2_grpc.py
diff --git a/multi-agentic-travel-advisor/chatbot/client.py b/agentic-workflows/multi-agentic-travel-advisor/chatbot/client.py
similarity index 100%
rename from multi-agentic-travel-advisor/chatbot/client.py
rename to agentic-workflows/multi-agentic-travel-advisor/chatbot/client.py
diff --git a/agentic-workflows/multi-agentic-travel-advisor/chatbot/requirements.txt b/agentic-workflows/multi-agentic-travel-advisor/chatbot/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4852bc46a9a56dcb788bc051e0e448dda65c3012
--- /dev/null
+++ b/agentic-workflows/multi-agentic-travel-advisor/chatbot/requirements.txt
@@ -0,0 +1,6 @@
+grpcio
+grpcio-tools
+grpc-interceptor
+protobuf
+multithreading
+Flask
\ No newline at end of file
diff --git a/multi-agentic-travel-advisor/chatbot/server.py b/agentic-workflows/multi-agentic-travel-advisor/chatbot/server.py
similarity index 100%
rename from multi-agentic-travel-advisor/chatbot/server.py
rename to agentic-workflows/multi-agentic-travel-advisor/chatbot/server.py
diff --git a/agentic-workflows/multi-agentic-travel-advisor/chatbot/templates/chat.html b/agentic-workflows/multi-agentic-travel-advisor/chatbot/templates/chat.html
new file mode 100644
index 0000000000000000000000000000000000000000..6f685f75237b7d16b60a62fb08c86c5092b839e0
--- /dev/null
+++ b/agentic-workflows/multi-agentic-travel-advisor/chatbot/templates/chat.html
@@ -0,0 +1,312 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Travel Advisor</title>
+
+    <!-- Leaflet.js CSS -->
+    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" />
+
+    <!-- Font Awesome for icons -->
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css">
+
+    <!-- Google Fonts -->
+    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
+    <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&display=swap" rel="stylesheet">
+
+    <style>
+        body, html {
+            height: 100%;
+            margin: 0;
+            font-family: 'Inter', sans-serif;
+        }
+
+        #map {
+            position: absolute;
+            top: 0;
+            left: 0;
+            right: 0;
+            bottom: 0;
+            z-index: -1;
+        }
+
+        .overlay {
+            background: rgba(228, 216, 216, 0.6);
+            backdrop-filter: blur(6px);
+            -webkit-backdrop-filter: blur(6px);
+            min-height: 100vh;
+            padding: 40px 20px;
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+            z-index: 1;
+        }
+
+        h1 {
+            font-family: 'Playfair Display', serif;
+            font-size: 2.8em;
+            color: #2c3e50;
+            margin-bottom: 20px;
+            letter-spacing: 0.5px;
+        }
+
+
+        form {
+            display: flex;
+            background: #ffffff;
+            padding: 15px 20px;
+            border-radius: 12px;
+            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
+            width: 100%;
+            max-width: 600px;
+            margin-bottom: 30px;
+            gap: 10px;
+            animation: fadeIn 0.7s ease-in-out;
+        }
+
+        input[type="text"] {
+            flex: 1;
+            padding: 12px;
+            font-size: 16px;
+            border: 1px solid #ccc;
+            border-radius: 6px;
+        }
+
+        button {
+            background-color: #3498db;
+            color: white;
+            border: none;
+            border-radius: 6px;
+            padding: 12px 20px;
+            font-size: 16px;
+            cursor: pointer;
+            transition: background-color 0.3s ease, transform 0.2s ease;
+        }
+
+        button:hover {
+            background-color: #2980b9;
+            transform: translateY(-2px);
+            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
+        }
+
+        .chat-box {
+            background: white;
+            overflow-y: auto;
+            padding: 15px;
+            border-radius: 12px;
+            width: 100%;
+            max-width: 600px;
+            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
+            font-size: 14px;
+            word-wrap: break-word;
+            display: flex;
+            flex-direction: column;
+            gap: 10px;
+            animation: fadeIn 0.8s ease-in-out;
+        }
+
+        .chat-line {
+            position: relative;
+            padding: 12px 16px;
+            border-radius: 16px;
+            max-width: 80%;
+            line-height: 1.5;
+            word-wrap: break-word;
+            overflow-wrap: break-word;
+            word-break: break-word;
+        }
+
+        .user {
+            align-self: flex-end;
+            background-color: #3498db;
+            color: white;
+        }
+
+        .bot {
+            align-self: flex-start;
+            background-color: #f1f1f1;
+            color: #333;
+        }
+
+        .user::after {
+            content: "";
+            position: absolute;
+            right: -8px;
+            top: 50%;
+            border: 8px solid transparent;
+            border-left-color: #3498db;
+            transform: translateY(-50%);
+        }
+
+        .bot::before {
+            content: "";
+            position: absolute;
+            left: -8px;
+            top: 50%;
+            border: 8px solid transparent;
+            border-right-color: #f1f1f1;
+            transform: translateY(-50%);
+        }
+
+        @keyframes fadeIn {
+            from {
+                opacity: 0;
+                transform: translateY(10px);
+            }
+            to {
+                opacity: 1;
+                transform: translateY(0);
+            }
+        }
+
+        #typing-indicator {
+            display: none;
+            margin-top: 10px;
+            font-style: italic;
+            color: #999;
+        }
+        
+        @keyframes typingDots {
+            0% { content: ""; }
+            33% { content: "."; }
+            66% { content: ".."; }
+            100% { content: "..."; }
+        }
+
+        #typing-indicator .dots::after {
+            content: "...";
+            animation: typingDots 1s steps(3, end) infinite;
+        }
+
+        @media (max-width: 600px) {
+            form {
+                flex-direction: column;
+                gap: 8px;
+            }
+
+            input[type="text"],
+            button {
+                width: 100%;
+            }
+
+            .chat-box {
+                font-size: 12px;
+            }
+
+            h1 {
+                font-size: 1.8em;
+            }
+        }
+    </style>
+</head>
+<body>
+    <div id="map"></div>
+
+    <div class="overlay">
+        <h1><i class="fas fa-plane-departure"></i> Travel Advisor</h1>
+
+        <form id="chat-form">
+            <input type="text" id="user_query" name="user_query" placeholder="Ask right away!..." required>
+            <button type="submit"><i class="fas fa-paper-plane"></i></button>
+        </form>
+        <div id="typing-indicator">
+            <i class="fas fa-robot"></i> Bot is typing<span class="dots">...</span>
+        </div>
+
+        <div class="chat-box">
+            {% for line in chat_history %}
+                <div class="chat-line {{ 'user' if 'User:' in line else 'bot' }}">
+                    {{ line|safe }}
+                </div>
+            {% endfor %}
+        </div>
+
+        <div id="typing-indicator">
+            <i class="fas fa-robot"></i> Bot is typing...
+        </div>
+    </div>
+
+    <!-- Leaflet JS -->
+    <script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"></script>
+    <script>
+        var map = L.map('map').setView([51.505, -0.09], 2);
+
+        L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png', {
+            attribution: '&copy; OpenStreetMap contributors & CartoDB'
+        }).addTo(map);
+
+        L.marker([51.505, -0.09]).addTo(map)
+            .bindPopup("<b>Welcome!</b><br>Ask me about your next trip.")
+            .openPopup();
+    </script>
+
+    <!-- Auto scroll to latest chat -->
+    <script>
+        window.onload = function () {
+            const chatBox = document.querySelector('.chat-box');
+            chatBox.scrollTop = chatBox.scrollHeight;
+        };
+    </script>
+
+    <!-- Chat Submit and Polling -->
+    <script>
+        document.getElementById('chat-form').addEventListener('submit', function (e) {
+            e.preventDefault();
+            const userInput = document.getElementById('user_query').value.trim();
+            if (!userInput) return;
+
+            // Add user's message to chat box immediately
+            const chatBox = document.querySelector('.chat-box');
+            const userLine = document.createElement('div');
+            userLine.className = 'chat-line user';
+            userLine.textContent = userInput;
+            chatBox.appendChild(userLine);
+            chatBox.scrollTop = chatBox.scrollHeight;
+
+            // Clear input and show typing indicator
+            document.getElementById('user_query').value = '';
+            document.getElementById('typing-indicator').style.display = 'block';
+
+            fetch('/ask', {
+                method: 'POST',
+                headers: {
+                    'Content-Type': 'application/json',
+                },
+                body: JSON.stringify({ user_query: userInput })
+            })
+            .then(response => response.json())
+            .then(data => {
+                if (data.success) {
+                    // Simulate typing delay to make indicator visible
+                    setTimeout(() => {
+                        updateChat();
+                    }, 1500); // Show typing indicator for 1.5 seconds
+                } else {
+                    console.error('Chatbot error:', data.error);
+                    document.getElementById('typing-indicator').style.display = 'none';
+                }
+            })
+            .catch(error => {
+                console.error('Network error:', error);
+                document.getElementById('typing-indicator').style.display = 'none';
+            });
+        });
+
+        function updateChat() {
+            fetch('/chat_history')
+                .then(response => response.text())
+                .then(html => {
+                    document.querySelector('.chat-box').innerHTML = html;
+                    const chatBox = document.querySelector('.chat-box');
+                    chatBox.scrollTop = chatBox.scrollHeight;
+                    document.getElementById('typing-indicator').style.display = 'none';
+                });
+        }
+
+        setInterval(updateChat, 1000); // Adjust polling frequency to reduce spam
+        updateChat();
+    </script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/multi-agentic-travel-advisor/food_rec_agent/DOCKER_TAG b/agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/DOCKER_TAG
similarity index 100%
rename from multi-agentic-travel-advisor/food_rec_agent/DOCKER_TAG
rename to agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/DOCKER_TAG
diff --git a/multi-agentic-travel-advisor/food_rec_agent/Dockerfile b/agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/Dockerfile
similarity index 97%
rename from multi-agentic-travel-advisor/food_rec_agent/Dockerfile
rename to agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/Dockerfile
index c1d8bdf80cdc49229de923de3e93a93681e04d6f..dea9a6ae3ed1301855722be35a96301d1660c391 100644
--- a/multi-agentic-travel-advisor/food_rec_agent/Dockerfile
+++ b/agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/Dockerfile
@@ -1,5 +1,5 @@
 # Use a slim Python base image
-FROM python:3.10-slim
+FROM python:3.12-slim
 
 ENV PYTHONUNBUFFERED=1
 
diff --git a/multi-agentic-travel-advisor/food_rec_agent/agent.proto b/agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/agent.proto
similarity index 100%
rename from multi-agentic-travel-advisor/food_rec_agent/agent.proto
rename to agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/agent.proto
diff --git a/multi-agentic-travel-advisor/food_rec_agent/build_and_deploy.sh b/agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/build_and_deploy.sh
similarity index 100%
rename from multi-agentic-travel-advisor/food_rec_agent/build_and_deploy.sh
rename to agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/build_and_deploy.sh
diff --git a/multi-agentic-travel-advisor/food_rec_agent/client.py b/agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/client.py
similarity index 100%
rename from multi-agentic-travel-advisor/food_rec_agent/client.py
rename to agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/client.py
diff --git a/agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/requirements.txt b/agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c36c7ede10096a3a3356eaac752a3157641de84f
--- /dev/null
+++ b/agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/requirements.txt
@@ -0,0 +1,7 @@
+grpcio
+grpcio-tools
+grpc-interceptor
+protobuf
+multithreading
+openai
+requests
\ No newline at end of file
diff --git a/multi-agentic-travel-advisor/food_rec_agent/server.py b/agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/server.py
similarity index 100%
rename from multi-agentic-travel-advisor/food_rec_agent/server.py
rename to agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/server.py
diff --git a/multi-agentic-travel-advisor/food_rec_agent/tool_calling/llm_client.py b/agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/tool_calling/llm_client.py
similarity index 100%
rename from multi-agentic-travel-advisor/food_rec_agent/tool_calling/llm_client.py
rename to agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/tool_calling/llm_client.py
diff --git a/multi-agentic-travel-advisor/food_rec_agent/tool_calling/tools.py b/agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/tool_calling/tools.py
similarity index 100%
rename from multi-agentic-travel-advisor/food_rec_agent/tool_calling/tools.py
rename to agentic-workflows/multi-agentic-travel-advisor/food_rec_agent/tool_calling/tools.py
diff --git a/multi-agentic-travel-advisor/places_agent/DOCKER_TAG b/agentic-workflows/multi-agentic-travel-advisor/places_agent/DOCKER_TAG
similarity index 100%
rename from multi-agentic-travel-advisor/places_agent/DOCKER_TAG
rename to agentic-workflows/multi-agentic-travel-advisor/places_agent/DOCKER_TAG
diff --git a/multi-agentic-travel-advisor/places_agent/Dockerfile b/agentic-workflows/multi-agentic-travel-advisor/places_agent/Dockerfile
similarity index 97%
rename from multi-agentic-travel-advisor/places_agent/Dockerfile
rename to agentic-workflows/multi-agentic-travel-advisor/places_agent/Dockerfile
index be59e34c1b827a1a2af1a96f3f188228f4876401..cf47266359c75f45371083384e133475fbf3d393 100644
--- a/multi-agentic-travel-advisor/places_agent/Dockerfile
+++ b/agentic-workflows/multi-agentic-travel-advisor/places_agent/Dockerfile
@@ -1,5 +1,5 @@
 # Use a slim Python base image
-FROM python:3.10-slim
+FROM python:3.12-slim
 
 ENV PYTHONUNBUFFERED=1
 
diff --git a/multi-agentic-travel-advisor/places_agent/agent.proto b/agentic-workflows/multi-agentic-travel-advisor/places_agent/agent.proto
similarity index 96%
rename from multi-agentic-travel-advisor/places_agent/agent.proto
rename to agentic-workflows/multi-agentic-travel-advisor/places_agent/agent.proto
index 92378c237d527ef36d8305b5ae17ff867c3193b1..cf19c08b1a87338b6c5ee72210f281763e7f8c38 100644
--- a/multi-agentic-travel-advisor/places_agent/agent.proto
+++ b/agentic-workflows/multi-agentic-travel-advisor/places_agent/agent.proto
@@ -18,7 +18,6 @@ enum AgentType {
     WEATHER = 1;
     PLACES = 2;
     FOOD = 3;
-    MAP = 4;
 }
 
 message AgentResponse {
diff --git a/multi-agentic-travel-advisor/places_agent/agent_pb2.py b/agentic-workflows/multi-agentic-travel-advisor/places_agent/agent_pb2.py
similarity index 100%
rename from multi-agentic-travel-advisor/places_agent/agent_pb2.py
rename to agentic-workflows/multi-agentic-travel-advisor/places_agent/agent_pb2.py
diff --git a/multi-agentic-travel-advisor/places_agent/agent_pb2_grpc.py b/agentic-workflows/multi-agentic-travel-advisor/places_agent/agent_pb2_grpc.py
similarity index 100%
rename from multi-agentic-travel-advisor/places_agent/agent_pb2_grpc.py
rename to agentic-workflows/multi-agentic-travel-advisor/places_agent/agent_pb2_grpc.py
diff --git a/multi-agentic-travel-advisor/places_agent/build_and_deploy.sh b/agentic-workflows/multi-agentic-travel-advisor/places_agent/build_and_deploy.sh
similarity index 100%
rename from multi-agentic-travel-advisor/places_agent/build_and_deploy.sh
rename to agentic-workflows/multi-agentic-travel-advisor/places_agent/build_and_deploy.sh
diff --git a/multi-agentic-travel-advisor/places_agent/client.py b/agentic-workflows/multi-agentic-travel-advisor/places_agent/client.py
similarity index 100%
rename from multi-agentic-travel-advisor/places_agent/client.py
rename to agentic-workflows/multi-agentic-travel-advisor/places_agent/client.py
diff --git a/multi-agentic-travel-advisor/places_agent/requirements.txt b/agentic-workflows/multi-agentic-travel-advisor/places_agent/requirements.txt
similarity index 50%
rename from multi-agentic-travel-advisor/places_agent/requirements.txt
rename to agentic-workflows/multi-agentic-travel-advisor/places_agent/requirements.txt
index 390e8a471a15ac115034d11d913826b596f20fd0..bad96f07ac98c49fc991ca51579be115086430c0 100644
--- a/multi-agentic-travel-advisor/places_agent/requirements.txt
+++ b/agentic-workflows/multi-agentic-travel-advisor/places_agent/requirements.txt
@@ -1,7 +1,7 @@
-grpcio==1.38.0
-grpcio-tools==1.38.0
+grpcio
+grpcio-tools
 grpc-interceptor
-protobuf==3.16.0
+protobuf
 multithreading
 openai
 requests
diff --git a/multi-agentic-travel-advisor/places_agent/server.py b/agentic-workflows/multi-agentic-travel-advisor/places_agent/server.py
similarity index 100%
rename from multi-agentic-travel-advisor/places_agent/server.py
rename to agentic-workflows/multi-agentic-travel-advisor/places_agent/server.py
diff --git a/multi-agentic-travel-advisor/places_agent/tool_calling/llm_client.py b/agentic-workflows/multi-agentic-travel-advisor/places_agent/tool_calling/llm_client.py
similarity index 100%
rename from multi-agentic-travel-advisor/places_agent/tool_calling/llm_client.py
rename to agentic-workflows/multi-agentic-travel-advisor/places_agent/tool_calling/llm_client.py
diff --git a/multi-agentic-travel-advisor/places_agent/tool_calling/tools.py b/agentic-workflows/multi-agentic-travel-advisor/places_agent/tool_calling/tools.py
similarity index 100%
rename from multi-agentic-travel-advisor/places_agent/tool_calling/tools.py
rename to agentic-workflows/multi-agentic-travel-advisor/places_agent/tool_calling/tools.py
diff --git a/multi-agentic-travel-advisor/planner/DOCKER_TAG b/agentic-workflows/multi-agentic-travel-advisor/planner/DOCKER_TAG
similarity index 100%
rename from multi-agentic-travel-advisor/planner/DOCKER_TAG
rename to agentic-workflows/multi-agentic-travel-advisor/planner/DOCKER_TAG
diff --git a/multi-agentic-travel-advisor/planner/Dockerfile b/agentic-workflows/multi-agentic-travel-advisor/planner/Dockerfile
similarity index 97%
rename from multi-agentic-travel-advisor/planner/Dockerfile
rename to agentic-workflows/multi-agentic-travel-advisor/planner/Dockerfile
index f2760fbb8e683d3b47aaec03555921ea36b16ab0..0c602cc142226f0938d55d42a33c931f8c661bc1 100644
--- a/multi-agentic-travel-advisor/planner/Dockerfile
+++ b/agentic-workflows/multi-agentic-travel-advisor/planner/Dockerfile
@@ -1,5 +1,5 @@
 # Use a slim Python base image
-FROM python:3.10-slim
+FROM python:3.12-slim
 
 ENV PYTHONUNBUFFERED=1
 
diff --git a/multi-agentic-travel-advisor/planner/build_and_deploy.sh b/agentic-workflows/multi-agentic-travel-advisor/planner/build_and_deploy.sh
similarity index 100%
rename from multi-agentic-travel-advisor/planner/build_and_deploy.sh
rename to agentic-workflows/multi-agentic-travel-advisor/planner/build_and_deploy.sh
diff --git a/multi-agentic-travel-advisor/planner/client.py b/agentic-workflows/multi-agentic-travel-advisor/planner/client.py
similarity index 100%
rename from multi-agentic-travel-advisor/planner/client.py
rename to agentic-workflows/multi-agentic-travel-advisor/planner/client.py
diff --git a/multi-agentic-travel-advisor/planner/planner.proto b/agentic-workflows/multi-agentic-travel-advisor/planner/planner.proto
similarity index 97%
rename from multi-agentic-travel-advisor/planner/planner.proto
rename to agentic-workflows/multi-agentic-travel-advisor/planner/planner.proto
index 1a8fe43ad78b76b9ccb44b739db51c58904c7a1d..d9befa4ca3fd9bf4a8269cd5c2f1fca8f0aea3bf 100644
--- a/multi-agentic-travel-advisor/planner/planner.proto
+++ b/agentic-workflows/multi-agentic-travel-advisor/planner/planner.proto
@@ -18,7 +18,6 @@ enum AgentType {
     WEATHER = 1;
     PLACES = 2;
     FOOD = 3;
-    MAP = 4;
 }
 
 message AgentResponse {
diff --git a/agentic-workflows/multi-agentic-travel-advisor/planner/requirements.txt b/agentic-workflows/multi-agentic-travel-advisor/planner/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..dded1177cf4732c8f5f7218a051fd5fb1fd6a7be
--- /dev/null
+++ b/agentic-workflows/multi-agentic-travel-advisor/planner/requirements.txt
@@ -0,0 +1,10 @@
+grpcio
+grpcio-tools
+grpc-interceptor
+protobuf
+multithreading
+Flask
+
+torch
+transformers
+hf_xet
\ No newline at end of file
diff --git a/agentic-workflows/multi-agentic-travel-advisor/planner/server.py b/agentic-workflows/multi-agentic-travel-advisor/planner/server.py
new file mode 100644
index 0000000000000000000000000000000000000000..afdca30e4b4001aa47a76c3f3699f9c4c3998593
--- /dev/null
+++ b/agentic-workflows/multi-agentic-travel-advisor/planner/server.py
@@ -0,0 +1,100 @@
+import grpc
+from concurrent import futures
+import logging
+import time
+
+import planner_pb2
+import planner_pb2_grpc
+from transformers import pipeline
+
+
+# ------------------ Logger Setup ------------------
+def setup_logger():
+    logger = logging.getLogger("PlannerService")
+    logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")
+    return logger
+
+
+logger = setup_logger()
+
+# ------------------ Classifier Setup ------------------
+def initialize_classifier():
+    return pipeline(
+        "zero-shot-classification",
+        model="facebook/bart-large-mnli",
+        revision="d7645e1"
+    )
+
+
+AGENT_LABELS = ["weather", "places", "food", "map"]
+LABEL_TO_AGENT_TYPE = {
+    "weather": planner_pb2.WEATHER,
+    "places": planner_pb2.PLACES,
+    "food": planner_pb2.FOOD
+}
+
+
+def match_agent(text):
+    try:
+        result = classifier(text, AGENT_LABELS)
+        label = result["labels"][0]
+        logger.info(f"Classifier result: {label}")
+        return LABEL_TO_AGENT_TYPE.get(label, planner_pb2.UNKNOWN)
+    except Exception as e:
+        logger.error(f"Classifier error: {e}")
+        return planner_pb2.UNKNOWN
+
+# ------------------ gRPC Service Implementation ------------------
+class PlannerService(planner_pb2_grpc.PlannerServicer):
+    def __init__(self):
+        logger.info("PlannerService initialized.")
+        self.agent_type_stored = None
+
+    def evaluateUserQueriesFromChatbot(self, request_iterator, context):
+        logger.info("Evaluating user queries from chatbot...")
+        for user_query in request_iterator:
+            logger.info(f"User query: {user_query.text}")
+            agent_type = match_agent(user_query.text)
+
+            response = planner_pb2.AgentRequest(
+                text=user_query.text,
+                agent_type=agent_type
+            )
+
+            # Store agent type as a readable string
+            self.agent_type_stored = planner_pb2.AgentType.Name(agent_type)
+            logger.info(f"Matched agent type: {self.agent_type_stored}")
+
+            # Handle unknown queries
+            if agent_type == planner_pb2.UNKNOWN:
+                response.text = "Sorry, I couldn't understand the query."
+
+            yield response
+
+    def processAgentResponsesFromAgent(self, request_iterator, context):
+        logger.info("Processing responses from agent...")
+        for response in request_iterator:
+            logger.info(f"Agent response: {response.text}")
+
+            formatted_response = planner_pb2.AgentResponse(
+                text=f"[**Answering from {self.agent_type_stored} Agent**] \n{response.text}"
+            )
+            yield formatted_response
+
+        logger.info("Finished processing all agent responses.")
+
+
+# ------------------ Server Setup ------------------
+def serve():
+    server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
+    planner_pb2_grpc.add_PlannerServicer_to_server(PlannerService(), server)
+    port = 8061
+    server.add_insecure_port(f"[::]:{port}")
+    server.start()
+    logger.info(f"Planner Service is running on port {port}")
+    server.wait_for_termination()
+
+
+if __name__ == "__main__":
+    classifier = initialize_classifier()
+    serve()
diff --git a/multi-agentic-travel-advisor/weather_agent/DOCKER_TAG b/agentic-workflows/multi-agentic-travel-advisor/weather_agent/DOCKER_TAG
similarity index 100%
rename from multi-agentic-travel-advisor/weather_agent/DOCKER_TAG
rename to agentic-workflows/multi-agentic-travel-advisor/weather_agent/DOCKER_TAG
diff --git a/multi-agentic-travel-advisor/weather_agent/Dockerfile b/agentic-workflows/multi-agentic-travel-advisor/weather_agent/Dockerfile
similarity index 97%
rename from multi-agentic-travel-advisor/weather_agent/Dockerfile
rename to agentic-workflows/multi-agentic-travel-advisor/weather_agent/Dockerfile
index 9ff3b8653b92c3a93faaf4d0ad506546a0101369..23db504dfbc8ffc20a01b746f303d368e2b8a53f 100644
--- a/multi-agentic-travel-advisor/weather_agent/Dockerfile
+++ b/agentic-workflows/multi-agentic-travel-advisor/weather_agent/Dockerfile
@@ -1,5 +1,5 @@
 # Use a slim Python base image
-FROM python:3.10-slim
+FROM python:3.12-slim
 
 ENV PYTHONUNBUFFERED=1
 
diff --git a/multi-agentic-travel-advisor/weather_agent/agent.proto b/agentic-workflows/multi-agentic-travel-advisor/weather_agent/agent.proto
similarity index 96%
rename from multi-agentic-travel-advisor/weather_agent/agent.proto
rename to agentic-workflows/multi-agentic-travel-advisor/weather_agent/agent.proto
index 92378c237d527ef36d8305b5ae17ff867c3193b1..cf19c08b1a87338b6c5ee72210f281763e7f8c38 100644
--- a/multi-agentic-travel-advisor/weather_agent/agent.proto
+++ b/agentic-workflows/multi-agentic-travel-advisor/weather_agent/agent.proto
@@ -18,7 +18,6 @@ enum AgentType {
     WEATHER = 1;
     PLACES = 2;
     FOOD = 3;
-    MAP = 4;
 }
 
 message AgentResponse {
diff --git a/multi-agentic-travel-advisor/weather_agent/build_and_deploy.sh b/agentic-workflows/multi-agentic-travel-advisor/weather_agent/build_and_deploy.sh
similarity index 100%
rename from multi-agentic-travel-advisor/weather_agent/build_and_deploy.sh
rename to agentic-workflows/multi-agentic-travel-advisor/weather_agent/build_and_deploy.sh
diff --git a/multi-agentic-travel-advisor/weather_agent/client.py b/agentic-workflows/multi-agentic-travel-advisor/weather_agent/client.py
similarity index 100%
rename from multi-agentic-travel-advisor/weather_agent/client.py
rename to agentic-workflows/multi-agentic-travel-advisor/weather_agent/client.py
diff --git a/multi-agentic-travel-advisor/weather_agent/requirements.txt b/agentic-workflows/multi-agentic-travel-advisor/weather_agent/requirements.txt
similarity index 57%
rename from multi-agentic-travel-advisor/weather_agent/requirements.txt
rename to agentic-workflows/multi-agentic-travel-advisor/weather_agent/requirements.txt
index 445cba98401577720be02cfcf62a3abc8d2baf0a..28e7e19fe7bcfeba36802b2dc7ecc7db5c755c12 100644
--- a/multi-agentic-travel-advisor/weather_agent/requirements.txt
+++ b/agentic-workflows/multi-agentic-travel-advisor/weather_agent/requirements.txt
@@ -1,7 +1,7 @@
-grpcio==1.38.0
-grpcio-tools==1.38.0
+grpcio
+grpcio-tools
 grpc-interceptor
-protobuf==3.16.0
+protobuf
 multithreading
 openai
 requests
diff --git a/multi-agentic-travel-advisor/weather_agent/server.py b/agentic-workflows/multi-agentic-travel-advisor/weather_agent/server.py
similarity index 100%
rename from multi-agentic-travel-advisor/weather_agent/server.py
rename to agentic-workflows/multi-agentic-travel-advisor/weather_agent/server.py
diff --git a/multi-agentic-travel-advisor/weather_agent/tool_calling/llm_client.py b/agentic-workflows/multi-agentic-travel-advisor/weather_agent/tool_calling/llm_client.py
similarity index 100%
rename from multi-agentic-travel-advisor/weather_agent/tool_calling/llm_client.py
rename to agentic-workflows/multi-agentic-travel-advisor/weather_agent/tool_calling/llm_client.py
diff --git a/multi-agentic-travel-advisor/weather_agent/tool_calling/tools.py b/agentic-workflows/multi-agentic-travel-advisor/weather_agent/tool_calling/tools.py
similarity index 100%
rename from multi-agentic-travel-advisor/weather_agent/tool_calling/tools.py
rename to agentic-workflows/multi-agentic-travel-advisor/weather_agent/tool_calling/tools.py
diff --git a/multi-agentic-travel-advisor/chatbot/requirements.txt b/multi-agentic-travel-advisor/chatbot/requirements.txt
deleted file mode 100644
index 52b2ced30fe80c1d8a0992909ceb6ff35905153b..0000000000000000000000000000000000000000
--- a/multi-agentic-travel-advisor/chatbot/requirements.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-grpcio==1.38.0
-grpcio-tools==1.38.0
-grpc-interceptor
-protobuf==3.16.0
-multithreading
-Flask
\ No newline at end of file
diff --git a/multi-agentic-travel-advisor/chatbot/templates/chat.html b/multi-agentic-travel-advisor/chatbot/templates/chat.html
deleted file mode 100644
index 391b40198dc7103b4a63f59c2fb1a60240582623..0000000000000000000000000000000000000000
--- a/multi-agentic-travel-advisor/chatbot/templates/chat.html
+++ /dev/null
@@ -1,181 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <title>Travel Advisor</title>
-    
-    <!-- Leaflet.js CSS -->
-    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" />
-    
-    <!-- Font Awesome for icons -->
-    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css">
-    
-    <style>
-        body, html {
-            height: 100%;
-            margin: 0;
-            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
-        }
-    
-        /* Create the map container to be the background */
-        #map {
-            position: absolute;
-            top: 0;
-            left: 0;
-            right: 0;
-            bottom: 0;
-            z-index: -1;  /* Ensure the map is behind everything else */
-        }
-    
-        .overlay {
-            background: rgba(255, 255, 255, 0.85);
-            min-height: 100vh;
-            padding: 40px 20px;
-            display: flex;
-            flex-direction: column;
-            align-items: center;
-            z-index: 1;
-        }
-    
-        h1 {
-            font-size: 2.5em;
-            margin-bottom: 10px;
-            color: #2c3e50;
-        }
-    
-        form {
-            display: flex;
-            background: #fff;
-            padding: 15px 20px;
-            border-radius: 10px;
-            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
-            width: 100%;
-            max-width: 600px;
-            margin-bottom: 30px;
-            gap: 10px;
-        }
-    
-        input[type="text"] {
-            flex: 1;
-            padding: 12px;
-            font-size: 16px;
-            border: 1px solid #ccc;
-            border-radius: 6px;
-        }
-    
-        button {
-            background-color: #3498db;
-            color: white;
-            border: none;
-            border-radius: 6px;
-            padding: 12px 20px;
-            font-size: 16px;
-            cursor: pointer;
-            transition: background-color 0.3s ease;
-        }
-    
-        button:hover {
-            background-color: #2980b9;
-        }
-    
-        .chat-box {
-            background: white;
-            overflow-y: auto;
-            padding: 15px;
-            border-radius: 8px;
-            width: 100%;
-            max-width: 600px;
-            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
-            font-size: 14px; /* Reduced font size for better readability */
-            word-wrap: break-word; /* Ensures words break appropriately */
-        }
-
-        .chat-line {
-            padding: 8px 12px;  /* Reduced padding */
-            margin: 8px 0;      /* Added margin for separation between lines */
-            border-radius: 8px;
-            display: flex;
-            flex-direction: column; /* Ensure messages are stacked vertically */
-            align-items: flex-start; /* Align text to the left */
-            gap: 8px;           /* Reduced gap between text and icon */
-            white-space: pre-wrap; /* Ensures line breaks are respected */
-            max-width: 100%;    /* Ensures lines don’t break out of the container */
-            word-wrap: break-word; /* Allow words to wrap within the container */
-            overflow-wrap: break-word; /* Forces long words to break and wrap */
-            word-break: break-all; /* Breaks long words at any point */
-        }
-
-        .user {
-            text-align: right;
-            background-color: #d0f0fd;
-            align-self: flex-end;
-        }
-
-        .bot {
-            text-align: left;
-            background-color: #fef1e6;
-            align-self: flex-start;
-        }
-
-        .chat-line i {
-            margin-right: 8px; /* Reduced icon margin */
-            color: #555;
-        }
-
-        /* Smaller font size for mobile screens */
-        @media (max-width: 600px) {
-            .chat-box {
-                font-size: 12px; /* Even smaller text on smaller screens */
-            }
-        }
-
-    </style>
-    
-</head>
-<body>
-    <div id="map"></div>  <!-- Map container for interactive background -->
-
-    <div class="overlay">
-        <h1><i class="fas fa-plane-departure"></i> Travel Advisor</h1>
-
-        <form method="POST">
-            <input type="text" id="user_query" name="user_query" placeholder="Ask right away!..." required>
-            <button type="submit"><i class="fas fa-paper-plane"></i></button>
-        </form>
-
-        <div class="chat-box">
-            <h2><i class="fas fa-comments"></i> Chat History</h2>
-            {% for line in chat_history %}
-                <p class="chat-line {{ 'user' if 'User:' in line else 'bot' }}">
-                    <i class="fas {{ 'fa-user' if 'User:' in line else 'fa-robot' }}"></i>
-                    <!-- Using the |safe filter to render HTML content -->
-                    {{ line|safe }}
-                </p>
-            {% endfor %}
-        </div>
-        
-    </div>
-
-    <script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"></script>
-    <script>
-        var map = L.map('map').setView([51.505, -0.09], 2);
-
-        L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
-            attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
-        }).addTo(map);
-
-        L.marker([51.505, -0.09]).addTo(map)
-            .bindPopup("<b>Welcome!</b><br>Ask me about your next trip.")
-            .openPopup();
-    </script>
-
-    <script>
-        window.onload = function() {
-            const chatBox = document.querySelector('.chat-box');
-            chatBox.scrollTop = chatBox.scrollHeight;
-        };
-    </script>
-    
-</body>
-</html>
diff --git a/multi-agentic-travel-advisor/food_rec_agent/requirements.txt b/multi-agentic-travel-advisor/food_rec_agent/requirements.txt
deleted file mode 100644
index 014cced4908f330d725fb4891d57b21fc57b4c1b..0000000000000000000000000000000000000000
--- a/multi-agentic-travel-advisor/food_rec_agent/requirements.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-grpcio==1.38.0
-grpcio-tools==1.38.0
-grpc-interceptor
-protobuf==3.16.0
-multithreading
-openai
-requests
\ No newline at end of file
diff --git a/multi-agentic-travel-advisor/planner/requirements.txt b/multi-agentic-travel-advisor/planner/requirements.txt
deleted file mode 100644
index 14e36e37882ff425467933cd3067c23030751196..0000000000000000000000000000000000000000
--- a/multi-agentic-travel-advisor/planner/requirements.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-grpcio==1.38.0
-grpcio-tools==1.38.0
-grpc-interceptor
-protobuf==3.16.0
-multithreading
-Flask
-
-torch
-transformers
\ No newline at end of file
diff --git a/multi-agentic-travel-advisor/planner/server.py b/multi-agentic-travel-advisor/planner/server.py
deleted file mode 100644
index ad1e38807f681cb05b9456d6fed04af5b5b46e11..0000000000000000000000000000000000000000
--- a/multi-agentic-travel-advisor/planner/server.py
+++ /dev/null
@@ -1,84 +0,0 @@
-import grpc
-from concurrent import futures
-import planner_pb2
-import planner_pb2_grpc
-from transformers import pipeline
-import logging
-import time
-
-logger = logging.getLogger(__name__)
-logging.basicConfig(level=logging.INFO)
-
-# Zero-shot classifier
-classifier = pipeline("zero-shot-classification")
-
-
-def match_agent(text):
-    candidate_labels = ["weather", "places", "food", "map"]
-    result = classifier(text, candidate_labels)
-    label = result["labels"][0]
-
-    if label == "weather":
-        return planner_pb2.WEATHER
-    elif label == "places":
-        return planner_pb2.PLACES
-    elif label == "food":
-        return planner_pb2.FOOD
-    elif label == "map":
-        return planner_pb2.MAP
-    else:
-        return planner_pb2.UNKNOWN
-
-
-class PlannerService(planner_pb2_grpc.PlannerServicer):
-    def __init__(self):
-        logger.info("PlannerService initialized.")
-
-    def evaluateUserQueriesFromChatbot(self, request_iterator, context):
-        print("evaluateUserQueriesFromChatbot..............................")
-        for user_query in request_iterator:
-            logger.info(f"Received user query: {user_query.text}")
-            agent_type = match_agent(user_query.text)
-            logger.info(f"Matched agent type: {agent_type}")
-
-            agent_response = planner_pb2.AgentRequest()
-            agent_response.text = user_query.text
-            agent_response.agent_type = agent_type
-
-            if agent_type == planner_pb2.AgentType.WEATHER:
-                logger.info("Handling WEATHER agent.")
-            elif agent_type == planner_pb2.AgentType.PLACES:
-                logger.info("Handling PLACES agent.")
-            elif agent_type == planner_pb2.AgentType.FOOD:
-                logger.info("Handling FOOD agent.")
-            elif agent_type == planner_pb2.AgentType.MAP:
-                logger.info("Handling MAP agent.")
-            else:
-                agent_response.text = "Sorry, I couldn't understand the query."
-
-            yield agent_response
-
-    def processAgentResponsesFromAgent(self, request_iterator, context):
-        logger.info("Receiving AgentResponses from agent...")
-
-        for response in request_iterator:
-            logger.info(f"Received AgentResponse: {response.text}")
-            res = planner_pb2.AgentResponse()
-            res.text = response.text
-            print(res)
-            yield res
-
-        logger.info("Finished processing AgentResponses.")
-
-
-def serve():
-    server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
-    planner_pb2_grpc.add_PlannerServicer_to_server(PlannerService(), server)
-    server.add_insecure_port("[::]:8061")
-    server.start()
-    logger.info("Planner Service running on port 8061")
-    server.wait_for_termination()
-
-
-if __name__ == "__main__":
-    serve()