Formato Specifiche Agenti

Formato Specifiche Agenti

Gli agenti Tajo sono definiti in file markdown. Ogni file contiene frontmatter YAML (identità, strumenti, vincoli) e un corpo markdown (istruzioni, strategia, regole). Questo formato si ispira ai pattern di agenti in produzione usati nei sistemi di orchestrazione multi-agente.

Struttura del File

---
name: agent-name
description: Cosa fa questo agente (max 160 caratteri)
version: 1.0.0
temperature: 0.2
max_tokens: 4096
tools:
- brevo_contacts
- brevo_email_campaign_management
- brevo_sms_campaigns
triggers:
- event: cart_abandoned
- schedule: "0 */4 * * *"
permissions:
- contacts:read
- email:send
- sms:send
---
# Nome Agente
Istruzioni per l'agente in linguaggio naturale...

Campi Frontmatter

Campi Obbligatori

CampoTipoDescrizione
namestringaIdentificatore univoco in kebab-case (es. cart-recovery-agent)
descriptionstringaCosa fa questo agente (max 160 caratteri)
versionstringaVersione semantica (es. 1.0.0)
toolsarrayModuli server MCP Brevo a cui questo agente può accedere

Campi Comportamentali

CampoTipoDefaultDescrizione
temperaturefloat0.3Temperatura LLM. Più bassa = più deterministica. Usa 0.1-0.2 per operazioni sui dati, 0.3-0.5 per la progettazione di campagne
max_tokensintero4096Lunghezza massima risposta per turno
modelstringaclaude-sonnet-4-6Modello LLM da usare

Campi Trigger

CampoTipoDefaultDescrizione
triggersarray[]Eventi, pianificazioni o webhook che attivano questo agente
triggers[].eventstringa-Nome evento (es. cart_abandoned, customer_created)
triggers[].schedulestringa-Espressione cron (es. 0 9 * * * per le 9 del mattino quotidiane)
triggers[].webhookstringa-Percorso webhook (es. /agents/cart-recovery/trigger)
triggers[].conditionsarray[]Condizioni filtro per il trigger
triggers[].debouncestringa-Finestra di debounce (es. 5m, 1h)

Campi Permessi

CampoTipoDefaultDescrizione
permissionsarray[]Scope di permesso richiesti per la traccia di audit
related_agentsarray[]ID agenti a cui questo agente può delegare
escalationstringa-Dove instradare quando l’agente è incerto (human, supervisor-agent)

Strumenti: Mappatura ai Server MCP Brevo

Il campo tools fa riferimento ai nomi dei moduli server MCP Brevo. Ogni modulo si mappa a un endpoint specifico su mcp.brevo.com:

tools:
# Contatti e Segmentazione
- brevo_contacts # /v1/brevo_contacts/mcp
- brevo_lists # /v1/brevo_lists/mcp
- brevo_segments # /v1/brevo_segments/mcp
- brevo_attributes # /v1/brevo_attributes/mcp
# Campagne e Messaggistica
- brevo_email_campaign_management # /v1/brevo_email_campaign_management/mcp
- brevo_templates # /v1/brevo_templates/mcp
- brevo_sms_campaigns # /v1/brevo_sms_campaigns/mcp
- brevo_whatsapp_campaigns # /v1/brevo_whatsapp_campaigns/mcp
# Analytics
- brevo_campaign_analytics # /v1/brevo_campaign_analytics/mcp
# Sales CRM
- brevo_deals # /v1/brevo_deals/mcp
- brevo_companies # /v1/brevo_companies/mcp
- brevo_tasks # /v1/brevo_tasks/mcp
- brevo_pipelines # /v1/brevo_pipelines/mcp
- brevo_notes # /v1/brevo_notes/mcp

Tip

Usa il set minimo di strumenti di cui il tuo agente ha bisogno. Meno strumenti = migliore ragionamento IA e risposte più veloci. Vedi Server MCP Brevo per tutti i moduli disponibili.

Trigger

Trigger per Evento

Attiva l’agente quando accade qualcosa nel tuo sistema:

triggers:
- event: cart_abandoned
conditions:
- cart_value: "> 50"
- items_count: ">= 1"
- time_since_activity: "> 30m"
debounce: 5m

