Izgradnja prvog agenta

Izgradnja prvog agenta

Ovaj vodič vas vodi kroz izgradnju Agenta za oporavak korpe, AI agenta koji prati napuštene korpe i orkestrira personalizovanu sekvencu oporavka kroz email, SMS i WhatsApp koristeći Brevo MCP alate.

Preduslovi

  • Brevo nalog sa API ključem (nabavite ga ovde)
  • Konfigurisan Brevo MCP Server (vodič za podešavanje)
  • Claude Desktop, Claude Code ili bilo koji MCP-kompatibilni klijent
  • Email šabloni kreirani u Brevo za oporavak korpe

Kako agenti rade

Agent je markdown fajl koji definiše:

  1. Identitet, šta agent radi i njegova ograničenja
  2. Alate, koje MCP alate može da koristi
  3. Uputstva, kako treba da razmišlja i dela
  4. Ograničenja, šta nikada ne sme da radi

Kada je pozvan, agent koristi LLM za razmišljanje o cilju, biranje odgovarajućih alata i izvršavanje akcija prema Brevo API.

Marketar: "Postavi oporavak korpe za korpe iznad $50"
Agent čita svoju specifikaciju (alati, ograničenja)
Agent razmišlja: "Moram kreirati segment, dizajnirati sekvencu, postaviti praćenje"
Agent poziva: brevo/create-segment → brevo/send-email → brevo/send-sms → brevo/track-event
Rezultat: 3-koračna sekvenca oporavka aktivna, praćenje događaja teče

Korak 1: Definišite agenta

Kreirajte fajl pod imenom cart-recovery-agent.md:

---
name: cart-recovery-agent
description: Recover abandoned carts with personalized multi-channel sequences
version: 1.0.0
temperature: 0.2
max_tokens: 4096
tools:
- 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-stats
triggers:
- 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's
engagement platform. Your goal is to recover abandoned carts through
personalized, well-timed multi-channel outreach.
## Strategy
When a cart is abandoned:
1. **Wait 1 hour**, then send a reminder email with cart contents
2. **Wait 24 hours**, if no open → send SMS with urgency message
3. **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

Korak 2: Registrujte alate

Agent treba pristup određenim Brevo MCP alatima. Polje tools u frontmatter definiše koje alate agent može da pozove. Kada agent radi, može pozivati samo ove alate, sve ostalo je blokirano.

Evo šta svaki alat radi u kontekstu ovog agenta:

tools:
# Čitanje podataka kupca i stanja korpe
- brevo/list-contacts # Pronađi kupce sa napuštenim korpama
- brevo/get-contact # Dohvati detalje pojedinačnog kupca
# Kreiranje ciljanih segmenata
- brevo/create-segment # Segmentovanje prema vrednosti korpe, vremenu, ponašanju
# Slanje poruka za oporavak
- brevo/send-email # Transakcioni emaili za oporavak
- brevo/send-sms # SMS obaveštenja za korpe visoke vrednosti
# Praćenje rezultata
- brevo/track-event # Beleženje pokušaja oporavka i rezultata
- brevo/get-email-stats # Provera da li su emaili otvoreni
- brevo/get-email-templates # Verifikacija postojanja šablona

Korak 3: Kreirajte lanac izvršavanja

Za složene agente možete definisati višestepeni lanac izvršavanja gde specijalizovani pod-agenti obrađuju različite faze:

chain.yaml
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.

Korak 4: Testirajte agenta

Sa Claude Code

Terminal window
# Uputite Claude Code na vašu specifikaciju agenta
claude --mcp brevo "Run the cart recovery agent for abandoned carts in the last 4 hours"

Sa Claude Desktop

Kada je Brevo MCP server konfigurisan, pitajte Claude:

Pokreni mog agenta za oporavak korpe. Proveri napuštene korpe iznad $50 u poslednjih 4 sata i izvrši sekvencu oporavka.

Claude:

  1. Čita specifikaciju agenta
  2. Poziva brevo/list-contacts za pronalaženje napuštenih korpi
  3. Segmentuje po vrednosti korpe koristeći okvir odlučivanja
  4. Šalje emailove za oporavak kroz brevo/send-email
  5. Stavlja u red SMS praćenje kroz brevo/send-sms
  6. Prati sve događaje kroz brevo/track-event

Programsko izvršavanje

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",
});
// Pokrenite agenta
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."

Korak 5: Zakažite agenta

Pokrenite agenta po ponavljajućem rasporedu:

Na osnovu cron-a

# U frontmatter specifikacije agenta
triggers:
- schedule: "0 */4 * * *" # Svaka 4 sata
timezone: "America/New_York"

Na osnovu događaja

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

Korak 6: Pratite i unapređujte

Pratite performanse agenta kroz Brevo događaje:

-- Stopa oporavka po nivou vrednosti korpe
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_pct,
SUM(CASE WHEN recovered THEN cart_value ELSE 0 END) as revenue_recovered
FROM cart_recovery_events
WHERE created_at > NOW() - INTERVAL '30 days'
GROUP BY tier
ORDER BY tier;

Primer: Potpuna sesija agenta

Evo stvarne interakcije između marketara i Agenta za oporavak korpe:

Marketar: "Proveri napuštene korpe od danas i pokreni oporavak"
Agent: Proveravam napuštene korpe za poslednjih 24 sata...
[Poziva brevo/list-contacts sa filterom CART_ABANDONED_AT > today]
Pronađeno 47 napuštenih korpi:
- 12 korpi ispod $50 (preskoči prema politici)
- 23 korpe $50-$100 (nivo samo email)
- 8 korpi $100-$250 (nivo email + SMS)
- 4 korpe iznad $250 (email + SMS + označi za lični kontakt)
Pokrećem sekvence oporavka...
[Poziva brevo/send-email × 35 sa template_id 101]
[Poziva brevo/track-event × 35 sa događajem "cart_recovery_email_sent"]
Korak 1 završen:
- 35 podsetnik emailova poslato
- 12 SMS-ova u redu za praćenje posle 24 sata (korpe visoke vrednosti)
- 4 korpe označene za lični kontakt
Sledeća provera zakazana za 4 sata.
Praćenje događaja oporavka: cart_recovery_email_sent (35),
cart_recovery_sms_queued (12), cart_recovery_escalated (4)

Sledeći koraci

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

AI асистент

Здраво! Питајте ме о документацији.

Započnite besplatno sa Brevo