Microsoft Teams డెవలపర్‌లకు హెచ్చరికలు అందుతున్నాయి—ప్రతి ఎక్స్‌టెన్షన్‌ను "bot" అని పిలవడం వల్ల ఇప్పుడు ప్రొడక్షన్-గ్రేడ్ వైఫల్యాలు (production-grade failures) సంభవిస్తున్నాయి. 2026 నాటికి, ప్లాట్‌ఫారమ్ యొక్క స్వంత పరిమితులు—ఒక సందేశానికి సమాధానం ఇవ్వడానికి 10 నుండి 15 సెకన్ల సమయం—తప్పుగా రూపొందించబడిన (mis-architected) బాట్‌లను 'టైమ్ అవుట్ స్టార్మ్స్' (timeout storms) గా మారుస్తాయి, దీనివల్ల టీమ్‌లు తమ పైప్‌లైన్‌లను తిరిగి డిజైన్ చేయాల్సి వస్తుంది.

ఈ వ్యత్యాసం ఎందుకు ముఖ్యం

Teams మూడు రకాల ఎక్స్‌టెన్షన్ రకాలను అందిస్తుంది, ప్రతిదీ ఒక విభిన్న ఇంటరాక్షన్ ప్యాటర్న్ కోసం రూపొందించబడింది. వాటిని కలపడం వల్ల తప్పు రన్‌టైమ్, తప్పు SDK మరియు తప్పు స్కేలింగ్ మోడల్ ఏర్పడతాయి.

Teams apps, bots, మరియు agents – అవి ఏమిటి

  • Teams apps – Teams క్లయింట్ లోపల ఉండే సర్ఫేస్ ట్యాబ్‌లు (Surface tabs), స్టాటిక్ పేజీలు లేదా సాధారణ UI కాంపోనెంట్స్. ఇవి ప్రాథమికంగా వెబ్ యాప్‌లు: ఇవి స్టేట్‌లెస్ (stateless), డిమాండ్ మేరకు రెండర్ చేయబడతాయి మరియు ఇతర HTTP సర్వీసుల మాదిరిగానే హోస్ట్ చేయబడతాయి. వీటి నుండి ఎటువంటి సంభాషణా ప్రవాహం (conversational flow) ఆశించబడదు.
  • Bots – Bot Framework SDKతో నిర్మించబడిన బాట్‌లు, స్క్రిప్ట్ చేయబడిన డైలాగ్‌లను అనుసరిస్తాయి. వాటి లాజిక్ అనేది ఒక డిటర్మినిస్టిక్ (deterministic) if/else ట్రీ, ఇది కేవలం వచ్చే యాక్టివిటీ ఆధారంగా తదుపరి సమాధానాన్ని నిర్ణయిస్తుంది. నిర్ణయ మార్గం (decision path) ముందుగానే తెలిసినందున, ప్రతిస్పందన ప్లాట్‌ఫారమ్ యొక్క తక్కువ టైమ్ అవుట్ విండోలో సరిపోతుంది.
  • Agents – ఒక ఉన్నత స్థాయి లక్ష్యం (high-level objective), సాధనాల సమితి (set of tools) మరియు ఒక LLM (large language model) ను పొందే లక్ష్య ఆధారిత ఎంటిటీలు (goal-driven entities). Agents SDK లేదా Semantic Kernel ఉపయోగించి, LLM ఏ సాధనాన్ని ఏ క్రమంలో పిలవాలో మరియు వినియోగదారుని ఎప్పుడు స్పష్టత కోసం అడగాలో నిర్ణయిస్తుంది. ఈ ప్రవాహం డైనమిక్‌గా ఉంటుంది, తరచుగా బహుళ బాహ్య కాల్స్ మరియు భారీ రీజనింగ్ (reasoning) అవసరమవుతుంది.

ఈ విభజన స్పష్టంగా ఉంది: బాట్ అనేది డిటర్మినిస్టిక్; ఏజెంట్ అనేది ప్రాబబిలిస్టిక్ (probabilistic) మరియు రన్‌టైమ్‌లో టూల్ కాల్స్‌ను ఆర్కెస్ట్రేట్ చేస్తుంది.

టైమ్ అవుట్ ట్రాప్ (The timeout trap)

