Vercel AI SDK से WhatsApp एजेंट बनाएं
आने वाले मैसेज उस रूट हैंडलर तक पहुंचते हैं जिसे नंबर के वेबहुक डेस्टिनेशन के रूप में सेट किया गया है। हैंडलर generateText को कॉल करता है और जवाब Cloud API से भेजता है। नंबर पर काम करने वाले टूल के लिए @ai-sdk/mcp का createMCPClient, authProvider के जरिए OAuth से लॉग इन करके HTTP पर EasyCoexistence MCP सर्वर से जुड़ता है।
वह पैकेज जो createMCPClient देता है, यानी AI SDK का MCP क्लाइंट।
AI SDK के MCP HTTP ट्रांसपोर्ट पर authProvider देकर OAuth इस्तेमाल किया जा सकता है।
WhatsApp Business ऐप और Cloud API, दोनों से इस्तेमाल होने वाले नंबर के लिए तय थ्रूपुट।
रूट हैंडलर WhatsApp मैसेज कैसे पाता है?
एक ही रूट पर दो मेथड के साथ, जिसे नंबर के वेबहुक डेस्टिनेशन के रूप में सेट किया जाता है और जिसके पाथ में एक लंबा रैंडम सीक्रेट होता है।
GET, Meta की पुष्टि का जवाब देता है। क्वेरी से hub.mode, hub.verify_token और hub.challenge पढ़ें, टोकन मिलाएं और challenge को प्लेन टेक्स्ट में लौटाएं। इसे JSON हेल्पर से लौटाना सबसे आम गलती है: बॉडी में उसके चारों ओर कोट्स आ जाते हैं और Meta डिलीवरी शुरू ही नहीं करता।
POST इवेंट लेता है। 200 जल्दी लौटाएं और मॉडल को उसके बाद चलाएं, क्योंकि Meta धीमे जवाब पर दोबारा कोशिश करता है और कोल्ड स्टार्ट में मॉडल को वहीं चलाने से एक ही मैसेज का जवाब दो बार जा सकता है। जिन प्लेटफ़ॉर्म पर जवाब भेजते ही फ़ंक्शन खत्म हो जाता है, वहां काम को क्यू में डालें या प्लेटफ़ॉर्म की जवाब के बाद काम चलाने वाली सुविधा इस्तेमाल करें।
पाथ का सीक्रेट ही प्रमाणीकरण है। Meta हर डिलीवरी पर Tech Provider के ऐप सीक्रेट से हस्ताक्षर करता है, इसलिए X-Hub-Signature-256 हेडर की जांच आपकी तरफ़ से नहीं हो सकती।
AI SDK WhatsApp टूल कैसे लोड करता है?
@ai-sdk/mcp के createMCPClient और HTTP ट्रांसपोर्ट से, जिसे AI SDK का दस्तावेज़ प्रोडक्शन के लिए सुझाता है। ट्रांसपोर्ट सर्वर का यूआरएल और एक authProvider लेता है, और EasyCoexistence MCP सर्वर को authProvider के जरिए OAuth से ही अधिकृत किया जाता है: वह OAuth मेटाडेटा प्रकाशित करता है, डायनैमिक क्लाइंट रजिस्ट्रेशन और PKCE को सपोर्ट करता है, और लॉग इन के बाद अपने टोकन जारी करता है। हेडर में रखने के लिए कोई एपीआई की नहीं है।
क्लाइंट के टूल सीधे generateText या streamText में जाते हैं। तब मॉडल को list_numbers, send_message, send_template, get_number_health और बाकी टूल दिखते हैं, जिनके विवरण में 24 घंटे की विंडो साफ़ लिखी है। काम पूरा होने पर क्लाइंट बंद करें: स्ट्रीम में onEnd कॉलबैक में, और बाकी जगह finally ब्लॉक में, जैसा AI SDK का दस्तावेज़ कहता है।
इसे वहां इस्तेमाल करें जहां फ़ैसला मॉडल को लेना हो। अभी आए मैसेज का जवाब देने के लिए हैंडलर से सीधा Cloud API कॉल छोटा रहता है।
import { createMCPClient } from "@ai-sdk/mcp";
const mcp = await createMCPClient({
transport: {
type: "http",
url: "https://easycoexistence.com/api/mcp",
authProvider, // your OAuthClientProvider implementation
},
});
try {
const tools = await mcp.tools();
// pass tools to generateText({ model, tools, prompt })
} finally {
await mcp.close();
}नंबर के Coexistence पर होने से क्या बदलता है?
दो बातें, जो कोड को पता होनी चाहिए। पहली, बातचीत में पहले से कोई इंसान हो सकता है। नंबर पर WhatsApp Business ऐप चलता रहता है, और फ़ोन पर टाइप किया हर जवाब रूट पर echo इवेंट बनकर आता है। जो हैंडलर echo के बाद उस संपर्क के लिए मॉडल को रोक देता है, वह मॉडल को किसी इंसान के ऊपर जवाब देने से बचाता है।
दूसरी, नंबर के लिए भेजने की सीमा तय 20 मैसेज प्रति सेकंड है। बातचीत करने वाला एजेंट इसके पास भी नहीं पहुंचता, लेकिन संपर्कों की सूची पर Promise.all से लिखा ब्रॉडकास्ट लूप पहुंच जाएगा, इसलिए उसे बैच में बांटें।
बाकी सब सामान्य Cloud API है। ग्राहक के आखिरी मैसेज के 24 घंटे के भीतर फ़्री टेक्स्ट भेजा जा सकता है। उसके बाद सिर्फ़ मंज़ूर टेम्पलेट जाता है, और फ़्री टेक्स्ट पर गड़बड़ी 131047 लौटती है, जबकि ग्राहक को कुछ दिखता नहीं।
आम गड़बड़ियाँ
- challenge को JSON रिस्पॉन्स हेल्पर से लौटाना। उसके चारों ओर के कोट्स से Meta की जांच फ़ेल हो जाती है।
- Meta को जवाब देने से पहले generateText चलाना। कोल्ड स्टार्ट पर दोबारा कोशिश से दूसरा जवाब बन जाता है।
- MCP क्लाइंट बंद करना भूल जाना। हर अनुरोध पर एक कनेक्शन खुला रह जाता है, जब तक प्लेटफ़ॉर्म उसे खत्म न कर दे।
easycoexistence.com पर नंबर कनेक्ट करें, वेबहुक डेस्टिनेशन को अपने रूट हैंडलर पर सेट करें और एक बार OAuth से लॉग इन करके MCP क्लाइंट जोड़ें। प्रति नंबर US$ 9 प्रति माह से शुरू, नंबर जोड़ने के साथ US$ 1 तक, और पहले 3 दिन मुफ़्त।
अक्सर पूछे जाने वाले सवाल
क्या यह सिर्फ़ Vercel पर चलता है?
नहीं। AI SDK एक TypeScript लाइब्रेरी है, और रूट किसी भी होस्ट पर चल सकता है जो HTTPS देता हो और GET व POST का जवाब दे सके।
क्या मुझे MCP क्लाइंट की ज़रूरत है ही?
जवाब देने के लिए नहीं। नंबर के टोकन के साथ Cloud API के मैसेज एंडपॉइंट पर एक fetch यही काम कर देता है। MCP तब काम आता है जब क्या करना है, यह मॉडल चुने।
मॉडल कौन-सा प्रोवाइडर हो सकता है?
कोई भी, जिसे AI SDK सपोर्ट करता है। WhatsApp वाला हिस्सा मॉडल से स्वतंत्र है, इसलिए प्रोवाइडर बदलने पर रूट या Cloud API कॉल में कुछ नहीं बदलता।
क्या EasyCoexistence मैसेज देख पाता है?
नहीं। Meta सीधे आपके रूट पर डिलीवर करता है और मैसेज की सामग्री हमारी तरफ़ कभी स्टोर नहीं होती।
पढ़ना जारी रखें
शुरू करने के लिए तैयार हैं?
WhatsApp Coexistence को महीनों में नहीं, मिनटों में कॉन्फ़िगर करें। ऐप्लिकेशन मोबाइल पर काम करता रहता है।
मुफ़्त ट्रायल शुरू करेंइस तारीख को सत्यापित