Microsoft Teams ಡೆವಲಪರ್‌ಗಳಿಗೆ ಎಚ್ಚರಿಕೆ ನೀಡಲಾಗುತ್ತಿದೆ: ಪ್ರತಿಯೊಂದು ಎಕ್ಸ್‌ಟೆನ್ಶನ್ ಅನ್ನು “bot” ಎಂದು ಕರೆಯುವುದು ಈಗ ಪ್ರೊಡಕ್ಷನ್-ಗ್ರೇಡ್ ವೈಫಲ್ಯಗಳಿಗೆ ಕಾರಣವಾಗುತ್ತಿದೆ. 2026 ರಲ್ಲಿ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನ ಸ್ವಂತ ಮಿತಿಗಳು—ಸಂದೇಶಕ್ಕೆ ಉತ್ತರಿಸಲು 10 ರಿಂದ 15 ಸೆಕೆಂಡುಗಳು—ತಪ್ಪಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಬಾಟ್‌ಗಳನ್ನು ಟೈಮೌಟ್ ಸ್ಟಾರ್ಮ್‌ಗಳಾಗಿ (timeout storms) ಪರಿವರ್ತಿಸುತ್ತವೆ, ಇದು ತಂಡಗಳು ತಮ್ಮ ಪೈಪ್‌ಲೈನ್‌ಗಳನ್ನು ಮರು ವಿನ್ಯಾಸಗೊಳಿಸಲು ಒತ್ತಾಯಿಸುತ್ತದೆ.

ಈ ವ್ಯತ್ಯಾಸ ಏಕೆ ಮುಖ್ಯ

Teams ಮೂರು ಎಕ್ಸ್‌ಟೆನ್ಶನ್ ಪ್ರಕಾರಗಳನ್ನು ನೀಡುತ್ತದೆ, ಪ್ರತಿಯೊಂದೂ ವಿಭಿನ್ನ ಸಂವಹನ ಮಾದರಿಗಾಗಿ ನಿರ್ಮಿಸಲಾಗಿದೆ. ಇವುಗಳನ್ನು ಬೆರೆಸುವುದರಿಂದ ತಪ್ಪು ರನ್‌ಟೈಮ್, ತಪ್ಪು SDK ಮತ್ತು ತಪ್ಪು ಸ್ಕೇಲಿಂಗ್ ಮಾಡೆಲ್‌ಗೆ ದಾರಿ ಮಾಡಿಕೊಡುತ್ತದೆ.