Trigger per Pianificazione

Esegui l’agente su una pianificazione ricorrente:

triggers:
- schedule: "0 9 * * MON" # Ogni lunedì alle 9
timezone: "Europe/Rome"
- schedule: "0 */4 * * *" # Ogni 4 ore
- schedule: "0 0 1 * *" # Primo giorno di ogni mese

Trigger Webhook

Invoca l’agente tramite HTTP:

triggers:
- webhook: /agents/win-back/trigger
method: POST
authentication: api_key

Corpo Markdown: Istruzioni

Il corpo della specifica agente è in linguaggio naturale. Scrivilo come se stessi istruendo un marketer esperto:

Struttura

# Nome Agente
Paragrafo di contesto, cosa fa questo agente e perché.
## Strategia
Approccio passo dopo passo che l'agente deve seguire.
## Framework Decisionale
Regole per fare scelte (es. quale canale usare in base al valore del carrello).
## Regole
Vincoli rigidi, cose che l'agente deve SEMPRE o MAI fare.
## Template
Riferimenti agli ID template Brevo, testo SMS, template WhatsApp.
## Metriche
Eventi da tracciare per misurare il successo.

Scrivere Istruzioni Efficaci

Sii specifico sulla strategia, non solo sugli obiettivi:

## Male
Re-engaggia i clienti abbandonati.
## Bene
Quando un cliente non ha acquistato per 90+ giorni:
1. Controlla i suoi ultimi 3 ordini per le preferenze di categoria prodotto
2. Crea uno sconto personalizzato basato sull'AOV (10% se AOV > $100, 15% se < $100)
3. Invia email con oggetto che fa riferimento alla loro categoria preferita
4. Aspetta 72 ore, se non aperta, invia SMS con codice sconto
5. Aspetta 7 giorni, se nessun acquisto, contrassegna come deep-churn e ferma la sequenza

Definisci i guardrail esplicitamente:

## Regole
- MAI inviare più di 3 messaggi per sequenza
- MAI contattare clienti che si sono disiscritti
- SEMPRE verificare se il cliente si è convertito prima di inviare il passo successivo
- SEMPRE rispettare le ore di silenzio (nessun SMS 21-9 ora locale)
- In caso di dubbio su una decisione, escalate alla revisione umana

Catene Multi-Agente

Per workflow complessi, componi più agenti in una catena. Ogni agente gestisce una fase, passando il contesto al successivo:

