Vercel AI SDK ile bir WhatsApp ajanı oluşturun
Gelen mesajlar, numaranın webhook hedefi olarak ayarlanan bir route handler'a ulaşır. Handler generateText çağırır ve yanıtı Cloud API üzerinden gönderir. Numara üzerinde işlem yapan araçlar için @ai-sdk/mcp paketindeki createMCPClient, EasyCoexistence MCP sunucusuna HTTP üzerinden bağlanır ve bir authProvider aracılığıyla OAuth ile oturum açar.
AI SDK'nın MCP istemcisi olan createMCPClient'ı sağlayan paket.
OAuth, AI SDK'nın MCP HTTP taşıyıcısında bir authProvider verilerek desteklenir.
WhatsApp Business uygulaması ve Cloud API ile birlikte kullanılan bir numara için sabit iş hacmi.
Route handler WhatsApp mesajlarını nasıl alır?
Tek bir route üzerinde iki metotla. Route, numaranın webhook hedefi olarak ayarlanır ve yolunda uzun, rastgele bir gizli değer bulunur.
GET, Meta'nın doğrulamasını yanıtlar. Sorgudan hub.mode, hub.verify_token ve hub.challenge değerlerini okuyun, token'ı karşılaştırın ve challenge değerini düz metin olarak döndürün. Bunu bir JSON yardımcısıyla döndürmek klasik hatadır: gövde tırnak işaretleriyle gelir ve Meta teslimata hiç başlamaz.
POST olayları alır. Hızlıca 200 döndürün ve model çağrısını sonra yapın. Meta yavaş yanıtları yeniden dener; modeli satır içinde çalıştıran bir cold start da aynı mesajı iki kez yanıtlayabilir. Yanıt gönderilince fonksiyonu sonlandıran platformlarda işi bir kuyruğa ya da platformun yanıt sonrası iş mekanizmasına devredin.
Yoldaki gizli değer kimlik doğrulamasıdır. Meta her teslimatı Tech Provider'ın uygulama sırrıyla imzalar; bu yüzden X-Hub-Signature-256 üstbilgisi sizin tarafınızda doğrulanamaz.
AI SDK WhatsApp araçlarını nasıl yükler?
@ai-sdk/mcp paketindeki createMCPClient ve HTTP taşıyıcısıyla. AI SDK belgeleri bu taşıyıcıyı üretim için önerir. Taşıyıcı sunucu URL'sini ve bir authProvider alır. EasyCoexistence MCP sunucusu, bir authProvider üzerinden OAuth ile yetkilendirilir: sunucu OAuth meta verilerini yayımlar, dinamik istemci kaydını ve PKCE'yi destekler, oturum açıldıktan sonra kendi token'larını verir. Bir başlığa koyacağınız API anahtarı yoktur.
İstemcinin araçları doğrudan generateText ya da streamText içine verilir. Model de list_numbers, send_message, send_template, get_number_health ve diğerlerini görür; açıklamalarında 24 saatlik pencere belirtilir. İş bittiğinde istemciyi kapatın: akışta onEnd geri çağrısında, aksi halde bir finally bloğunda. AI SDK belgeleri de bunu ister.
Modelin karar vermesini istediğiniz yerde kullanın. Az önce gelen mesajı yanıtlamak için handler'dan doğrudan Cloud API çağrısı yapmak daha kısadır.
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();
}Numara Coexistence üzerinde olunca ne değişir?
Kodun bilmesi gereken iki şey var. Birincisi, konuşmada zaten bir insan olabilir. WhatsApp Business uygulaması numarada çalışmaya devam eder ve telefonda yazılan her yanıt route'a bir echo olayı olarak gelir. Bir echo sonrasında o kişi için modeli duraklatan bir handler, modelin bir insanın üstüne yanıt vermesini önler.
İkincisi, gönderim numara için saniyede sabit 20 mesajla sınırlıdır. Konuşan bir ajan buna asla yaklaşmaz, ancak kişi listesi üzerinde Promise.all ile yazılmış bir toplu gönderim döngüsü yaklaşır; bu yüzden gönderimi gruplayın.
Geri kalan her şey sıradan Cloud API'dir. Müşterinin son mesajından sonraki 24 saat içinde serbest metin gönderilebilir. Sonrasında yalnızca onaylı bir şablon geçer; serbest metin ise 131047 kodlu hatayı döndürür ve müşteri hiçbir şey görmez.
Yaygın hatalar
- Challenge değerini bir JSON yanıt yardımcısıyla döndürmek. Etrafındaki tırnak işaretleri Meta'nın kontrolünü geçemez.
- Meta'ya yanıt vermeden önce generateText çalıştırmak. Cold start sırasında yeniden deneme ikinci bir yanıt üretir.
- MCP istemcisini kapatmayı unutmak. Her istek, platform sonlandırana kadar bir bağlantıyı açık bırakır.
Numarayı easycoexistence.com üzerinden bağlayın, webhook hedefini route handler'ınıza ayarlayın ve tek bir OAuth girişiyle MCP istemcisini ekleyin. Numara başına aylık US$ 9'dan başlar, numara ekledikçe US$ 1'e düşer; ilk 3 gün ücretsizdir.
Sık sorulan sorular
Bu yalnızca Vercel'de mi çalışır?
Hayır. AI SDK bir TypeScript kütüphanesidir ve route, HTTPS sunan ve bir GET ile bir POST yanıtlayan her ortamda çalışabilir.
MCP istemcisine hiç ihtiyacım var mı?
Yanıt vermek için hayır. Numaranın token'ıyla Cloud API mesaj uç noktasına yapılan bir fetch bunu yapar. MCP, modelin ne yapacağına kendisinin karar verdiği durumlarda işe yarar.
Model hangi sağlayıcı olabilir?
AI SDK'nın desteklediği herhangi biri. WhatsApp tarafı modelden bağımsızdır; sağlayıcı değiştirmek route'a ya da Cloud API çağrısına dokunmaz.
EasyCoexistence mesajları görür mü?
Hayır. Meta teslimatı doğrudan route'unuza yapar ve mesaj içeriği bizim tarafımızda hiçbir zaman saklanmaz.
Okumaya devam edin
Başlamaya hazır mısınız?
WhatsApp Coexistence'ı aylar değil, dakikalar içinde kurun. Uygulama telefonda çalışmaya devam eder.
Ücretsiz denemeyi başlatınDoğrulama tarihi