Teams apps, bots, ಮತ್ತು agents – ಅವುಗಳೆಂದರೆ ಏನು

  • Teams apps – Teams ಕ್ಲೈಂಟ್‌ನ ಒಳಗಿರುವ ಸರ್ಫೇಸ್ ಟ್ಯಾಬ್‌ಗಳು, ಸ್ಟ್ಯಾಟಿಕ್ ಪೇಜ್‌ಗಳು ಅಥವಾ ಸರಳ UI ಘಟಕಗಳು. ಇವು ಮೂಲಭೂತವಾಗಿ ವೆಬ್ ಆಪ್‌ಗಳಾಗಿವೆ: ಸ್ಟೇಟ್‌ಲೆಸ್ (stateless), ಬೇಡಿಕೆಯ ಮೇರೆಗೆ ರೆಂಡರ್ ಆಗುತ್ತವೆ ಮತ್ತು ಇತರ ಯಾವುದೇ HTTP ಸೇವೆಯಂತೆ ಹೋಸ್ಟ್ ಮಾಡಲ್ಪಡುತ್ತವೆ. ಇಲ್ಲಿ ಯಾವುದೇ ಸಂಭಾಷಣಾ ಹರಿವನ್ನು (conversational flow) ನಿರೀಕ್ಷಿಸಲಾಗುವುದಿಲ್ಲ.
  • Bots – Bot Framework SDK ಬಳಸಿ ನಿರ್ಮಿಸಲಾದ ಬಾಟ್‌ಗಳು, ಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾದ ಸಂಭಾಷಣೆಗಳನ್ನು (scripted dialogs) ಅನುಸರಿಸುತ್ತವೆ. ಅವುಗಳ ಲಾಜಿಕ್ ಒಂದು ನಿರ್ದಿಷ್ಟ if/else ಟ್ರೀ ಆಗಿದ್ದು, ಬರುವ ಚಟುವಟಿಕೆಯನ್ನು (incoming activity) ಆಧರಿಸಿ ಮುಂದಿನ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. ನಿರ್ಧಾರದ ಹಾದಿಯು ಮೊದಲೇ ತಿಳಿದಿರುವುದರಿಂದ, ಪ್ರತಿಕ್ರಿಯೆಯು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನ ಅಲ್ಪ ಟೈಮೌಟ್ ಅವಧಿಯೊಳಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ.
  • Agents – ಉನ್ನತ ಮಟ್ಟದ ಗುರಿ, ಸಾಧನಗಳ ಸೆಟ್ ಮತ್ತು LLM (large language model) ಅನ್ನು ಸ್ವೀಕರಿಸುವ ಗುರಿ-ಚಾಲಿತ ಘಟಕಗಳು. Agents SDK ಅಥವಾ Semantic Kernel ಬಳಸಿ, LLM ಯಾವ ಸಾಧನವನ್ನು ಯಾವ ಕ್ರಮದಲ್ಲಿ ಬಳಸಬೇಕು ಮತ್ತು ಬಳಕೆದಾರರಿಂದ ಸ್ಪಷ್ಟೀಕರಣವನ್ನು ಯಾವಾಗ ಕೇಳಬೇಕು ಎಂಬುದನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ. ಇದರ ಹರಿವು ಡೈನಾಮಿಕ್ ಆಗಿರುತ್ತದೆ, ಇದು ಹೆಚ್ಚಾಗಿ ಹಲವಾರು ಬಾಹ್ಯ ಕರೆಗಳು ಮತ್ತು ತೀವ್ರವಾದ ತರ್ಕವನ್ನು (reasoning) ಬಯಸುತ್ತದೆ.

ಈ ವಿಭಜನೆಯು ಸ್ಪಷ್ಟವಾಗಿದೆ: ಬಾಟ್ ನಿರ್ಧಾರಾತ್ಮಕವಾಗಿದೆ (deterministic); ಏಜೆಂಟ್ ಸಂಭವನೀಯವಾಗಿದೆ (probabilistic) ಮತ್ತು ರನ್‌ಟೈಮ್‌ನಲ್ಲಿ ಸಾಧನಗಳ ಕರೆಗಳನ್ನು ಸಂಘಟಿಸುತ್ತದೆ (orchestrates).

ಟೈಮೌಟ್ ಬಲೆ (The timeout trap)

ಡೆವಲಪರ್‌ಗಳು ಬಾಟ್‌ನ ಮೆಸೇಜ್ ಹ್ಯಾಂಡ್ಲರ್‌ನೊಳಗೆ ತೀವ್ರವಾದ ತರ್ಕವನ್ನು—LLM ಪ್ರಾಂಪ್ಟ್‌ಗಳು, ಡೇಟಾಬೇಸ್ ಲುಕ್‌ಅಪ್‌ಗಳು ಅಥವಾ ಬಾಹ್ಯ API ಕರೆಗಳನ್ನು—ನೇರವಾಗಿ ಅಳವಡಿಸಿದಾಗ, Teams ವಿನಂತಿಯು ತನ್ನ 10-15 ಸೆಕೆಂಡುಗಳ ಅವಧಿಯನ್ನು ಮೀರಿ ನಿಲ್ಲುವುದನ್ನು ಗಮನಿಸುತ್ತದೆ. ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ರದ್ದುಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸುತ್ತದೆ, ಇದು ಡ್ಯುಪ್ಲಿಕೇಟ್ ಕೆಲಸ ಮತ್ತು ಥ್ರೊಟಲಿಂಗ್‌ಗೆ (throttling) ಕಾರಣವಾಗಬಹುದು. ಇದರ ಲಕ್ಷಣವು ಅಧ್ವಾನಿಕವಾಗಿ (intermittent) ಬರುವ “bot not responding” ಎಂಬ ದೋಷದಂತೆ ಕಾಣುತ್ತದೆ, ಆದರೆ ಇದರ ಮೂಲ ಕಾರಣ ಆರ್ಕಿಟೆಕ್ಚರಲ್ ಆಗಿದೆ.