chain.yaml
name: quarterly-retention-campaign
steps:
- agent: customer-intelligence
input: |
Analizza i segmenti clienti per la campagna di retention Q2.
Obiettivo: {task}
Identifica:
1. Clienti a rischio (frequenza di acquisto in calo)
2. Clienti VIP (top 10% per LTV)
3. Candidati win-back (90+ giorni dall'ultimo ordine)
- agent: campaign-designer
input: |
Progetta campagne di retention per questi segmenti:
{previous}
Crea approcci differenziati per segmento:
- A rischio: nudge gentile con raccomandazioni prodotto
- VIP: accesso anticipato esclusivo o premio fedeltà
- Win-back: sconto aggressivo con urgenza
- agent: campaign-executor
input: |
Esegui queste campagne tramite Brevo:
{previous}
Usa canali appropriati per le preferenze del segmento.
Imposta A/B test per le righe oggetto.
Pianifica gli invii per i tempi ottimali.
- agent: campaign-reporter
input: |
Genera il report di lancio della campagna di retention:
{previous}
Includi: segmenti target, campagne create,
portata prevista, configurazioni A/B test.

Variabili di Catena

VariabileDescrizione
{task}L’obiettivo/richiesta originale
{previous}Output dal passo precedente
{step_N}Output dal passo N (indice 0)
{artifacts_dir}Directory per gli output dei file

Specifiche Agenti Preconfigurati

Campaign Orchestrator

---
name: campaign-orchestrator
description: Progetta ed esegue campagne multi-canale da prompt in linguaggio naturale
version: 2.0.0
temperature: 0.3
tools:
- brevo_contacts
- brevo_segments
- brevo_email_campaign_management
- brevo_templates
- brevo_sms_campaigns
- brevo_whatsapp_campaigns
- brevo_campaign_analytics
triggers:
- webhook: /agents/campaign/trigger
method: POST
---
# Campaign Orchestrator
Sei uno specialista in campagne di marketing multi-canale.
Dato un brief di campagna, progetti, costruisci e lanci
campagne su email, SMS e WhatsApp tramite Brevo.
## Processo
1. Analizza il brief della campagna (audience, messaggio, obiettivo, timeline)
2. Crea o identifica il segmento target in Brevo
3. Seleziona i canali migliori in base ai dati sulle preferenze del pubblico
4. Costruisci il contenuto della campagna usando template esistenti o creandone di nuovi
5. Configura la pianificazione dell'invio e gli A/B test
6. Lancia e riporta le metriche iniziali di consegna
## Selezione del Canale
- Email: default per tutte le campagne
- SMS: aggiungi per offerte urgenti o recupero carrelli
- WhatsApp: aggiungi per campagne conversazionali o segmenti di alto valore
## Regole
- SEMPRE visualizza l'anteprima delle campagne prima dell'invio
- MAI inviare a contatti disiscritti
- SEMPRE imposta il tracciamento per l'attribuzione della campagna
- Massimo 2 varianti A/B test per campagna

Customer Intelligence Agent

---
name: customer-intelligence
description: Segmentazione autonoma, scoring RFM e previsione abbandono
version: 1.5.0
temperature: 0.2
tools:
- brevo_contacts
- brevo_segments
- brevo_attributes
- brevo_lists
- brevo_campaign_analytics
triggers:
- schedule: "0 6 * * MON"
timezone: "UTC"
---
# Customer Intelligence Agent
Analizzi i dati clienti in Brevo per generare segmenti
e insight azionabili per i team di marketing.
## Analisi Settimanale
1. Recupera i dati di attività dei contatti dalle analytics delle campagne
2. Calcola i punteggi RFM (Recency, Frequency, Monetary)
3. Identifica i cambiamenti di segmento (clienti che si spostano tra i livelli)
4. Segnala i rischi di abbandono (coinvolgimento in calo per 4+ settimane)
5. Genera raccomandazioni di segmento per le campagne imminenti
## Definizioni dei Segmenti
- Champions: R=5, F=5, M=5, recenti, frequenti, alto valore
- Fedeli: R>=3, F>=4, M>=3, acquirenti costanti
- A Rischio: R<=2, F>=3, M>=3, erano fedeli, ora in calo
- In Ibernazione: R=1, F>=2, M>=2, spariti da tempo, erano attivi
- Nuovi: primo acquisto negli ultimi 30 giorni
## Output
Produci un report markdown con:
- Dimensioni dei segmenti e variazioni settimana su settimana
- Top 10 clienti a rischio per LTV
- Azioni consigliate per segmento
- Temi di campagna suggeriti per la settimana

Distribuzione

Esecuzione di un Agente in Modo Programmatico

import { TajoAgent } from "@tajo/agent-sdk";
const agent = new TajoAgent({
specPath: "./agents/cart-recovery-agent.md",
brevoToken: process.env.BREVO_MCP_TOKEN,
model: "claude-sonnet-4-6",
// Connetti solo i server MCP elencati nel campo tools dell'agente
autoConnectServers: true,
});
const result = await agent.run(
"Recupera i carrelli abbandonati superiori a $50 delle ultime 4 ore"
);
console.log(result.summary);
console.log(result.toolCalls); // Traccia di audit completa
console.log(result.metrics); // Eventi tracciati

Esecuzione tramite Claude Code

Terminal window
# Punta alla specifica del tuo agente e lascia che Claude la esegua
claude "Esegui l'agente definito in ./agents/cart-recovery-agent.md per i carrelli abbandonati di oggi"

Pianificazione con Cron

Terminal window
# Esegui l'agente di customer intelligence ogni lunedì alle 6
0 6 * * MON claude --print "Esegui ./agents/customer-intelligence.md analisi settimanale" >> /var/log/tajo-agents.log 2>&1

Passi Successivi

Subscribe to updates

developer-docs

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

Assistente AI

Ciao! Chiedimi qualsiasi cosa sulla documentazione.

Inizia gratis con Brevo