Napravite WhatsApp agenta pomoću Vercel AI SDK-a
Dolazne poruke stižu u route handler postavljen kao odredište webhooka za broj. Handler poziva generateText i šalje odgovor preko Cloud API-ja. Za alate koji deluju na broj, createMCPClient iz paketa @ai-sdk/mcp povezuje se sa EasyCoexistence MCP serverom preko HTTP-a, a prijava ide preko OAuth-a putem authProvider-a.
Paket koji obezbeđuje createMCPClient, MCP klijent AI SDK-a.
OAuth je podržan na HTTP transportu MCP-a u AI SDK-u kada se zada authProvider.
Fiksna propusnost za broj koji se koristi i u aplikaciji WhatsApp Business i preko Cloud API-ja.
Kako route handler prima WhatsApp poruke?
Pomoću dve metode na istoj ruti, koja je postavljena kao odredište webhooka za broj, sa dugom nasumičnom tajnom u putanji.
GET odgovara na Metinu verifikaciju. Pročitajte hub.mode, hub.verify_token i hub.challenge iz upita, uporedite token i vratite challenge kao običan tekst. Vraćanje preko JSON pomoćne funkcije je klasična greška: telo stiže sa navodnicima oko vrednosti i Meta nikada ne počne da isporučuje.
POST prima događaje. Brzo vratite 200, a poziv modela obavite posle, jer Meta ponavlja spore odgovore, a hladni start koji pokreće model unutar zahteva može da odgovori na istu poruku dvaput. Na platformama koje prekidaju funkciju čim se odgovor pošalje, prepustite posao redu ili mehanizmu platforme za rad posle odgovora.
Tajna u putanji je autentifikacija. Meta potpisuje svaku isporuku tajnom ključem aplikacije Tech Providera, pa zaglavlje X-Hub-Signature-256 ne možete proveriti na svojoj strani.
Kako AI SDK učitava alate za WhatsApp?
Pomoću createMCPClient iz paketa @ai-sdk/mcp i HTTP transporta, koji dokumentacija AI SDK-a preporučuje za produkciju. Transport prima URL servera i authProvider, a OAuth preko authProvider-a je način na koji se autorizuje EasyCoexistence MCP server: on objavljuje OAuth metapodatke, podržava dinamičku registraciju klijenta i PKCE, a posle prijave izdaje sopstvene tokene. Nema API ključa koji treba staviti u zaglavlje.
Alati klijenta idu pravo u generateText ili streamText. Model tada vidi list_numbers, send_message, send_template, get_number_health i ostale, sa opisima koji navode prozor od 24 sata. Zatvorite klijenta kada je poziv gotov, u onEnd povratnom pozivu za stream ili u finally bloku u ostalim slučajevima, kako traži dokumentacija AI SDK-a.
Koristite ga tamo gde model treba da odlučuje. Za odgovor na poruku koja je upravo stigla, direktan poziv Cloud API-ja iz handlera je kraći.
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();
}Šta se menja zato što je broj na Coexistence-u?
Dve stvari koje kod treba da zna. Prvo, čovek možda već učestvuje u razgovoru. Aplikacija WhatsApp Business i dalje radi na broju, a svaki odgovor otkucan na telefonu stiže na rutu kao echo događaj. Handler koji pauzira model za kontakt posle echo događaja sprečava da model odgovara preko osobe.
Drugo, slanje je ograničeno na fiksnih 20 poruka u sekundi po broju. Konverzacijski agent se tome nikad ne približi, ali petlja za masovno slanje napisana sa Promise.all nad listom kontakata hoće, pa je slaganje u serije obavezno.
Sve ostalo je uobičajeni Cloud API. U roku od 24 sata od poslednje poruke kupca dozvoljen je slobodan tekst. Posle toga prolazi samo odobren šablon, a slobodan tekst vraća grešku 131047, a da kupac ništa ne vidi.
Česte greške
- Vraćanje challenge-a preko JSON pomoćne funkcije. Navodnici oko vrednosti obaraju Metinu proveru.
- Pokretanje generateText pre odgovora Meti. Pri hladnom startu ponovljeni pokušaj proizvodi drugi odgovor.
- Zaboravljeno zatvaranje MCP klijenta. Svaki zahtev ostavlja otvorenu vezu dok je platforma ne prekine.
Povežite broj na easycoexistence.com, postavite odredište webhooka na svoj route handler i dodajte MCP klijenta uz jednu OAuth prijavu. Od US$ 9 po broju mesečno, do US$ 1 kako dodajete brojeve, prva 3 dana besplatno.
Često postavljana pitanja
Da li ovo radi samo na Vercelu?
Ne. AI SDK je TypeScript biblioteka, a ruta može da radi na bilo kom hostu koji služi HTTPS i odgovara na GET i POST.
Treba li mi uopšte MCP klijent?
Ne za odgovaranje. To rešava fetch ka Cloud API endpointu za poruke sa tokenom broja. MCP se isplati kada model sam bira šta će da uradi.
Koji provajder može da bude model?
Bilo koji koji AI SDK podržava. WhatsApp strana ne zavisi od modela, pa promena provajdera ne dira rutu ni poziv Cloud API-ja.
Da li EasyCoexistence vidi poruke?
Ne. Meta isporučuje direktno na vašu rutu, a sadržaj poruka se kod nas nikada ne čuva.
Nastavite sa čitanjem
Spremni da počnete?
Podesite WhatsApp Coexistence za nekoliko minuta, a ne meseci. Aplikacija nastavlja da radi na telefonu.
Započnite besplatni probni periodProvereno na