Beri agen LangChain nomor WhatsApp
Agen LangChain mendapat WhatsApp dalam dua bagian. Pesan masuk tiba di route web Anda lewat webhook nomor tersebut, lalu route memanggil agen. Untuk bertindak, agen memuat tool MCP EasyCoexistence melalui MCPAdapter milik LangChain dengan OAuth, atau memanggil Cloud API langsung memakai token dan phone number id nomor itu.
Versi minimum langchain[mcp] untuk namespace langchain.mcp, yang masih beta.
Menjalankan alur OAuth 2.1 penuh: discovery, dynamic client registration, pengalihan browser, dan pertukaran token.
Kesalahan dari Meta ketika lebih dari 24 jam berlalu sejak penerima terakhir membalas.
Bagaimana agen LangChain memuat tool WhatsApp?
Lewat MCPAdapter, klien MCP milik LangChain, yang menyerahkan tool dari sebuah server MCP ke create_agent sebagai tool LangChain biasa. Ia membutuhkan langchain[mcp] versi 1.4.0 atau lebih baru dan masih berstatus beta.
Autentikasi diserahkan ke FastMCP. Dengan auth="oauth" pada klien, alur OAuth 2.1 penuh berjalan: discovery, dynamic client registration, pengalihan browser, dan pertukaran token. Itulah yang diharapkan server MCP EasyCoexistence, jadi tidak ada kunci yang perlu dibuat atau ditempel. Secara default token disimpan di memori dan setiap proses mengulang langkah browser; penyedia OAuth FastMCP dengan token store menyimpannya di antara proses.
Setelah dimuat, agen melihat tool beserta deskripsinya: list_numbers lebih dulu, karena setiap tool lain membutuhkan connection_id darinya, lalu send_message, send_template, list_templates, get_number_health, dan seterusnya.
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)Bagaimana pesan WhatsApp masuk sampai ke agen?
Lewat webhook, karena MCP tidak bisa melakukannya. Protokolnya berupa permintaan dan respons, sehingga tidak ada cara bagi server untuk membangunkan klien saat pelanggan menulis.
Atur tujuan webhook nomor ke sebuah route di aplikasi Anda sendiri, dengan secret acak yang panjang di path URL. Route menjawab GET verifikasi dari Meta dengan challenge apa adanya, menerima setiap POST, langsung mengembalikan 200, dan memasukkan pekerjaan ke antrean. Worker kemudian mengambil pengirim dan teks dari payload lalu memanggil agen dengan keduanya, memakai nomor pengirim sebagai thread id agar memori tetap per pelanggan.
Periksa secret di URL, bukan header X-Hub-Signature-256. Meta menandatangani dengan app secret milik Tech Provider, yang tidak pernah dibagikan, sehingga pelanggan tidak bisa memvalidasi header itu.
Sebaiknya agen mengirim lewat MCP atau lewat Cloud API?
Keduanya bisa, dan bedanya ada pada siapa yang memegang aturan. Tool MCP membawa aturan WhatsApp dalam deskripsinya, misalnya send_message hanya berfungsi di dalam jendela 24 jam dan send_template adalah cara menjangkau orang yang belum menulis. Model yang membaca deskripsi itu biasanya memilih yang tepat, dan itu berguna saat agen memutuskan secara bebas.
Tool sederhana milik Anda sendiri yang mengirim ke endpoint pesan Cloud API dengan token nomor lebih mudah bila tugas agen sempit, misalnya selalu membalas orang yang baru saja menulis. Pemeriksaan jendela lalu berada di kode Anda, tempat yang tepat untuk aturan yang tidak boleh dilanggar. Teks bebas di luar jendela kembali sebagai kesalahan 131047, dan pelanggan tidak melihat apa pun.
Kesalahan umum
- Mengira MCP akan mengantarkan pesan masuk. Tanpa route webhook, agen tidak pernah mendengar kabar dari pelanggan.
- Membiarkan token OAuth di memori pada server. Setiap restart meminta login browser lagi; simpan dengan token store.
- Memakai satu thread untuk semua pelanggan. Kaitkan memori agen dengan nomor pengirim.
Hubungkan nomor di easycoexistence.com, atur tujuan webhook ke route Anda, lalu muat tool MCP ke agen dengan satu kali login OAuth. Mulai US$ 9 per nomor per bulan, turun menjadi US$ 1 seiring bertambahnya nomor, dengan 3 hari pertama gratis.
Pertanyaan yang sering diajukan
Apakah ini hanya untuk Python?
Contoh MCPAdapter memakai Python. Webhook dan Cloud API adalah HTTP biasa, jadi bahasa apa pun yang bisa dijalankan LangChain dapat menerima dan mengirim.
Apakah agen perlu list_numbers setiap kali?
Agen membutuhkan connection_id, dan list_numbers adalah satu-satunya sumbernya. Pada satu nomor, agen memanggilnya sekali di awal.
Apakah tim masih bisa membalas dari ponsel?
Bisa. Coexistence menjaga aplikasi WhatsApp Business tetap berfungsi, dan balasan dari ponsel sampai ke route Anda sebagai event echo yang dapat dipertimbangkan agen.
Apakah EasyCoexistence membaca percakapan?
Tidak. Meta mengirim langsung ke route Anda dan isi pesan tidak pernah disimpan di sisi kami. Tool MCP membaca status akun dan nomor.
Lanjut membaca
Siap memulai?
Konfigurasikan WhatsApp Coexistence dalam hitungan menit, bukan bulan. Aplikasi tetap berfungsi di ponsel.
Mulai uji coba gratisDiverifikasi pada