Membangun Agen Pertama Anda
Panduan ini memandu Anda membangun Cart Recovery Agent, sebuah agen AI yang memantau keranjang yang ditinggalkan dan mengorkestrasi rangkaian pemulihan yang dipersonalisasi melalui email, SMS, dan WhatsApp menggunakan MCP tools milik Brevo.
Prasyarat
- Akun Brevo dengan kunci API (dapatkan di sini)
- Brevo MCP Server yang sudah dikonfigurasi (panduan penyiapan)
- Claude Desktop, Claude Code, atau klien apa pun yang kompatibel dengan MCP
- Template email untuk pemulihan keranjang yang sudah dibuat di Brevo
Cara kerja agen
Sebuah agen adalah berkas markdown yang mendefinisikan:
- Identitas, apa yang dilakukan agen dan batasannya
- Tools, MCP tools mana yang dapat diaksesnya
- Instruksi, bagaimana agen harus bernalar dan bertindak
- Guardrail, apa yang tidak boleh dilakukannya
Saat dipanggil, agen menggunakan LLM untuk bernalar tentang tujuan, memilih tool yang sesuai, dan menjalankan tindakan terhadap API Brevo.
Marketer: "Set up cart recovery for carts over $50" ↓Agent reads its specification (tools, constraints) ↓Agent reasons: "I need to create a segment, design a sequence, set up tracking" ↓Agent calls: brevo/create-segment → brevo/send-email → brevo/send-sms → brevo/track-event ↓Result: 3-step recovery sequence active, tracking events flowingLangkah 1: Definisikan agen
Buat berkas bernama cart-recovery-agent.md:
---name: cart-recovery-agentdescription: Recover abandoned carts with personalized multi-channel sequencesversion: 1.0.0temperature: 0.2max_tokens: 4096tools: - brevo/list-contacts - brevo/get-contact - brevo/create-segment - brevo/send-email - brevo/send-sms - brevo/track-event - brevo/get-email-templates - brevo/get-email-statstriggers: - event: cart_abandoned conditions: - cart_value: "> 50" - time_since_activity: "> 30m" - schedule: "0 */4 * * *"permissions: - contacts:read - email:send - sms:send - events:write---
# Cart Recovery Agent
You are an e-commerce cart recovery specialist working with Brevo'sengagement platform. Your goal is to recover abandoned carts throughpersonalized, well-timed multi-channel outreach.
## Strategy
When a cart is abandoned:
1. **Wait 1 hour**, then send a reminder email with cart contents2. **Wait 24 hours**, if no open → send SMS with urgency message3. **Wait 48 hours**, if still no recovery → send final email with incentive (discount code if cart value > $100)
## Decision Framework
- Cart value < $50: Skip (not worth recovery cost)- Cart value $50-$100: Email only (2 touches)- Cart value $100-$250: Email + SMS (3 touches)- Cart value > $250: Email + SMS + personal outreach flag
## Rules
- NEVER send more than 3 messages per abandoned cart- NEVER contact customers who opted out of marketing- ALWAYS check if cart was recovered before sending next step- ALWAYS personalize with customer first name and cart items- ALWAYS track recovery events for attribution- Respect quiet hours: no SMS between 9pm-9am customer local time
## Email Templates
Use these Brevo template IDs:- Reminder (step 1): template_id 101- Urgency (step 2): template_id 102- Incentive (step 3): template_id 103
## Metrics to Track
- `cart_recovery_email_sent`, recovery email dispatched- `cart_recovery_sms_sent`, recovery SMS dispatched- `cart_recovered`, customer completed purchase- `cart_recovery_failed`, sequence completed without recoveryLangkah 2: Daftarkan tools
Agen memerlukan akses ke MCP tools Brevo tertentu. Bidang tools pada frontmatter menentukan tool mana yang dapat dipanggil agen. Saat agen berjalan, ia hanya dapat memanggil tool tersebut, selebihnya diblokir.
Berikut fungsi setiap tool dalam konteks agen ini:
tools: # Read customer data and cart state - brevo/list-contacts # Find customers with abandoned carts - brevo/get-contact # Get individual customer details
# Create targeted segments - brevo/create-segment # Segment by cart value, time, behavior
# Send recovery messages - brevo/send-email # Transactional recovery emails - brevo/send-sms # SMS nudges for high-value carts
# Track outcomes - brevo/track-event # Log recovery attempts and results - brevo/get-email-stats # Check if emails were opened - brevo/get-email-templates # Verify templates existLangkah 3: Buat rantai eksekusi
Untuk agen yang kompleks, Anda dapat mendefinisikan rantai eksekusi bertahap tempat sub-agen khusus menangani fase yang berbeda:
steps: - agent: analyzer input: | Analyze the abandoned cart data for the past 4 hours. Goal: {task}
Use brevo/list-contacts to find contacts with CART_ABANDONED event in the last 4 hours. Segment by cart value tier.
- agent: sequencer input: | Based on this analysis, design recovery sequences: {previous}
For each tier, create the appropriate message sequence using the decision framework.
- agent: executor input: | Execute these recovery sequences via Brevo: {previous}
Send emails and SMS according to the timing rules. Track every action with brevo/track-event.
- agent: reporter input: | Generate a recovery report from these execution results: {previous}
Include: carts targeted, messages sent, early recoveries, projected revenue impact.Langkah 4: Uji agen
Dengan Claude Code
# Point Claude Code at your agent specclaude --mcp brevo "Run the cart recovery agent for abandoned carts in the last 4 hours"Dengan Claude Desktop
Setelah Brevo MCP server dikonfigurasi, mintalah kepada Claude:
Jalankan cart recovery agent saya. Periksa keranjang yang ditinggalkan di atas $50 dalam 4 jam terakhir dan jalankan rangkaian pemulihannya.
Claude akan:
- Membaca spesifikasi agen
- Memanggil
brevo/list-contactsuntuk menemukan keranjang yang ditinggalkan - Melakukan segmentasi berdasarkan nilai keranjang menggunakan kerangka keputusan
- Mengirim email pemulihan melalui
brevo/send-email - Mengantrekan tindak lanjut SMS melalui
brevo/send-sms - Melacak semua event melalui
brevo/track-event
Eksekusi terprogram
import { TajoAgent } from "@tajo/agent-sdk";import { BrevoMCPServer } from "@tajo/brevo-mcp-server";
const brevo = new BrevoMCPServer({ apiKey: process.env.BREVO_API_KEY,});
const agent = new TajoAgent({ specPath: "./cart-recovery-agent.md", mcpServers: [brevo], model: "claude-sonnet-4-6",});
// Run the agentconst result = await agent.run( "Recover abandoned carts over $50 from the last 4 hours");
console.log(result.summary);// → "Processed 23 abandoned carts. Sent 23 reminder emails,// 8 SMS messages. 3 carts already recovered during execution."Langkah 5: Jadwalkan agen
Jalankan agen pada jadwal berulang:
Berbasis cron
# In your agent spec frontmattertriggers: - schedule: "0 */4 * * *" # Every 4 hours timezone: "America/New_York"Berbasis event
triggers: - event: cart_abandoned conditions: - cart_value: "> 50" - time_since_activity: "> 30m" debounce: 5mWebhook
triggers: - webhook: /agents/cart-recovery/trigger method: POST authentication: api_keyLangkah 6: Pantau & iterasi
Lacak performa agen melalui event Brevo:
-- Recovery rate by cart value tierSELECT CASE WHEN cart_value < 100 THEN '$50-$100' WHEN cart_value < 250 THEN '$100-$250' ELSE '$250+' END as tier, COUNT(*) as carts_targeted, SUM(CASE WHEN recovered THEN 1 ELSE 0 END) as recovered, ROUND(SUM(CASE WHEN recovered THEN 1 ELSE 0 END)::numeric / COUNT(*) * 100, 1) as recovery_rate_pct, SUM(CASE WHEN recovered THEN cart_value ELSE 0 END) as revenue_recoveredFROM cart_recovery_eventsWHERE created_at > NOW() - INTERVAL '30 days'GROUP BY tierORDER BY tier;Contoh: sesi agen lengkap
Berikut interaksi nyata antara seorang marketer dan Cart Recovery Agent:
Marketer: "Check abandoned carts from today and start recovery"
Agent: Checking for abandoned carts in the last 24 hours...
[Calls brevo/list-contacts with filter CART_ABANDONED_AT > today]
Found 47 abandoned carts:- 12 carts under $50 (skipping per policy)- 23 carts $50-$100 (email-only tier)- 8 carts $100-$250 (email + SMS tier)- 4 carts over $250 (email + SMS + flag for personal outreach)
Starting recovery sequences...
[Calls brevo/send-email × 35 with template_id 101][Calls brevo/track-event × 35 with event "cart_recovery_email_sent"]
✅ Step 1 complete:- 35 reminder emails sent- 12 SMS queued for 24h follow-up (high-value carts)- 4 carts flagged for personal outreach
Next check scheduled in 4 hours.Recovery tracking events: cart_recovery_email_sent (35), cart_recovery_sms_queued (12), cart_recovery_escalated (4)Langkah berikutnya
- Format Spesifikasi Agen, referensi lengkap untuk markdown agen
- Agen Siap Pakai, agen pemasaran yang siap digunakan
- Referensi Skill, semua MCP tools yang tersedia
- Brevo MCP Server, skema tool dan izinnya