డెవలపర్‌లు భారీ రీజనింగ్—LLM ప్రాంప్ట్‌లు, డేటాబేస్ లుకప్‌లు లేదా బాహ్య API కాల్స్—ను నేరుగా బాట్ యొక్క మెసేజ్ హ్యాండ్లర్‌లో ఉంచినప్పుడు, Teams ఆ రిక్వెస్ట్ తన 10-15 సెకన్ల విండోను దాటి వెళ్తున్నట్లు గుర్తిస్తుంది. ప్లాట్‌ఫారమ్ ప్రతిస్పందనను నిలిపివేసి (abort), మళ్ళీ ప్రయత్నిస్తుంది (retry), ఇది డూప్లికేట్ పనులు మరియు థ్రోట్లింగ్ (throttling) కు దారితీయవచ్చు. దీని లక్షణం అప్పుడప్పుడు వచ్చే “bot not responding” ఎర్రర్‌లా కనిపిస్తుంది, కానీ దీని మూల కారణం ఆర్కిటెక్చరల్.

ప్రొడక్షన్-రెడీ async పైప్‌లైన్‌ను నిర్మించడం

  1. Webhook entry point – బాట్ యొక్క HTTP ఎండ్‌పాయింట్ Teams యాక్టివిటీని స్వీకరించి, వెంటనే అందినట్లు ధృవీకరిస్తుంది (acknowledges receipt).
  2. Queue the event – హ్యాండ్లర్ పేలోడ్‌ను Azure Service Bus వంటి డ్యూరబుల్ క్యూ (durable queue) కు పంపుతుంది.
  3. Background worker – ఒక Azure Durable Function, Service Bus trigger, లేదా ఏదైనా లాంగ్-రన్నింగ్ వర్కర్ మెసేజ్‌ను తీసుకుని, LLM రీజనింగ్ లేదా టూల్ ఆర్కెస్ట్రేషన్‌ను రన్ చేసి, Bot Framework యొక్క proactive messaging API ద్వారా తుది సమాధానాన్ని Teams కి తిరిగి పంపుతుంది.

ప్రారంభ వెబ్‌హుక్ వెంటనే తిరిగి ఇవ్వడం వల్ల, Teams ఎప్పుడూ టైమ్ అవుట్‌ను చేరుకోదు మరియు భారీ పనులు దాని స్వంత వేగంతో కొనసాగుతాయి. క్యూ (queue) లోని బఫర్ స్పైక్‌లను తట్టుకుంటుంది మరియు వర్కర్లు బ్యాక్‌లాగ్ పొడవు ఆధారంగా ఆటో-స్కేల్ అవుతాయి.

త్వరిత నిర్ణయ గైడ్ (the whiteboard test)

  • ఏ కోడ్ రాయకముందే మీరు పూర్తి డిసిషన్ ట్రీని గీయగలరా? అవును → బాట్‌ను నిర్మించండి. డిటర్మినిస్టిక్ ఫ్లో Bot Framework మోడల్‌కు సరిపోతుంది మరియు రెస్పాన్స్ విండోలో ఉంటుంది.
  • సమస్య ఒక ఉన్నత స్థాయి లక్ష్యం మరియు సాధ్యమయ్యే సాధనాల జాబితాతో నిర్వచించబడిందా? అవును → ఏజెంట్‌ను నిర్మించండి. LLM ని ప్లాన్ చేయనివ్వండి మరియు సాధనాలను పిలిపించండి; ప్లానింగ్‌ను బ్యాక్‌గ్రౌండ్ వర్కర్‌కు అప్పగించండి.

తదుపరి ఏమి చూడాలి

Azure పై ఇంటెలిజెంట్ Teams సొల్యూషన్స్‌ను నిర్మిస్తున్న .NET 9 డెవలపర్‌ల కోసం రూపొందించిన సిరీస్‌లో ఇది మొదటి భాగం.

మీరు ఇప్పటికే Teams లాగ్‌లలో “Bot timed out” ఎర్రర్‌లను చూస్తుంటే, పరిష్కారం సులభం: వెబ్‌హుక్‌ను భారీ పనుల నుండి వేరు చేయండి (decouple), క్యూ-డ్రివెన్ వర్కర్‌ను అనుసరించండి మరియు ప్రారంభం నుంచే సరైన ఎక్స్‌టెన్షన్ రకాన్ని ఎంచుకోండి. ప్లాట్‌ఫారమ్‌కు టైమ్ అవుట్ పరిమితి ఉంది, కానీ మీ ఆర్కిటెక్చర్ దానిని నివారించగలదు.

Takeaway: Teams ఎక్స్‌టెన్షన్‌ను బాట్ అని తప్పుగా పిలవడం వల్ల Teams భరించలేని సింక్రోనస్ డిజైన్ ఏర్పడుతుంది. రిక్వెస్ట్‌ను రీజనింగ్ నుండి వేరు చేయండి, సరైన SDKని ఎంచుకోండి, అప్పుడు మీ Teams సొల్యూషన్ వెనుక ఉన్నది LLM-పవర్డ్ ఏజెంట్ అయినప్పటికీ, అది స్పందించేలా (responsive) ఉంటుంది.