Prijavite seZapočnite besplatno probno razdoblje
Meta Tech Provider

Izgradite WhatsApp agenta uz Vercel AI SDK

Dolazne poruke stižu na route handler postavljen kao odredište webhooka za broj. Handler poziva generateText i šalje odgovor preko Cloud API. Za alate koji djeluju na broju, createMCPClient iz @ai-sdk/mcp povezuje se s EasyCoexistence MCP poslužiteljem preko HTTP-a, a prijava ide protokolom OAuth kroz authProvider.

@ai-sdk/mcp

Paket koji pruža createMCPClient, MCP klijent iz AI SDK-a.

authProvider

OAuth je podržan na HTTP transportu MCP-a u AI SDK-u uz zadavanje authProvidera.

20 msg/s

Fiksna propusnost za broj koji se koristi i s aplikacijom WhatsApp Business i s Cloud API.

Kako route handler prima WhatsApp poruke?

Pomoću dvije metode na jednoj ruti, postavljene kao odredište webhooka za broj, s dugom nasumičnom tajnom u putanji.

GET odgovara na Metinu provjeru. Iz upita pročitajte hub.mode, hub.verify_token i hub.challenge, usporedite token i vratite challenge kao običan tekst. Vraćanje preko JSON pomoćne funkcije klasična je pogreška: tijelo stigne s navodnicima oko sebe i Meta nikad ne počne isporučivati.

POST prima događaje. Brzo vratite 200, a poziv modela obavite poslije, jer Meta ponavlja spore odgovore, a hladni start koji model pokreće izravno može odgovoriti na istu poruku dvaput. Na platformama koje završavaju funkciju kad se odgovor pošalje, posao predajte redu čekanja ili mehanizmu platforme za rad nakon odgovora.

Tajna u putanji služi kao autentikacija. Meta potpisuje svaku isporuku tajnom aplikacije Tech Providera, pa se zaglavlje X-Hub-Signature-256 ne može provjeriti na vašoj strani.

Kako AI SDK učitava WhatsApp alate?

Pomoću createMCPClient iz @ai-sdk/mcp i HTTP transporta, koji dokumentacija AI SDK-a preporučuje za produkciju. Transport prima URL poslužitelja i authProvider, a OAuth preko authProvidera način je na koji se autorizira EasyCoexistence MCP poslužitelj: objavljuje OAuth metapodatke, podržava dinamičku registraciju klijenta i PKCE te nakon prijave izdaje vlastite tokene. Nema API ključa koji bi se stavljao u zaglavlje.

Alati klijenta idu izravno u generateText ili streamText. Model tada vidi list_numbers, send_message, send_template, get_number_health i ostale, s opisima koji navode 24-satni prozor. Klijenta zatvorite kad je poziv gotov, u onEnd povratnom pozivu za stream ili inače u finally bloku, kako traži dokumentacija AI SDK-a.

Koristite ga ondje gdje model treba odlučivati. Za odgovor na poruku koja je upravo stigla kraći je izravan poziv Cloud API iz handlera.

MCP client over HTTP with OAuth, as the AI SDK documents it
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();
}

Što se mijenja jer je broj na Coexistence?

Dvije stvari koje kôd treba znati. Prvo, čovjek već može biti u razgovoru. Aplikacija WhatsApp Business i dalje radi na broju, a svaki odgovor otipkan na telefonu stiže na rutu kao echo događaj. Handler koji nakon echoa pauzira model za tog kontakta sprječava da model odgovara preko osobe.

Drugo, slanje je ograničeno na fiksnih 20 poruka u sekundi po broju. Razgovorni agent se tome nikad ne približi, ali petlja za masovno slanje napisana s Promise.all nad popisom kontakata hoće, zato je slanje podijelite u skupine.

Sve ostalo je uobičajeni Cloud API. Unutar 24 sata od kupčeve posljednje poruke dopušten je slobodan tekst. Nakon toga prolazi samo odobreni predložak, a slobodan tekst vraća pogrešku 131047, a da kupac ništa ne vidi.

Uobičajene pogreške

  • Vraćanje challengea putem JSON pomoćne funkcije za odgovor. Navodnici oko njega ruše Metinu provjeru.
  • Pokretanje generateText prije odgovora Meti. Kod hladnog starta ponovni pokušaj proizvodi drugi odgovor.
  • Zaboravljeno zatvaranje MCP klijenta. Svaki zahtjev ostavlja otvorenu vezu dok je platforma ne prekine.
Radite ovo uz EasyCoexistence

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 mjesečno, uz pad na US$ 1 kako dodajete brojeve, s prva 3 dana besplatno.

Često postavljana pitanja

Radi li ovo samo na Vercelu?

Ne. AI SDK je TypeScript biblioteka, a ruta može raditi na bilo kojem hostu koji poslužuje HTTPS i odgovara na GET i POST.

Treba li mi uopće MCP klijent?

Ne za odgovaranje. To obavlja fetch na endpoint poruka Cloud API s tokenom broja. MCP se isplati kad model sam bira što će učiniti.

Koji pružatelj može biti model?

Bilo koji koji AI SDK podržava. WhatsApp strana neovisna je o modelu, pa promjena pružatelja ne dira rutu ni poziv Cloud API.

Vidi li EasyCoexistence poruke?

Ne. Meta isporučuje izravno na vašu rutu, a sadržaj poruka nikad se ne pohranjuje kod nas.

Nastavite čitati

Spremni za početak?

Postavite WhatsApp Coexistence u nekoliko minuta, a ne mjeseci. Aplikacija i dalje radi na telefonu.

Započnite besplatno probno razdoblje

Provjereno na

Vercel AI SDK i WhatsApp Cloud API