ಪ್ರೊಡಕ್ಷನ್-ರೆಡಿ ಅಸಿಂಕ್ (async) ಪೈಪ್‌ಲೈನ್ ನಿರ್ಮಿಸುವುದು

  1. Webhook entry point – ಬಾಟ್‌ನ HTTP ಎಂಡ್‌ಪಾಯಿಂಟ್ Teams ಚಟುವಟಿಕೆಯನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ ಮತ್ತು ತಕ್ಷಣವೇ ಸ್ವೀಕೃತಿಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.
  2. Queue the event – ಹ್ಯಾಂಡ್ಲರ್ ಪೇಲೋಡ್ ಅನ್ನು Azure Service Bus ನಂತಹ ಸುಸ್ಥಿರ ಕ್ಯೂಗೆ (durable queue) ತಳ್ಳುತ್ತದೆ.
  3. Background worker – Azure Durable Function, Service Bus trigger ಅಥವಾ ಯಾವುದೇ ದೀರ್ಘಾವಧಿಯ ವರ್ಕರ್ ಸಂದೇಶವನ್ನು ಪಡೆದುಕೊಳ್ಳುತ್ತದೆ, LLM ತರ್ಕ ಅಥವಾ ಟೂಲ್ ಆರ್ಕೆಸ್ಟ್ರೇಶನ್ ಅನ್ನು ರನ್ ಮಾಡುತ್ತದೆ ಮತ್ತು Bot Framework ನ ಪ್ರೊಆಕ್ಟಿವ್ ಮೆಸೇಜಿಂಗ್ API ಮೂಲಕ ಅಂತಿಮ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು Teams ಗೆ ಕಳುಹಿಸುತ್ತದೆ.

ಆರಂಭಿಕ ವೆಬ್‌ಹುಕ್ ತಕ್ಷಣವೇ ಪ್ರತಿಕ್ರಿಯಿಸುವುದರಿಂದ, Teams ಎಂದಿಗೂ ತನ್ನ ಟೈಮೌಟ್ ಮಿತಿಯನ್ನು ತಲುಪುವುದಿಲ್ಲ ಮತ್ತು ಭಾರೀ ಕೆಲಸವು ತನ್ನದೇ ಆದ ವೇಗದಲ್ಲಿ ಮುಂದುವರಿಯುತ್ತದೆ. ಕ್ಯೂ (queue) ಏರಿಳಿತಗಳನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ ಮತ್ತು ವರ್ಕರ್ಸ್‌ಗಳು ಬ್ಯಾಕ್‌ಲಾಗ್ ಉದ್ದದ ಆಧಾರದ ಮೇಲೆ ಆಟೋ-ಸ್ಕೇಲ್ ಆಗುತ್ತವೆ.

