LangChain एजंटला WhatsApp नंबर द्या
LangChain एजंटला WhatsApp दोन भागांत मिळते. येणारे मेसेज नंबरच्या वेबहुकमार्फत तुमच्या वेब रूटवर येतात आणि रूट एजंटला चालवते. कृती करण्यासाठी एजंट LangChain च्या MCPAdapter मधून OAuth वापरून EasyCoexistence MCP टूल्स लोड करतो, किंवा नंबरचे टोकन आणि phone_number_id वापरून Cloud API थेट कॉल करतो.
langchain.mcp नेमस्पेससाठी लागणारी किमान langchain[mcp] आवृत्ती, जी बीटामध्ये आहे.
संपूर्ण OAuth 2.1 प्रक्रिया चालवते: डिस्कव्हरी, डायनॅमिक क्लायंट नोंदणी, ब्राउझर रीडायरेक्ट आणि टोकन एक्स्चेंज.
प्राप्तकर्त्याने शेवटचे उत्तर दिल्यापासून 24 तासांपेक्षा जास्त वेळ झाल्यावर Meta कडून येणारी त्रुटी.
LangChain एजंट WhatsApp टूल्स कसे लोड करतो?
MCPAdapter द्वारे. हा LangChain चा MCP क्लायंट आहे, जो MCP सर्व्हरची टूल्स सामान्य LangChain टूल्स म्हणून create_agent ला देतो. यासाठी langchain[mcp] आवृत्ती 1.4.0 किंवा नंतरची लागते आणि ते बीटा म्हणून चिन्हांकित आहे.
ऑथेंटिकेशन FastMCP कडे सोपवलेले असते. क्लायंटवर auth="oauth" दिल्यास संपूर्ण OAuth 2.1 प्रक्रिया चालते: डिस्कव्हरी, डायनॅमिक क्लायंट नोंदणी, ब्राउझर रीडायरेक्ट आणि टोकन एक्स्चेंज. EasyCoexistence MCP सर्व्हरला नेमके हेच अपेक्षित आहे, त्यामुळे कोणतीही की तयार करावी लागत नाही किंवा पेस्ट करावी लागत नाही. डीफॉल्टनुसार टोकन मेमरीमध्ये राहतात आणि प्रत्येक रनमध्ये ब्राउझरची पायरी पुन्हा होते. टोकन स्टोअर असलेला FastMCP OAuth प्रोव्हायडर वापरल्यास ते रनमधील अंतरातही टिकतात.
लोड झाल्यावर एजंटला टूल्स त्यांच्या वर्णनांसह दिसतात: सर्वात आधी list_numbers, कारण बाकी प्रत्येक टूल त्याच्याकडून मिळणारा connection_id घेते, मग send_message, send_template, list_templates, get_number_health आणि इतर.
from fastmcp.client import Client
from langchain.agents import create_agent
from langchain.mcp import MCPAdapter
URL = "https://easycoexistence.com/api/mcp"
async def build_agent(model: str):
async with MCPAdapter(Client(URL, auth="oauth")) as adapter:
tools = await adapter.list_tools()
return create_agent(model, tools)येणारा WhatsApp मेसेज एजंटपर्यंत कसा पोहोचतो?
वेबहुकमार्फत, कारण MCP हे करू शकत नाही. प्रोटोकॉल विनंती आणि प्रतिसाद या स्वरूपाचा आहे, त्यामुळे ग्राहकाने मेसेज लिहिल्यावर सर्व्हरने क्लायंटला जागे करण्याची त्यात सोय नाही.
नंबरचे वेबहुक गंतव्य तुमच्या स्वतःच्या ॲप्लिकेशनमधील एका रूटवर सेट करा, आणि URL पाथमध्ये लांब यादृच्छिक सीक्रेट ठेवा. रूट Meta च्या पडताळणी GET ला मूळ challenge सह उत्तर देते, प्रत्येक POST स्वीकारते, लगेच 200 परत करते आणि काम रांगेत ठेवते. त्यानंतर वर्कर पेलोडमधून पाठवणाऱ्याचा नंबर आणि मजकूर घेतो आणि त्यांच्यासह एजंटला चालवतो. पाठवणाऱ्याचा नंबर थ्रेड id म्हणून वापरल्यास मेमरी प्रत्येक ग्राहकासाठी वेगळी राहते.
सीक्रेट तपासा URL मध्ये, X-Hub-Signature-256 हेडरमध्ये नव्हे. Meta सही Tech Provider च्या app secret ने करते, जे कधीही शेअर केले जात नाही, त्यामुळे ते हेडर ग्राहकाला पडताळता येत नाही.
एजंटने MCP मधून पाठवावे की Cloud API मधून?
दोन्ही चालतात, आणि फरक इतकाच की नियम कोणाकडे आहेत. MCP टूल्स WhatsApp चे नियम त्यांच्या वर्णनांत घेऊन येतात, जसे की send_message फक्त 24 तासांच्या विंडोमध्येच चालते आणि ज्याने मेसेज लिहिलेला नाही त्याच्यापर्यंत पोहोचण्यासाठी send_template आहे. ही वर्णने वाचून मॉडेल बहुतेक वेळा योग्य टूल निवडते, आणि एजंटला मोकळेपणाने निर्णय घ्यायचा असेल तिथे याचा फायदा होतो.
एजंटचे काम मर्यादित असेल, उदाहरणार्थ नुकतेच लिहिणाऱ्या व्यक्तीलाच नेहमी उत्तर देणे, तर नंबरच्या टोकनसह Cloud API च्या messages एंडपॉइंटवर पोस्ट करणारे तुमचे साधे स्वतःचे टूल सोपे पडते. तेव्हा विंडोची तपासणी तुमच्या कोडमध्ये असते, आणि कधीही मोडू नये असा नियम तिथेच असावा. विंडोबाहेर मुक्त मजकूर पाठवल्यास त्रुटी 131047 येते, आणि ग्राहकाला काहीच दिसत नाही.
सामान्य चुका
- MCP कडून येणारे मेसेज मिळतील अशी अपेक्षा ठेवणे. वेबहुक रूटशिवाय एजंटला ग्राहकाकडून काहीच कळत नाही.
- सर्व्हरवर OAuth टोकन मेमरीतच ठेवणे. प्रत्येक रीस्टार्टला ब्राउझर साइन-इन लागतो; टोकन स्टोअर वापरून ते टिकवा.
- सर्व ग्राहकांसाठी एकच थ्रेड वापरणे. एजंटची मेमरी पाठवणाऱ्याच्या नंबरवर आधारित ठेवा.
easycoexistence.com वर नंबर कनेक्ट करा, वेबहुक गंतव्य तुमच्या रूटवर सेट करा आणि एका OAuth साइन-इनने MCP टूल्स एजंटमध्ये लोड करा. प्रति नंबर दरमहा US$ 9 पासून, नंबर वाढवल्यावर US$ 1 पर्यंत, आणि पहिले 3 दिवस मोफत.
वारंवार विचारले जाणारे प्रश्न
हे फक्त Python साठी आहे का?
MCPAdapter चे उदाहरण Python मध्ये आहे. वेबहुक आणि Cloud API हे साधे HTTP आहेत, त्यामुळे LangChain ज्या भाषेत चालते त्या कोणत्याही भाषेतून मेसेज स्वीकारता आणि पाठवता येतात.
एजंटला प्रत्येक वेळी list_numbers लागते का?
त्याला connection_id लागतो, आणि तो मिळण्याचे list_numbers हे एकमेव ठिकाण आहे. एकच नंबर असेल तर एजंट सुरुवातीला ते एकदाच कॉल करतो.
टीम अजूनही फोनवरून उत्तर देऊ शकते का?
हो. Coexistence मुळे WhatsApp Business ॲप चालू राहते, आणि फोनवरून दिलेली उत्तरे echo इव्हेंट म्हणून तुमच्या रूटवर येतात, जे एजंट विचारात घेऊ शकतो.
EasyCoexistence संभाषण वाचते का?
नाही. Meta थेट तुमच्या रूटवर पाठवते आणि मेसेजचा मजकूर आमच्याकडे कधीही साठवला जात नाही. MCP टूल्स खात्याचे आणि नंबरचे स्टेटस वाचतात.
पुढे वाचा
सुरुवात करण्यासाठी तयार आहात?
WhatsApp Coexistence काही मिनिटांत सेट करा, काही महिन्यांत नाही. ॲप फोनवर काम करत राहते.
मोफत ट्रायल सुरू करापडताळले: