Dajte LangChain agentu WhatsApp broj
LangChain agent dobiva WhatsApp u dvije polovice. Dolazne poruke stižu na vašu web rutu preko webhooka broja, a ruta pokreće agenta. Za slanje agent učitava MCP alate EasyCoexistence putem LangChainova MCPAdaptera uz OAuth ili izravno poziva Cloud API s tokenom broja i ID-jem telefonskog broja.
Najniža verzija langchain[mcp] za imenski prostor langchain.mcp, koji je u beta fazi.
Provodi cijeli OAuth 2.1 tijek: otkrivanje, dinamičku registraciju klijenta, preusmjeravanje u preglednik i razmjenu tokena.
Metina pogreška kad je prošlo više od 24 sata otkako je primatelj zadnji put odgovorio.
Kako LangChain agent učitava WhatsApp alate?
Preko MCPAdaptera, LangChainova MCP klijenta, koji alate MCP poslužitelja predaje funkciji create_agent kao obične LangChain alate. Potreban je langchain[mcp] u verziji 1.4.0 ili novijoj, a označen je kao beta.
Autentifikaciju preuzima FastMCP. Ako na klijentu proslijedite auth="oauth", pokreće se cijeli OAuth 2.1 tijek: otkrivanje, dinamička registracija klijenta, preusmjeravanje u preglednik i razmjena tokena. To je upravo ono što očekuje MCP poslužitelj EasyCoexistence, pa ne morate stvarati ni lijepiti nikakav ključ. Prema zadanim postavkama tokeni žive u memoriji i svako pokretanje ponavlja korak u pregledniku; FastMCP OAuth pružatelj sa spremištem tokena čuva ih između pokretanja.
Kad se alati učitaju, agent ih vidi zajedno s opisima: prvo list_numbers, jer svaki drugi alat uzima connection_id iz njega, zatim send_message, send_template, list_templates, get_number_health i ostale.
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)Kako dolazna WhatsApp poruka stiže do agenta?
Preko webhooka, jer MCP to ne može. Protokol funkcionira kao zahtjev i odgovor, pa poslužitelj ne može probuditi klijenta kad klijent napiše poruku.
Postavite odredište webhooka broja na rutu u vlastitoj aplikaciji, s dugom nasumičnom tajnom u putanji URL-a. Ruta odgovara na Metin provjerni GET izvornim izazovom, prihvaća svaki POST, odmah vraća 200 i stavlja posao u red. Pozadinski proces zatim iz payloada uzima pošiljatelja i tekst te s njima poziva agenta, a broj pošiljatelja koristi kao ID niti kako bi memorija ostala odvojena po klijentu.
Tajnu provjeravajte u URL-u, a ne u zaglavlju X-Hub-Signature-256. Meta potpisuje tajnom aplikacije Tech Providera, koja se nikada ne dijeli, pa to zaglavlje klijent ne može provjeriti.
Treba li agent slati preko MCP-a ili preko Cloud API-ja?
Radi oboje, a razlika je u tome tko drži pravila. MCP alati nose WhatsApp pravila u svojim opisima, primjerice da send_message radi samo unutar 24-satnog prozora, a da je send_template način da se dopre do nekoga tko nije pisao. Model koji čita te opise većinu vremena odabere pravi alat, a to pomaže kad agent slobodno odlučuje.
Vlastiti jednostavan alat koji šalje na endpoint poruka Cloud API-ja s tokenom broja jednostavniji je kad je zadatak agenta uzak, primjerice uvijek odgovoriti osobi koja je upravo napisala. Tada provjera prozora ostaje u vašem kôdu, a tamo i pripada pravilo koje se nikada ne smije prekršiti. Slobodan tekst izvan prozora vraća pogrešku 131047, a klijent ne vidi ništa.
Uobičajene pogreške
- Očekivati da MCP isporučuje dolazne poruke. Bez rute za webhook agent nikada ne čuje klijenta.
- Ostaviti OAuth tokene u memoriji na poslužitelju. Svako ponovno pokretanje traži prijavu u pregledniku; spremite ih u spremište tokena.
- Koristiti jednu nit za sve klijente. Memoriju agenta vežite uz broj pošiljatelja.
Povežite broj na easycoexistence.com, postavite odredište webhooka na svoju rutu i učitajte MCP alate u agenta jednom OAuth prijavom. Od US$ 9 po broju mjesečno, uz pad do US$ 1 kako dodajete brojeve, a prva 3 dana su besplatna.
Često postavljana pitanja
Vrijedi li ovo samo za Python?
Primjer s MCPAdapterom napisan je u Pythonu. Webhook i Cloud API obični su HTTP, pa primanje i slanje može obaviti bilo koji jezik u kojem radi LangChain.
Treba li agentu list_numbers svaki put?
Treba mu connection_id, a list_numbers jedino je mjesto odakle on dolazi. Kod jednog broja agent ga pozove jednom na početku.
Može li tim i dalje odgovarati s telefona?
Da. Coexistence održava aplikaciju WhatsApp Business u radu, a odgovori s telefona stižu na vašu rutu kao echo događaji koje agent može uzeti u obzir.
Čita li EasyCoexistence razgovor?
Ne. Meta isporučuje izravno na vašu rutu, a sadržaj poruka nikada se ne pohranjuje kod nas. MCP alati čitaju stanje računa i broja.
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 razdobljeProvjereno na