ತ್ವರಿತ ನಿರ್ಧಾರ ಮಾರ್ಗದರ್ಶಿ (the whiteboard test)

  • ಯಾವುದೇ ಕೋಡ್ ಬರೆಯುವ ಮೊದಲು ನೀವು ಸಂಪೂರ್ಣ ನಿರ್ಧಾರದ ಮರವನ್ನು (decision tree) ಬಿಡಿಸಬಲ್ಲಿರಾ? ಹೌದು → ಬಾಟ್ ನಿರ್ಮಿಸಿ. ನಿರ್ಧಾರಾತ್ಮಕ ಹರಿವು Bot Framework ಮಾಡೆಲ್‌ಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆಯ ಅವಧಿಯೊಳಗೆ ಇರುತ್ತದೆ.
  • ಸಮಸ್ಯೆಯು ಉನ್ನತ ಮಟ್ಟದ ಗುರಿ ಮತ್ತು ಸಂಭವನೀಯ ಸಾಧನಗಳ ಪಟ್ಟಿಯಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲ್ಪಟ್ಟಿದೆಯೇ? ಹೌದು → ಏಜೆಂಟ್ ನಿರ್ಮಿಸಿ. LLM ಅನ್ನು ಯೋಜಿಸಲು ಮತ್ತು ಸಾಧನಗಳನ್ನು ಬಳಸಲು ಬಿಡಿ; ಯೋಜನೆಯನ್ನು ಬ್ಯಾಕ್‌ಗ್ರೌಂಡ್ ವರ್ಕರ್‌ನಿಗೆ ವರ್ಗಾಯಿಸಿ.

ಮುಂದೆ ಏನನ್ನು ಗಮನಿಸಬೇಕು

ಈ ಮಾರ್ಗದರ್ಶನವು Azure ನಲ್ಲಿ ಬುದ್ಧಿವಂತ Teams ಪರಿಹಾರಗಳನ್ನು ನಿರ್ಮಿಸುತ್ತಿರುವ .NET 9 ಡೆವಲಪರ್‌ಗಳ ಸರಣಿಯ ಮೊದಲ ಭಾಗವಾಗಿದೆ.

ನೀವು ಈಗಾಗಲೇ Teams ಲಾಗ್‌ಗಳಲ್ಲಿ “Bot timed out” ದೋಷಗಳನ್ನು ನೋಡುತ್ತಿದ್ದರೆ, ಪರಿಹಾರ ಸರಳವಾಗಿದೆ: ವೆಬ್‌ಹುಕ್ ಅನ್ನು ಭಾರೀ ಕೆಲಸದಿಂದ ಬೇರ್ಪಡಿಸಿ (decouple), ಕ್ಯೂ-ಚಾಲಿತ ವರ್ಕರ್ ಅನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಿ ಮತ್ತು ಪ್ರಾರಂಭದಿಂದಲೇ ಸರಿಯಾದ ಎಕ್ಸ್‌ಟೆನ್ಶನ್ ಪ್ರಕಾರವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ. ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಟೈಮೌಟ್ ಮಿತಿಯನ್ನು ಹೊಂದಿದೆ, ಆದರೆ ನಿಮ್ಮ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅದನ್ನು ತಪ್ಪಿಸಬಹುದು.

Takeaway: Teams ಎಕ್ಸ್‌ಟೆನ್ಶನ್ ಅನ್ನು ಬಾಟ್ ಎಂದು ತಪ್ಪಾಗಿ ಹೆಸರಿಸುವುದು ಸಿಂಕ್ರೋನಸ್ ವಿನ್ಯಾಸವನ್ನು ಒತ್ತಾಯಿಸುತ್ತದೆ, ಅದನ್ನು Teams ನಿಭಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ವಿನಂತಿಯನ್ನು ತರ್ಕದಿಂದ ಪ್ರತ್ಯೇಕಿಸಿ, ಸರಿಯಾದ SDK ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿ, ಆಗ ನಿಮ್ಮ Teams ಪರಿಹಾರವು ಅದರ ಹಿಂದಿರುವ ಮೆದುಳು LLM-ಚಾಲಿತ ಏಜೆಂಟ್ ಆಗಿದ್ದರೂ ಸಹ ಸ್ಪಂದನೀಯವಾಗಿ ಇರುತ್ತದೆ.