Mag-log inMagsimula ng Libreng Trial
Meta Tech Provider

Gumawa ng WhatsApp agent gamit ang Vercel AI SDK

Ang mga papasok na mensahe ay dumarating sa isang route handler na itinakda bilang webhook destination ng numero. Tinatawag ng handler ang generateText at ipinapadala ang sagot sa pamamagitan ng Cloud API. Para sa mga tool na kumikilos sa numero, kumokonekta ang createMCPClient mula sa @ai-sdk/mcp sa EasyCoexistence MCP server sa HTTP, at nagsa-sign in gamit ang OAuth sa pamamagitan ng authProvider.

@ai-sdk/mcp

Ang package na nagbibigay ng createMCPClient, ang MCP client ng AI SDK.

authProvider

Sinusuportahan ang OAuth sa MCP HTTP transport ng AI SDK sa pamamagitan ng pagbibigay ng authProvider.

20 msg/s

Nakapirming throughput para sa numerong ginagamit sa parehong WhatsApp Business app at Cloud API.

Paano tumatanggap ng mensahe sa WhatsApp ang route handler?

Gumamit po ng dalawang method sa iisang route, na itinakda bilang webhook destination ng numero na may mahaba at random na secret sa path.

Ang GET ang sumasagot sa verification ng Meta. Basahin ang hub.mode, hub.verify_token at hub.challenge mula sa query, ihambing ang token, at ibalik ang challenge bilang plain text. Ang pagbalik nito sa pamamagitan ng JSON helper ang klasikong pagkakamali: dumarating ang body na may mga panipi sa paligid nito at hindi kailanman magsisimulang magpadala ang Meta.

Ang POST ang tumatanggap ng mga event. Magbalik agad ng 200 at saka gawin ang model call, dahil nagre-retry ang Meta sa mabagal na sagot at ang cold start na nagpapatakbo ng model nang inline ay maaaring sumagot nang dalawang beses sa iisang mensahe. Sa mga platform na tinatapos ang function kapag naipadala na ang sagot, ipasa ang gawain sa isang queue o sa mekanismo ng platform para sa gawain pagkatapos ng sagot.

Ang path secret ang nagsisilbing authentication. Pinipirmahan ng Meta ang bawat delivery gamit ang app secret ng Tech Provider, kaya hindi masusuri sa inyong panig ang X-Hub-Signature-256 header.

Paano niloload ng AI SDK ang mga WhatsApp tool?

Gamit ang createMCPClient mula sa @ai-sdk/mcp at ang HTTP transport, na inirerekomenda ng dokumentasyon ng AI SDK para sa production. Tinatanggap ng transport ang URL ng server at isang authProvider, at ang OAuth sa pamamagitan ng authProvider ang paraan ng pag-authorize sa EasyCoexistence MCP server: naglalathala ito ng OAuth metadata, sumusuporta sa dynamic client registration at PKCE, at nag-iisyu ng sarili nitong mga token pagkatapos ng sign-in. Walang API key na ilalagay sa header.

Diretso sa generateText o streamText ang mga tool ng client. Makikita na ng model ang list_numbers, send_message, send_template, get_number_health at iba pa, na may mga paglalarawang nagsasaad ng 24 oras na window. Isara po ninyo ang client kapag tapos na ang call, sa onEnd callback para sa stream o sa finally block para sa iba, ayon sa hinihingi ng dokumentasyon ng AI SDK.

Gamitin ito kung saan dapat magdesisyon ang model. Para sa pagsagot sa mensaheng kararating lang, mas maikli ang direktang Cloud API call mula sa handler.

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();
}

Ano ang nagbabago dahil nasa Coexistence ang numero?

Dalawang bagay na dapat alam ng code. Una, maaaring may tao nang kausap sa conversation. Patuloy na gumagana ang WhatsApp Business app sa numero, at ang bawat sagot na tinype sa telepono ay dumarating sa route bilang echo event. Ang handler na nagpapahinto sa model para sa isang contact pagkatapos ng echo ay hindi sasagot sa ibabaw ng isang tao.

Pangalawa, may nakapirmang limitasyon na 20 mensahe kada segundo sa pagpapadala para sa numero. Hindi ito aabutin ng isang conversational agent, pero aabutin ito ng broadcast loop na isinulat gamit ang Promise.all sa listahan ng contact, kaya i-batch ito.

Ang lahat ng iba pa ay ordinaryong Cloud API. Sa loob ng 24 oras mula sa huling mensahe ng customer, pinapayagan ang free-form text. Pagkatapos nito, tanging aprubadong template lamang ang makakadaan, at ang free-form text ay magbabalik ng error 131047 nang hindi nakikita ng customer ang anuman.

Mga karaniwang pagkakamali

  • Pagbalik ng challenge gamit ang JSON response helper. Ang mga panipi sa paligid nito ang pumapalya sa pagsusuri ng Meta.
  • Pagpapatakbo ng generateText bago sumagot sa Meta. Sa cold start, ang retry ay nagbubunga ng pangalawang sagot.
  • Paglimot na isara ang MCP client. Ang bawat request ay nag-iiwan ng bukas na koneksyon hanggang patayin ito ng platform.
Ginagawa ito gamit ang EasyCoexistence

I-connect po ninyo ang numero sa easycoexistence.com, itakda ang webhook destination sa inyong route handler, at idagdag ang MCP client gamit ang isang OAuth sign-in. Mula US$ 9 kada naka-connect na numero kada buwan, bumababa hanggang US$ 1 habang nadaragdagan ang mga numero, at libre ang unang 3 araw.

Mga madalas itanong

Sa Vercel lang ba ito gumagana?

Hindi. Ang AI SDK ay isang TypeScript library, at maaaring tumakbo ang route sa anumang host na naghahatid ng HTTPS at sumasagot sa GET at POST.

Kailangan ko ba talaga ang MCP client?

Hindi para sa pagsagot. Sapat na ang fetch sa messages endpoint ng Cloud API gamit ang token ng numero. May silbi ang MCP kapag ang model ang pumipili ng gagawin.

Aling provider ang maaaring gamitin para sa model?

Alinman sa sinusuportahan ng AI SDK. Hiwalay sa model ang panig ng WhatsApp, kaya ang pagpapalit ng provider ay hindi makakaapekto sa route o sa Cloud API call.

Nakikita ba ng EasyCoexistence ang mga mensahe?

Hindi. Direktang naghahatid ang Meta sa inyong route at hindi kailanman iniimbak sa aming panig ang nilalaman ng mensahe.

Magpatuloy sa pagbabasa

Handa na po ba kayong magsimula?

I-set up ang WhatsApp Coexistence sa loob ng ilang minuto, hindi buwan. Patuloy na gumagana ang app sa telepono.

Magsimula ng Libreng Trial

Na-verify noong

Vercel AI SDK sa WhatsApp, Cloud API