Rakenna WhatsApp-agentti Vercel AI SDK:lla
Saapuvat viestit tulevat reitinkäsittelijään, joka on asetettu numeron webhook-osoitteeksi. Käsittelijä kutsuu generateTextiä ja lähettää vastauksen Cloud API -rajapinnan kautta. Numeroon vaikuttavia työkaluja varten @ai-sdk/mcp-paketin createMCPClient yhdistää EasyCoexistence MCP -palvelimeen HTTP:n yli ja kirjautuu OAuthilla authProviderin kautta.
Paketti, joka tarjoaa createMCPClientin, eli AI SDK:n MCP-asiakkaan.
AI SDK:n MCP:n HTTP-siirto tukee OAuthia, kun sille antaa authProviderin.
Kiinteä läpimeno numerolle, jota käytetään sekä WhatsApp Business -sovelluksessa että Cloud API -rajapinnassa.
Miten reitinkäsittelijä vastaanottaa WhatsApp-viestit?
Yhdellä reitillä on kaksi metodia, ja reitti asetetaan numeron webhook-osoitteeksi niin, että polussa on pitkä satunnainen salaisuus.
GET vastaa Metan vahvistukseen. Lue kyselystä hub.mode, hub.verify_token ja hub.challenge, vertaa tokenia ja palauta challenge pelkkänä tekstinä. Klassinen virhe on palauttaa se JSON-apufunktiolla: sisältö saapuu lainausmerkkien kanssa, eikä Meta ala koskaan toimittaa viestejä.
POST vastaanottaa tapahtumat. Palauta 200 nopeasti ja tee mallikutsu vasta sen jälkeen, koska Meta yrittää hitaita vastauksia uudelleen, ja kylmäkäynnistys, joka ajaa mallin samassa kutsussa, voi vastata samaan viestiin kahdesti. Alustoilla, jotka lopettavat funktion vastauksen lähettämisen jälkeen, anna työ jonolle tai alustan omalle mekanismille vastauksen jälkeistä työtä varten.
Polun salaisuus toimii todennuksena. Meta allekirjoittaa jokaisen toimituksen Tech Providerin sovellussalaisuudella, joten X-Hub-Signature-256-otsaketta ei voi tarkistaa sinun puolellasi.
Miten AI SDK lataa WhatsApp-työkalut?
Käytä @ai-sdk/mcp-paketin createMCPClientiä ja HTTP-siirtoa, jota AI SDK:n dokumentaatio suosittelee tuotantoon. Siirto ottaa palvelimen URL:n ja authProviderin, ja EasyCoexistence MCP -palvelin valtuutetaan OAuthilla authProviderin kautta: se julkaisee OAuth-metatiedot, tukee dynaamista asiakasrekisteröintiä ja PKCE:tä ja myöntää omat tokenit kirjautumisen jälkeen. Otsakkeeseen ei laiteta mitään API-avainta.
Asiakkaan työkalut annetaan suoraan generateTextille tai streamTextille. Malli näkee silloin työkalut list_numbers, send_message, send_template, get_number_health ja muut, ja niiden kuvauksissa mainitaan 24 tunnin ikkuna. Sulje asiakas, kun kutsu on valmis: onEnd-callbackissa striimin kohdalla tai muuten finally-lohkossa, kuten AI SDK:n dokumentaatio neuvoo.
Käytä tätä silloin, kun mallin pitää päättää itse. Juuri saapuneeseen viestiin vastaamiseen suora Cloud API -kutsu käsittelijästä on lyhyempi.
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();
}Mikä muuttuu, kun numero on Coexistencessa?
Koodin pitää tietää kaksi asiaa. Ensinnäkin ihminen voi olla jo mukana keskustelussa. WhatsApp Business -sovellus toimii numerolla edelleen, ja jokainen puhelimella kirjoitettu vastaus saapuu reitille echo-tapahtumana. Käsittelijä, joka keskeyttää mallin kyseisen yhteystiedon osalta echon jälkeen, estää mallia vastaamasta ihmisen päälle.
Toiseksi lähetys on rajattu kiinteään 20 viestiin sekunnissa numeroa kohden. Keskusteleva agentti ei pääse lähellekään tätä, mutta yhteystietolistan yli Promise.all-kutsulla kirjoitettu joukkolähetyssilmukka pääsee, joten jaa lähetys eriin.
Kaikki muu on tavallista Cloud API -rajapintaa. Asiakkaan viimeisestä viestistä 24 tunnin sisällä vapaa teksti on sallittu. Sen jälkeen läpi menee vain hyväksytty viestipohja, ja vapaa teksti palauttaa virheen 131047 ilman että asiakas näkee mitään.
Yleiset virheet
- Challengen palauttaminen JSON-vastauksen apufunktiolla. Sen ympärillä olevat lainausmerkit kaatavat Metan tarkistuksen.
- generateTextin ajaminen ennen vastaamista Metalle. Kylmäkäynnistyksessä uudelleenyritys tuottaa toisen vastauksen.
- MCP-asiakkaan sulkemisen unohtaminen. Jokainen pyyntö jättää yhteyden auki, kunnes alusta katkaisee sen.
Yhdistä numero osoitteessa easycoexistence.com, aseta webhook-osoitteeksi reitinkäsittelijäsi ja lisää MCP-asiakas yhdellä OAuth-kirjautumisella. Hinta alkaen US$ 9 numerolta kuukaudessa, laskien US$ 1:een numeroita lisättäessä, ja ensimmäiset 3 päivää ovat ilmaisia.
Usein kysytyt kysymykset
Toimiiko tämä vain Vercelissä?
Ei. AI SDK on TypeScript-kirjasto, ja reitti voi toimia millä tahansa palvelimella, joka tarjoaa HTTPS:n ja vastaa GET- ja POST-pyyntöihin.
Tarvitsenko MCP-asiakasta ollenkaan?
Vastaamiseen et. Sen hoitaa fetch-kutsu Cloud API -rajapinnan messages-endpointiin numeron tokenilla. MCP on hyödyllinen silloin, kun malli valitsee, mitä tehdään.
Mikä palveluntarjoaja mallina voi olla?
Mikä tahansa, jota AI SDK tukee. WhatsApp-puoli on mallista riippumaton, joten palveluntarjoajan vaihtaminen ei koske reittiä eikä Cloud API -kutsua.
Näkeekö EasyCoexistence viestit?
Ei. Meta toimittaa viestit suoraan sinun reitillesi, eikä viestien sisältöä tallenneta meidän puolellamme.
Lue lisää
Valmis aloittamaan?
Ota WhatsApp Coexistence käyttöön minuuteissa, ei kuukausissa. Sovellus toimii edelleen puhelimessa.
Aloita ilmainen kokeiluVahvistettu