Beri agen LangChain nombor WhatsApp
Agen LangChain mendapat WhatsApp dalam dua bahagian. Mesej masuk tiba di route web anda melalui webhook nombor itu, dan route tersebut memanggil agen. Untuk bertindak, agen memuatkan alat MCP EasyCoexistence melalui MCPAdapter LangChain dengan OAuth, atau memanggil Cloud API terus menggunakan token nombor itu dan phone number id.
Versi minimum langchain[mcp] untuk ruang nama langchain.mcp, yang masih dalam beta.
Menjalankan aliran penuh OAuth 2.1: penemuan, pendaftaran klien dinamik, pengalihan pelayar dan pertukaran token.
Ralat daripada Meta apabila lebih daripada 24 jam telah berlalu sejak penerima terakhir membalas.
Bagaimanakah agen LangChain memuatkan alat WhatsApp?
Melalui MCPAdapter, klien MCP LangChain, yang menyerahkan alat sesebuah pelayan MCP kepada create_agent sebagai alat LangChain biasa. Ia memerlukan langchain[mcp] versi 1.4.0 atau lebih baharu dan ditandakan beta.
Pengesahan diserahkan kepada FastMCP. Dengan memasukkan auth="oauth" pada klien, aliran penuh OAuth 2.1 dijalankan: penemuan, pendaftaran klien dinamik, pengalihan pelayar dan pertukaran token. Itulah yang dijangka oleh pelayan MCP EasyCoexistence, jadi tiada kunci yang perlu dicipta atau ditampal. Secara lalai, token disimpan dalam memori dan setiap larian mengulang langkah pelayar; penyedia OAuth FastMCP dengan stor token menyimpannya antara larian.
Setelah dimuatkan, agen melihat alat beserta penerangannya: list_numbers dahulu, kerana setiap alat lain memerlukan connection_id daripadanya, kemudian send_message, send_template, list_templates, get_number_health dan yang lain.
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)Bagaimanakah mesej WhatsApp masuk sampai kepada agen?
Melalui webhook, kerana MCP tidak dapat melakukannya. Protokol itu berasaskan permintaan dan respons, jadi tiada apa-apa di dalamnya yang membolehkan pelayan membangunkan klien apabila pelanggan menulis.
Tetapkan destinasi webhook nombor itu kepada route dalam aplikasi anda sendiri, dengan rahsia rawak yang panjang dalam laluan URL. Route itu menjawab GET pengesahan Meta dengan challenge mentah, menerima setiap POST, memulangkan 200 serta-merta dan memasukkan kerja ke dalam baris gilir. Seorang worker kemudian mengambil penghantar dan teks daripada payload lalu memanggil agen dengannya, dengan nombor penghantar sebagai thread id supaya memori kekal bagi setiap pelanggan.
Semak rahsia dalam URL, bukan pengepala X-Hub-Signature-256. Meta menandatangani dengan app secret milik Tech Provider, yang tidak pernah dikongsi, jadi pengepala itu tidak dapat disahkan oleh pelanggan.
Patutkah agen menghantar melalui MCP atau melalui Cloud API?
Kedua-duanya boleh, dan bezanya ialah siapa yang memegang peraturan. Alat MCP membawa peraturan WhatsApp dalam penerangannya, seperti send_message hanya berfungsi dalam tetingkap 24 jam dan send_template ialah cara untuk menghubungi seseorang yang belum menulis. Model yang membaca penerangan itu memilih yang betul pada kebanyakan masa, dan agen yang membuat keputusan secara bebas mendapat manfaat daripadanya.
Alat ringkas milik anda sendiri yang menghantar ke endpoint mesej Cloud API dengan token nombor itu lebih mudah apabila tugas agen sempit, seperti sentiasa membalas orang yang baru menulis. Maka semakan tetingkap berada dalam kod anda, tempat yang sepatutnya bagi peraturan yang tidak boleh dilanggar. Teks bebas di luar tetingkap dikembalikan sebagai ralat 131047, dan pelanggan tidak nampak apa-apa.
Kesilapan biasa
- Menjangka MCP menyampaikan mesej masuk. Tanpa route webhook, agen tidak pernah menerima apa-apa daripada pelanggan.
- Membiarkan token OAuth dalam memori pada pelayan. Setiap mula semula memerlukan log masuk pelayar; simpan token dengan stor token.
- Menggunakan satu thread untuk setiap pelanggan. Kunci memori agen pada nombor penghantar.
Sambungkan nombor di easycoexistence.com, tetapkan destinasi webhook kepada route anda, dan muatkan alat MCP ke dalam agen dengan satu log masuk OAuth. Daripada US$ 9 sebulan bagi setiap nombor, jatuh kepada US$ 1 apabila nombor ditambah, dengan 3 hari pertama percuma.
Soalan lazim
Adakah ini hanya untuk Python?
Contoh MCPAdapter ialah Python. Webhook dan Cloud API ialah HTTP biasa, jadi mana-mana bahasa yang menjalankan LangChain boleh menerima dan menghantar.
Adakah agen memerlukan list_numbers setiap kali?
Ia memerlukan connection_id, dan list_numbers ialah satu-satunya tempat ia diperoleh. Pada satu nombor, agen memanggilnya sekali pada permulaan.
Bolehkah pasukan masih membalas dari telefon?
Boleh. Coexistence mengekalkan aplikasi WhatsApp Business berfungsi, dan balasan dari telefon sampai ke route anda sebagai peristiwa echo yang boleh diambil kira oleh agen.
Adakah EasyCoexistence membaca perbualan?
Tidak. Meta menghantar terus ke route anda dan kandungan mesej tidak pernah disimpan di pihak kami. Alat MCP membaca keadaan akaun dan nombor.
Teruskan membaca
Sedia untuk bermula?
Sediakan WhatsApp Coexistence dalam beberapa minit, bukan berbulan-bulan. Aplikasi terus berfungsi pada telefon.
Mulakan Percubaan PercumaDisahkan pada