بناء أول وكيل لك
يرشدك هذا الدليل خلال بناء وكيل استعادة السلة، وهو وكيل ذكاء اصطناعي يراقب السلات المتروكة ويُنسِّق سلسلة استعادة مخصّصة عبر البريد الإلكتروني وSMS وواتساب باستخدام أدوات MCP من Brevo.
المتطلّبات المسبقة
- حساب Brevo مع مفتاح API (احصل على واحد من هنا)
- خادم Brevo MCP مُهيّأ (دليل الإعداد)
- Claude Desktop أو Claude Code أو أي عميل متوافق مع MCP
- قوالب بريد إلكتروني مُنشأة في Brevo لاستعادة السلة
كيف يعمل الوكلاء
الوكيل ملف markdown يُعرِّف:
- الهوية، ما الذي يفعله الوكيل وما قيوده
- الأدوات، أدوات MCP التي يمكنه الوصول إليها
- التعليمات، كيف ينبغي أن يفكّر ويتصرّف
- حواجز الأمان، ما الذي يجب ألّا يفعله أبداً
عند استدعائه، يستخدم الوكيل نموذج LLM للتفكير في الهدف، واختيار الأدوات المناسبة، وتنفيذ الإجراءات مقابل 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 flowingالخطوة 1: تعريف الوكيل
أنشئ ملفاً باسم 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 recoveryالخطوة 2: تسجيل الأدوات
يحتاج الوكيل إلى الوصول إلى أدوات Brevo MCP محدّدة. يُعرِّف حقل tools في الـ frontmatter الأدوات التي يمكن للوكيل استدعاؤها. عند تشغيل الوكيل، لا يمكنه استدعاء سوى هذه الأدوات، وكل ما عداها محجوب.
إليك ما تفعله كل أداة في سياق هذا الوكيل:
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 existالخطوة 3: إنشاء سلسلة التنفيذ
للوكلاء المعقّدين، يمكنك تعريف سلسلة تنفيذ متعدّدة الخطوات تتولّى فيها وكلاء فرعيون متخصّصون مراحل مختلفة:
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.الخطوة 4: اختبار الوكيل
مع Claude Code
# Point Claude Code at your agent specclaude --mcp brevo "Run the cart recovery agent for abandoned carts in the last 4 hours"مع Claude Desktop
بعد تهيئة خادم Brevo MCP، اطلب من Claude:
شغِّل وكيل استعادة السلة لديّ. تحقّق من السلات المتروكة التي تتجاوز 50$ خلال الساعات الأربع الماضية ونفِّذ سلسلة الاستعادة.
سيقوم Claude بما يلي:
- قراءة مواصفة الوكيل
- استدعاء
brevo/list-contactsللعثور على السلات المتروكة - التقسيم حسب قيمة السلة باستخدام إطار القرار
- إرسال رسائل الاستعادة عبر
brevo/send-email - وضع متابعات SMS في الطابور عبر
brevo/send-sms - تتبّع كل الأحداث عبر
brevo/track-event
التنفيذ البرمجي
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."الخطوة 5: جدولة الوكيل
شغِّل الوكيل وفق جدول متكرّر:
بالاعتماد على cron
# In your agent spec frontmattertriggers: - schedule: "0 */4 * * *" # Every 4 hours timezone: "America/New_York"مدفوعاً بالأحداث
triggers: - event: cart_abandoned conditions: - cart_value: "> 50" - time_since_activity: "> 30m" debounce: 5mعبر Webhook
triggers: - webhook: /agents/cart-recovery/trigger method: POST authentication: api_keyالخطوة 6: المراقبة والتحسين
تتبّع أداء الوكيل عبر أحداث 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;مثال: جلسة وكيل كاملة
إليك تفاعلاً حقيقياً بين مسوّق ووكيل استعادة السلة:
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)الخطوات التالية
- صيغة مواصفة الوكيل، مرجع كامل لملف markdown الخاص بالوكيل
- وكلاء جاهزون، وكلاء تسويق جاهزون للاستخدام
- مرجع المهارات، كل أدوات MCP المتاحة
- خادم Brevo MCP، مخطّطات الأدوات والأذونات