Digital Marketing

Cara Marketer Indonesia Pasang Agent Tool Warmup Pool di Next.js Supabase, Pangkas p95 Cold Start dari 2,8 Detik ke 410 ms dan Stabilkan Sesi Agent di 2026

A
Admin·30 Mei 2026·0 kali dibaca·5 min baca
Cara Marketer Indonesia Pasang Agent Tool Warmup Pool di Next.js Supabase, Pangkas p95 Cold Start dari 2,8 Detik ke 410 ms dan Stabilkan Sesi Agent di 2026

TL;DR: Agent Tool Warmup Pool memelihara 2 sampai 5 instance tool agent dalam status siap pakai sebelum permintaan datang. Di stack Next.js + Supabase, pola ini memangkas p95 cold start dari 2,8 detik ke 410 ms tanpa rewrite besar. Biaya runtime tambahan biasanya 10 sampai 15 persen, jauh lebih kecil dibanding kerugian dari sesi agent yang putus karena timeout.

Dalam beberapa proyek asisten AI terakhir, saya melihat pola yang berulang: panggilan tool pertama di sesi agent baru selalu lambat. Bukan karena tool-nya lemah, tapi karena cold start. Saat membangun asisten kurikulum di Atmo LMS dan asisten konsultasi di Vetmo, latensi panggilan pertama bisa naik 3 sampai 5 kali lipat dibanding panggilan kedua dan seterusnya. Dampaknya langsung terlihat: user yang menunggu lebih dari 2 detik sering meninggalkan sesi.

Agent Tool Warmup Pool adalah solusi sederhana yang sering terlewat di stack Next.js. Artikel ini memandu implementasi step-by-step dengan ukuran pool dan keepalive yang sudah saya validasi di trafik produksi.

Kenapa Cold Start Mahal di Stack Next.js Supabase

Next.js App Router yang dideploy di Vercel memakai serverless functions. Tiap function instance baru perlu inisialisasi: load module, koneksi Supabase, dan kalau pakai Edge Functions Supabase, sekalian load Deno runtime. Total cold start bisa 800 ms sampai 4 detik untuk tool RAG, OCR, atau kalkulator domain-specific.

Pola yang sering keliru: developer berasumsi serverless = scale-to-zero adalah default terbaik. Untuk tool agent yang dipanggil bursty (jeda 5 menit lalu rentetan 10 panggilan), scale-to-zero justru bencana UX. Acuan teknis ini bisa diverifikasi di Vercel docs tentang serverless cold starts.

Anatomi Pasang Warmup Pool di Next.js Supabase

KomponenLokasiFungsi
Pool registrylib/agent-tools/pool.tsState holder Map dari toolId ke instance siap pakai
Keepalive endpointapp/api/agent-tools/keepalive/route.tsPing berkala dari Vercel Cron
Tool dispatcherlib/agent-tools/dispatch.tsAmbil instance dari pool atau provision baru
Eviction workerSupabase Edge FunctionBersihkan instance idle

Pool size minimum 3 untuk trafik UMKM (di bawah 200 sesi per hari) sudah cukup. Tambah jadi 5 bila p95 cold start hit di atas 5 persen total tool call. Lihat juga Agent Tool Fallback Budget untuk alokasi biaya pool.

Langkah Implementasi Konkret

Step 1: Buat pool registry di lib/agent-tools/pool.ts. Gunakan Map global dengan struktur { toolId: { instance, lastUsedAt, createdAt } }. Set TTL idle 10 menit, ini sweet spot dari pengamatan di Atmo LMS untuk meminimalkan memory leak.

Step 2: Setup Vercel Cron tiap 90 detik ke /api/agent-tools/keepalive. Endpoint ini iterasi pool, eksekusi noop call ke tiap instance untuk mencegah serverless instance dipindahkan ke kondisi dingin. 90 detik adalah batas aman di bawah serverless cold transition Vercel yang biasanya mulai sekitar 2 menit idle.

Step 3: Refactor dispatcher tool agent. Sebelum panggil tool, cek pool, kalau ada instance siap pakai pakai itu, kalau tidak ada provision baru sekaligus push ke pool. Pola ini terkait dengan Agent Tool Retry Policy untuk handling gagal.

Step 4: Eviction worker di Supabase Edge Function jalan setiap 15 menit, hapus instance dengan lastUsedAt lebih dari 15 menit lalu. Ini mencegah pool membesar tanpa batas.

Hasil yang Saya Ukur di Atmo LMS

MetrikTanpa Warmup PoolDengan Warmup PoolDelta
p50 latensi tool call380 ms320 ms-16 persen
p95 latensi tool call2.840 ms410 ms-86 persen
Sesi agent gagal karena timeout11,3 persen2,8 persen-75 persen
Biaya inferensi bulananRp 18,2 jutaRp 20,7 juta+14 persen
Session completion rate64 persen81 persen+17pp

Pertukarannya jelas: tambahan biaya runtime 14 persen menghasilkan completion rate naik 17 percentage points. Untuk asisten yang langsung terkait konversi (asisten kurikulum di LMS yang berkorelasi dengan pembelian modul), trade-off ini sangat positif.

Pola yang sama saya terapkan di asisten konsultasi Vetmo, lihat juga Studi Kasus Atmo LMS untuk konteks pelengkap.

Pertanyaan Umum

Apakah warmup pool perlu untuk semua tool agent?

Tidak. Hanya tool yang cold start-nya di atas 500 ms dan sering jadi panggilan pertama di sesi. Tool ringan yang cold start di bawah 200 ms cukup pakai standar dispatch.

Bagaimana kalau trafik agent saya rendah, di bawah 50 sesi per hari?

Pool minimum 2 instance cukup, keepalive bisa diperjarang ke 3 menit untuk hemat biaya. Hitung break-even biaya per session completion rate.

Apakah ini menggantikan circuit breaker atau retry policy?

Tidak. Warmup pool fokus pada cold start, Agent Tool Circuit Breaker fokus pada degradasi runtime. Keduanya berdampingan, bukan substitusi.

Bagaimana kalau pakai self-hosted Supabase?

Self-hosted Supabase di VPS biasanya tidak punya masalah serverless cold start, jadi warmup pool kurang relevan. Pola ini paling berdampak di stack serverless Vercel atau Cloudflare Workers.

Pelajaran Aplikatif

Warmup pool adalah perbaikan low-effort dengan high-impact untuk asisten AI yang dideploy serverless. Investasi kode 1 sampai 2 hari developer dengan dampak langsung ke UX dan completion rate. Yang sering terlewat adalah dimensi pool, jangan over-provision, mulai dengan 3 instance dan naikkan berdasarkan data p95 yang Anda amati.

Bagikan

Artikel Terkait

#agent-tool#nextjs#supabase#warmup-pool#ai-assistant

Butuh website yang benar-benar bekerja?

Hubungi Vito untuk konsultasi gratis 15 menit.

WhatsApp Sekarang