MasukMulai uji coba gratis
Meta Tech Provider

Membangun agen WhatsApp dengan Vercel AI SDK

Pesan masuk tiba di route handler yang ditetapkan sebagai tujuan webhook nomor. Handler memanggil generateText dan mengirim jawabannya lewat Cloud API. Untuk alat yang bertindak pada nomor, createMCPClient dari @ai-sdk/mcp terhubung ke server MCP EasyCoexistence lewat HTTP, masuk dengan OAuth melalui authProvider.

@ai-sdk/mcp

Paket yang menyediakan createMCPClient, klien MCP milik AI SDK.

authProvider

OAuth didukung pada transport HTTP MCP milik AI SDK dengan menyediakan authProvider.

20 msg/s

Throughput tetap untuk nomor yang dipakai bersama aplikasi WhatsApp Business dan Cloud API.

Bagaimana route handler menerima pesan WhatsApp?

Dengan dua method pada satu route, yang ditetapkan sebagai tujuan webhook nomor dengan secret acak yang panjang di path.

GET menjawab verifikasi dari Meta. Baca hub.mode, hub.verify_token, dan hub.challenge dari query, cocokkan token, lalu kembalikan challenge sebagai teks biasa. Mengembalikannya lewat helper JSON adalah kesalahan klasik: isinya tiba dengan tanda kutip di sekelilingnya dan Meta tidak pernah mulai mengirim.

POST menerima event. Kembalikan 200 dengan cepat dan jalankan panggilan model sesudahnya, karena Meta mencoba kembali pengiriman yang lambat dan cold start yang menjalankan model secara inline bisa menjawab pesan yang sama dua kali. Pada platform yang menghentikan fungsi begitu respons dikirim, serahkan pekerjaannya ke antrean atau ke mekanisme platform untuk pekerjaan setelah respons.

Secret di path adalah autentikasinya. Meta menandatangani setiap pengiriman dengan app secret milik Tech Provider, jadi header X-Hub-Signature-256 tidak bisa diperiksa di sisi Anda.

Bagaimana AI SDK memuat alat WhatsApp?

Dengan createMCPClient dari @ai-sdk/mcp dan transport HTTP, yang direkomendasikan dokumentasi AI SDK untuk produksi. Transport menerima URL server dan sebuah authProvider, dan OAuth lewat authProvider adalah cara server MCP EasyCoexistence diotorisasi: server ini menerbitkan metadata OAuth, mendukung dynamic client registration dan PKCE, lalu menerbitkan token sendiri setelah login. Tidak ada kunci API yang perlu ditaruh di header.

Alat milik klien langsung masuk ke generateText atau streamText. Model lalu melihat list_numbers, send_message, send_template, get_number_health, dan lainnya, dengan deskripsi yang menyebut jendela layanan pelanggan 24 jam. Tutup klien setelah panggilan selesai, di callback onEnd untuk stream atau di blok finally untuk selainnya, sesuai permintaan dokumentasi AI SDK.

Pakai ini saat model yang perlu memutuskan. Untuk membalas pesan yang baru masuk, panggilan Cloud API langsung dari handler lebih singkat.

MCP client over HTTP with OAuth, as the AI SDK documents it
import { createMCPClient } from "@ai-sdk/mcp";

const mcp = await createMCPClient({
  transport: {
    type: "http",
    url: "https://easycoexistence.com/api/mcp",
    authProvider, // your OAuthClientProvider implementation
  },
});

try {
  const tools = await mcp.tools();
  // pass tools to generateText({ model, tools, prompt })
} finally {
  await mcp.close();
}

Apa yang berubah karena nomor memakai Coexistence?

Ada dua hal yang perlu diketahui kode Anda. Pertama, seseorang mungkin sudah ada dalam percakapan. Aplikasi WhatsApp Business tetap berfungsi pada nomor itu, dan setiap balasan yang diketik di ponsel tiba di route sebagai event echo. Handler yang menjeda model untuk sebuah kontak setelah echo mencegahnya menjawab di atas seseorang.

Kedua, pengiriman dibatasi tetap 20 pesan per detik untuk nomor tersebut. Agen percakapan tidak pernah mendekatinya, tetapi loop broadcast yang ditulis dengan Promise.all di atas daftar kontak akan mencapainya, jadi bagi dalam batch.

Selebihnya adalah Cloud API biasa. Dalam 24 jam sejak pesan terakhir pelanggan, teks bebas diizinkan. Setelah itu, hanya template yang disetujui yang bisa terkirim, dan teks bebas mengembalikan kesalahan 131047 tanpa pelanggan melihat apa pun.

Kesalahan umum

  • Mengembalikan challenge dengan helper respons JSON. Tanda kutip di sekelilingnya membuat pemeriksaan Meta gagal.
  • Menjalankan generateText sebelum menjawab Meta. Pada cold start, pengiriman ulang menghasilkan jawaban kedua.
  • Lupa menutup klien MCP. Setiap permintaan meninggalkan satu koneksi terbuka sampai platform menghentikannya.
Melakukan ini dengan EasyCoexistence

Hubungkan nomor di easycoexistence.com, atur tujuan webhook ke route handler Anda, lalu tambahkan klien MCP dengan satu kali login OAuth. Mulai US$ 9 per nomor per bulan, turun hingga US$ 1 seiring bertambahnya nomor, dengan 3 hari pertama gratis.

Pertanyaan yang sering diajukan

Apakah ini hanya berfungsi di Vercel?

Tidak. AI SDK adalah library TypeScript, dan route bisa berjalan di host mana pun yang melayani HTTPS dan menjawab GET serta POST.

Apakah saya perlu klien MCP sama sekali?

Tidak untuk membalas pesan. Panggilan fetch ke endpoint pesan Cloud API dengan token nomor sudah cukup. MCP berguna saat model yang memilih apa yang dilakukan.

Penyedia mana yang bisa dipakai untuk model?

Penyedia mana pun yang didukung AI SDK. Sisi WhatsApp tidak bergantung pada model, jadi berganti penyedia tidak mengubah route atau panggilan Cloud API.

Apakah EasyCoexistence melihat pesan?

Tidak. Meta mengirim langsung ke route Anda dan isi pesan tidak pernah disimpan di sisi kami.

Lanjut membaca

Siap memulai?

Konfigurasikan WhatsApp Coexistence dalam hitungan menit, bukan bulan. Aplikasi tetap berfungsi di ponsel.

Mulai uji coba gratis

Diverifikasi pada

Vercel AI SDK di WhatsApp dengan Cloud API