Anna LangChain-agentille WhatsApp-numero
LangChain-agentti saa WhatsAppin kahdessa osassa. Saapuvat viestit tulevat web-reitillesi numeron webhookin kautta, ja reitti kutsuu agenttia. Toimiakseen agentti lataa EasyCoexistencen MCP-työkalut LangChainin MCPAdapterilla OAuthin avulla tai kutsuu Cloud API -rajapintaa suoraan numeron tokenilla ja phone number id:llä.
langchain[mcp]-paketin vähimmäisversio langchain.mcp-nimiavaruudelle, joka on beta-vaiheessa.
Ajaa koko OAuth 2.1 -kulun: löytäminen, dynaaminen asiakasrekisteröinti, selaimen uudelleenohjaus ja tokenin vaihto.
Metan virhe, kun vastaanottajan viimeisestä vastauksesta on kulunut yli 24 tuntia.
Miten LangChain-agentti lataa WhatsApp-työkalut?
MCPAdapterin kautta. Se on LangChainin MCP-asiakas, joka antaa MCP-palvelimen työkalut create_agentille tavallisina LangChain-työkaluina. Se vaatii langchain[mcp]-paketin version 1.4.0 tai uudemman, ja se on merkitty beta-vaiheeseen.
Todennus on delegoitu FastMCP:lle. Kun asiakkaalle annetaan auth="oauth", se ajaa koko OAuth 2.1 -kulun: löytämisen, dynaamisen asiakasrekisteröinnin, selaimen uudelleenohjauksen ja tokenin vaihdon. Juuri sitä EasyCoexistencen MCP-palvelin odottaa, joten avainta ei tarvitse luoda eikä liittää mihinkään. Oletuksena tokenit ovat muistissa ja jokainen ajo toistaa selainvaiheen. FastMCP:n OAuth-tarjoaja, jolla on token-tallennus, säilyttää ne ajojen välillä.
Latauksen jälkeen agentti näkee työkalut kuvauksineen: ensin list_numbers, koska kaikki muut työkalut ottavat sieltä connection_id:n, sitten send_message, send_template, list_templates, get_number_health ja muut.
from fastmcp.client import Client
from langchain.agents import create_agent
from langchain.mcp import MCPAdapter
URL = "https://easycoexistence.com/api/mcp"
async def build_agent(model: str):
async with MCPAdapter(Client(URL, auth="oauth")) as adapter:
tools = await adapter.list_tools()
return create_agent(model, tools)Miten saapuva WhatsApp-viesti päätyy agentille?
Webhookin kautta, koska MCP ei pysty siihen. Protokolla perustuu pyyntöön ja vastaukseen, joten sen avulla palvelin ei voi herättää asiakasta, kun asiakas kirjoittaa.
Aseta numeron webhook-osoitteeksi oman sovelluksesi reitti, jonka URL-polussa on pitkä satunnainen salaisuus. Reitti vastaa Metan vahvistus-GET-pyyntöön raakana challengena, hyväksyy jokaisen POST-pyynnön, palauttaa heti 200:n ja jonottaa työn. Työntekijä poimii payloadista lähettäjän ja tekstin ja kutsuu agenttia niillä. Säikeen tunnisteena on lähettäjän numero, jolloin muisti pysyy asiakaskohtaisena.
Tarkista salaisuus URL-osoitteesta äläkä X-Hub-Signature-256-otsakkeesta. Meta allekirjoittaa Tech Providerin sovellussalaisuudella, jota ei jaeta koskaan, joten asiakas ei voi vahvistaa tuota otsaketta.
Pitäisikö agentin lähettää MCP:n vai Cloud API -rajapinnan kautta?
Kumpikin toimii, ja ero on siinä, kuka pitää sääntöjä hallussaan. MCP-työkalut sisältävät WhatsApp-säännöt kuvauksissaan: esimerkiksi send_message toimii vain 24 tunnin ikkunan sisällä, ja send_template on tapa tavoittaa joku, joka ei ole kirjoittanut. Näitä kuvauksia lukeva malli valitsee useimmiten oikean työkalun, ja siitä on hyötyä silloin, kun agentti päättää vapaasti.
Oma yksinkertainen työkalu, joka lähettää Cloud API -rajapinnan messages-endpointiin numeron tokenilla, on helpompi, kun agentin tehtävä on kapea, esimerkiksi vastata aina juuri kirjoittaneelle. Silloin ikkunan tarkistus on omassa koodissasi, minne rikkomaton sääntö kuuluukin. Vapaa teksti ikkunan ulkopuolella palaa virheenä 131047, eikä asiakas näe mitään.
Yleiset virheet
- Odotetaan MCP:n toimittavan saapuvat viestit. Ilman webhook-reittiä agentti ei koskaan kuule asiakkaasta.
- OAuth-tokenien jättäminen palvelimella muistiin. Jokainen uudelleenkäynnistys vaatii selainkirjautumisen, joten tallenna ne token-tallennukseen.
- Yhden säikeen käyttö kaikille asiakkaille. Avaa agentin muisti lähettäjän numerolla.
Yhdistä numero osoitteessa easycoexistence.com, aseta webhook-osoitteeksi reittisi ja lataa MCP-työkalut agentille yhdellä OAuth-kirjautumisella. Hinta alkaen US$ 9 numerolta kuussa, numeroiden lisääntyessä US$ 1:een asti, ja ensimmäiset 3 päivää ovat ilmaisia.
Usein kysytyt kysymykset
Onko tämä vain Pythonille?
MCPAdapter-esimerkki on Pythonilla. Webhook ja Cloud API ovat tavallista HTTP:tä, joten vastaanoton ja lähetyksen voi tehdä millä tahansa kielellä, jolla LangChainia ajetaan.
Tarvitseeko agentti list_numbers-työkalun joka kerta?
Se tarvitsee connection_id:n, ja list_numbers on ainoa paikka, josta sellainen saadaan. Yhden numeron tilillä agentti kutsuu sitä kerran alussa.
Voiko tiimi yhä vastata puhelimesta?
Kyllä. Coexistence pitää WhatsApp Business -sovelluksen toiminnassa, ja puhelimesta lähetetyt vastaukset saapuvat reitillesi echo-tapahtumina, jotka agentti voi ottaa huomioon.
Lukeeko EasyCoexistence keskustelua?
Ei. Meta toimittaa viestit suoraan reitillesi, eikä viestien sisältöä tallenneta meidän puolellamme. MCP-työkalut lukevat tilin ja numeron tilaa.
Lue lisää
Valmis aloittamaan?
Ota WhatsApp Coexistence käyttöön minuuteissa, ei kuukausissa. Sovellus toimii edelleen puhelimessa.
Aloita ilmainen kokeiluVahvistettu