Bigyan ng WhatsApp na numero ang isang LangChain agent
May dalawang bahagi ang WhatsApp ng isang LangChain agent. Ang mga papasok na mensahe ay dumarating sa web route ninyo sa pamamagitan ng webhook ng numero, at ang route ang nag-i-invoke sa agent. Para kumilos, i-lo-load ng agent ang EasyCoexistence MCP tools gamit ang MCPAdapter ng LangChain at OAuth, o tatawagin nito nang direkta ang Cloud API gamit ang token ng numero at ang phone number id.
Pinakamababang bersyon ng langchain[mcp] para sa langchain.mcp namespace, na nasa beta.
Pinapatakbo ang buong OAuth 2.1 flow: discovery, dynamic client registration, browser redirect at token exchange.
Ang error ng Meta kapag lumampas na sa 24 oras mula nang huling sumagot ang tatanggap.
Paano nilo-load ng LangChain agent ang mga WhatsApp tool?
Sa pamamagitan ng MCPAdapter, ang MCP client ng LangChain, na ibinibigay ang mga tool ng isang MCP server sa create_agent bilang karaniwang LangChain tools. Kailangan nito ang langchain[mcp] na bersyon 1.4.0 o mas bago, at nakamarka itong beta.
Iniaatas sa FastMCP ang authentication. Kapag nilagay ang auth="oauth" sa client, tatakbo ang buong OAuth 2.1 flow: discovery, dynamic client registration, browser redirect at token exchange. Iyon mismo ang inaasahan ng EasyCoexistence MCP server, kaya walang key na gagawin o ipe-paste. Bilang default, nasa memory lang ang mga token at inuulit ng bawat takbo ang hakbang sa browser. Kung gagamit kayo ng FastMCP OAuth provider na may token store, mananatili ang mga ito sa pagitan ng mga takbo.
Pagkatapos ma-load, makikita ng agent ang mga tool kasama ang kanilang paglalarawan: una ang list_numbers, dahil ang bawat ibang tool ay kumukuha ng connection_id mula rito, saka send_message, send_template, list_templates, get_number_health at iba pa.
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)Paano nakararating sa agent ang papasok na mensahe sa WhatsApp?
Sa pamamagitan ng webhook, dahil hindi ito kayang gawin ng MCP. Request at sagot ang protocol, kaya walang paraan para magising ng isang server ang client kapag sumulat ang customer.
Itakda po ang webhook destination ng numero sa isang route sa sarili ninyong application, na may mahaba at random na secret sa URL path. Sasagutin ng route ang verification GET ng Meta gamit ang raw challenge, tatanggapin ang bawat POST, agad magbabalik ng 200 at ipapasok sa queue ang trabaho. Pagkatapos, kukunin ng isang worker ang nagpadala at ang teksto mula sa payload at i-i-invoke ang agent gamit ang mga ito, na ang numero ng nagpadala ang thread id para manatiling hiwalay ang memory kada customer.
I-check ang secret sa URL sa halip na ang X-Hub-Signature-256 header. Pumipirma ang Meta gamit ang app secret ng Tech Provider, na hindi kailanman ibinabahagi, kaya hindi ito mave-validate ng customer.
Dapat bang magpadala ang agent sa pamamagitan ng MCP o ng Cloud API?
Parehong gumagana, at ang pagkakaiba ay kung sino ang may hawak ng mga patakaran. Dala ng MCP tools ang mga patakaran ng WhatsApp sa kanilang paglalarawan, gaya ng send_message na gumagana lamang sa loob ng 24 oras na window at ng send_template bilang paraan para maabot ang taong hindi pa sumusulat. Karaniwang napipili ng model ang tama kapag binasa ang mga paglalarawang iyon, at nakatutulong ito kapag malayang nagpapasya ang agent.
Mas simple ang sarili ninyong tool na nagpo-post sa messages endpoint ng Cloud API gamit ang token ng numero kapag makitid ang trabaho ng agent, gaya ng laging pagsagot sa taong kasusulat lang. Sa ganitong paraan, nasa code ninyo ang pag-check ng window, na siyang tamang lugar para sa patakarang hindi dapat labagin. Ang free-form text sa labas ng window ay bumabalik na may error 131047, at walang makikita ang customer.
Mga karaniwang pagkakamali
- Pag-asang maghahatid ang MCP ng mga papasok na mensahe. Kung walang webhook route, hindi kailanman makakarinig ang agent mula sa customer.
- Pag-iwan ng mga OAuth token sa memory ng isang server. Bawat restart ay hihingi ng sign-in sa browser; i-persist ang mga ito gamit ang token store.
- Paggamit ng iisang thread para sa lahat ng customer. Gamitin ang numero ng nagpadala bilang key ng memory ng agent.
I-connect ang numero sa easycoexistence.com, itakda ang webhook destination sa inyong route, at i-load ang MCP tools sa agent 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
Python lang ba ito?
Python ang halimbawa ng MCPAdapter. Plain HTTP lang ang webhook at ang Cloud API, kaya anumang wika kung saan tumatakbo ang LangChain ay kayang tumanggap at magpadala.
Kailangan ba ng agent ang list_numbers sa bawat pagkakataon?
Kailangan nito ng connection_id, at ang list_numbers lang ang pinagmumulan nito. Kung iisa ang numero, minsan lang itong tatawagin ng agent sa simula.
Makakasagot pa ba ang team mula sa telepono?
Oo. Pinananatiling gumagana ng Coexistence ang WhatsApp Business app, at ang mga sagot mula sa telepono ay dumarating sa inyong route bilang echo events na maaaring isaalang-alang ng agent.
Binabasa ba ng EasyCoexistence ang usapan?
Hindi. Direktang naghahatid ang Meta sa inyong route at hindi kailanman iniimbak sa aming panig ang nilalaman ng mensahe. Ang estado ng account at numero lang ang binabasa ng MCP tools.
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 TrialNa-verify noong