构建您的第一个代理
构建您的第一个代理
本指南将带您构建购物车恢复代理, 一个 AI 代理,监控废弃购物车并使用 Brevo 的 MCP 工具通过邮件、短信和 WhatsApp 编排个性化恢复序列。
前提条件
- 带有 API 密钥的 Brevo 账户(在此获取)
- 已配置 Brevo MCP 服务器(设置指南)
- Claude Desktop、Claude Code 或任何 MCP 兼容客户端
- 在 Brevo 中创建的购物车恢复邮件模板
代理如何工作
代理是一个 markdown 文件,定义了:
- 身份, 代理做什么及其约束
- 工具, 可以访问哪些 MCP 工具
- 指令, 如何推理和行动
- 护栏, 永远不应做什么
营销人员:"为超过 $50 的购物车设置恢复" ↓代理读取其规范(工具、约束) ↓代理推理:"我需要创建细分、设计序列、设置追踪" ↓代理调用:brevo/create-segment → brevo/send-email → brevo/send-sms → brevo/track-event ↓结果:3 步恢复序列激活,追踪事件流动第一步:定义代理
创建名为 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第二步:注册工具
tools: # 读取客户数据和购物车状态 - brevo/list-contacts # 查找有废弃购物车的客户 - brevo/get-contact # 获取个别客户详情
# 创建目标细分 - brevo/create-segment # 按购物车价值、时间、行为分段
# 发送恢复消息 - brevo/send-email # 交易恢复邮件 - brevo/send-sms # 高价值购物车的短信
# 追踪结果 - brevo/track-event # 记录恢复尝试和结果 - brevo/get-email-stats # 检查邮件是否被打开 - brevo/get-email-templates # 验证模板存在第三步:测试代理
使用 Claude Desktop
配置 Brevo MCP 服务器后,询问 Claude:
运行我的购物车恢复代理。检查过去 4 小时内超过 $50 的废弃购物车并执行恢复序列。
Claude 将:
- 读取代理规范
- 调用
brevo/list-contacts查找废弃购物车 - 使用决策框架按购物车价值分段
- 通过
brevo/send-email发送恢复邮件 - 通过
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",});
const 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."第四步:调度代理
基于计划任务
# 在代理规范 frontmatter 中triggers: - schedule: "0 */4 * * *" # 每 4 小时 timezone: "America/New_York"基于事件
triggers: - event: cart_abandoned conditions: - cart_value: "> 50" - time_since_activity: "> 30m" debounce: 5m第五步:监控和迭代
通过 Brevo 事件追踪代理性能:
-- 按购物车价值层级的恢复率SELECT 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_pctFROM cart_recovery_eventsWHERE created_at > NOW() - INTERVAL '30 days'GROUP BY tierORDER BY tier;后续步骤
- 代理规范格式, 代理 markdown 的完整参考
- 预构建代理, 可即用的营销代理
- Skills 参考, 所有可用的 MCP 工具
- Brevo MCP 服务器, 工具架构和权限