Προδιαγραφή Μορφής Skills

Η μορφή skills.md ορίζει πώς τα Skills δομούνται, ρυθμίζονται και εκτελούνται. Αυτή η προδιαγραφή εξασφαλίζει συνεπή συμπεριφορά σε όλα τα Tajo Skills.

Δομή Αρχείου

Ένα skill ορίζεται σε ένα αρχείο markdown με YAML frontmatter:

---
name: customer-sync
version: 2.1.0
description: Sync customer data to Brevo contacts
category: data-sync
status: stable
triggers:
- event: customer_created
- event: customer_updated
- event: customer_deleted
actions:
- brevo/create-contact
- brevo/update-contact
- brevo/delete-contact
brevoEndpoints:
- POST /v3/contacts
- PUT /v3/contacts/{identifier}
- DELETE /v3/contacts/{identifier}
permissions:
- contacts:write
- contacts:read
---
# Customer Sync
Automatically synchronize customer data from your platform to Brevo contacts.
## Overview
This skill listens for customer lifecycle events and mirrors changes to Brevo...

Πεδία Frontmatter

Υποχρεωτικά Πεδία

ΠεδίοΤύποςΠεριγραφή
namestringΜοναδικό αναγνωριστικό (kebab-case)
versionstringΣημασιολογική έκδοση (π.χ. “2.1.0”)
descriptionstringΣύντομη περιγραφή (μέγ. 160 χαρακτήρες)
categoryenumΜία από: data-sync, email-marketing, sms-whatsapp, loyalty, analytics, integrations
triggersarrayΣυμβάντα που ενεργοποιούν αυτό το skill
actionsarrayΛειτουργίες που μπορεί να εκτελέσει αυτό το skill

Προαιρετικά Πεδία

ΠεδίοΤύποςΠροεπιλογήΠεριγραφή
statusenumstableΜία από: stable, beta, experimental
brevoEndpointsarray[]Χρησιμοποιούμενα API endpoints Brevo
permissionsarray[]Απαιτούμενα δικαιώματα Brevo API
relatedSkillsarray[]IDs σχετικών skills
featuredbooleanfalseΕπισήμανση στον κατάλογο skills

Ενεργοποιήσεις

Οι ενεργοποιήσεις ορίζουν ποια συμβάντα ενεργοποιούν το skill.

Ενεργοποιήσεις Συμβάντων

triggers:
- event: cart_abandoned
conditions:
- cart_value: "> 50" # Ελάχιστη αξία καλαθιού
- items_count: ">= 1" # Τουλάχιστον ένα είδος
- time_since_activity: "> 30m" # 30 λεπτά αδράνειας
debounce: 5m # Αναμονή 5 λεπτών πριν την επαναενεργοποίηση

Προγραμματισμένες Ενεργοποιήσεις

triggers:
- schedule: "0 9 * * *" # Έκφραση Cron (καθημερινά στις 9πμ)
timezone: "America/New_York"
- schedule: every_hour
- schedule: every_day

Ενεργοποιήσεις Webhook

triggers:
- webhook: /skills/customer-sync/trigger
method: POST
authentication: api_key

Τελεστές Συνθηκών

ΤελεστήςΠεριγραφήΠαράδειγμα
=Ισούταιstatus: "active"
!=Δεν ισούταιstatus: "!= deleted"
>Μεγαλύτερο απόcart_value: "> 50"
>=Μεγαλύτερο ή ίσοitems: ">= 1"
<Μικρότερο απόage: "< 30"
<=Μικρότερο ή ίσοquantity: "<= 10"
containsΤο string περιέχειemail: "contains @gmail.com"
starts_withΠρόθεμα stringname: "starts_with Dr."
inΤιμή στη λίσταcountry: "in US,CA,UK"

Ενέργειες

Οι ενέργειες ορίζουν ποιες λειτουργίες εκτελεί το skill.

Ορισμός Ενέργειας

actions:
- id: send_reminder_email
type: brevo/send-email
parameters:
template_id: 12345
to: "{{ contact.email }}"
params:
first_name: "{{ contact.firstName }}"
cart_items: "{{ cart.items }}"
retry:
attempts: 3
backoff: exponential
on_error: continue # or 'stop'

Τύποι Ενεργειών

ΤύποςΠεριγραφή
brevo/send-emailΑποστολή transactional email
brevo/send-smsΑποστολή SMS μηνύματος
brevo/send-whatsappΑποστολή μηνύματος WhatsApp
brevo/create-contactΔημιουργία νέας επαφής
brevo/update-contactΕνημέρωση χαρακτηριστικών επαφής
brevo/delete-contactΔιαγραφή επαφής
brevo/add-to-listΠροσθήκη επαφής σε λίστα
brevo/remove-from-listΑφαίρεση επαφής από λίστα
brevo/track-eventΠαρακολούθηση προσαρμοσμένου συμβάντος
http/requestΕκτέλεση HTTP αιτήματος
transform/mapΜετασχηματισμός δεδομένων
control/delayΑναμονή πριν τη συνέχεια
control/conditionΔιακλάδωση βάσει συνθήκης

Μεταβλητές Προτύπου

Χρησιμοποιήστε τη σύνταξη {{ }} για αναφορά σε δεδομένα:

parameters:
to: "{{ contact.email }}"
subject: "Your order #{{ order.number }} has shipped"
params:
name: "{{ contact.firstName | default: 'Customer' }}"
items: "{{ cart.items | map: 'name' | join: ', ' }}"
total: "{{ cart.total | currency: 'USD' }}"

Διαθέσιμα Φίλτρα

ΦίλτροΠεριγραφήΠαράδειγμα
defaultΠροεπιλεγμένη τιμή{{ name | default: 'Guest' }}
uppercaseΚεφαλαία γράμματα{{ name | uppercase }}
lowercaseΠεζά γράμματα{{ email | lowercase }}
capitalizeΚεφαλαίο πρώτο γράμμα{{ name | capitalize }}
truncateΠερικοπή string{{ desc | truncate: 100 }}
dateΜορφοποίηση ημερομηνίας{{ date | date: 'YYYY-MM-DD' }}
currencyΜορφοποίηση νομίσματος{{ price | currency: 'EUR' }}
mapΙδιότητα πίνακα{{ items | map: 'name' }}
joinΈνωση πίνακα{{ tags | join: ', ' }}
firstΠρώτο στοιχείο πίνακα{{ items | first }}
lastΤελευταίο στοιχείο πίνακα{{ items | last }}
sizeΜήκος πίνακα/string{{ items | size }}

Δικαιώματα

Ορίστε τα απαιτούμενα δικαιώματα Brevo API:

permissions:
- contacts:read # Ανάγνωση δεδομένων επαφών
- contacts:write # Δημιουργία/ενημέρωση επαφών
- email:send # Αποστολή transactional emails
- sms:send # Αποστολή SMS μηνυμάτων
- lists:write # Διαχείριση λιστών επαφών
- events:write # Παρακολούθηση συμβάντων

Πλήρες Παράδειγμα

---
name: abandoned-cart-recovery
version: 3.0.0
description: Recover abandoned shopping carts with a multi-step email sequence
category: email-marketing
status: stable
triggers:
- event: cart_abandoned
conditions:
- cart_value: "> 25"
- customer_email: "exists"
- items_count: ">= 1"
debounce: 30m
actions:
- id: wait_1h
type: control/delay
parameters:
duration: 1h
- id: check_purchase
type: control/condition
parameters:
condition: "{{ cart.converted }} = false"
then: send_first_email
else: stop
- id: send_first_email
type: brevo/send-email
parameters:
template_id: {{ env.ABANDONED_CART_TEMPLATE_1 }}
to: "{{ contact.email }}"
params:
first_name: "{{ contact.firstName }}"
cart_url: "{{ cart.recovery_url }}"
items: "{{ cart.items }}"
total: "{{ cart.total | currency }}"
- id: wait_24h
type: control/delay
parameters:
duration: 24h
- id: check_purchase_2
type: control/condition
parameters:
condition: "{{ cart.converted }} = false"
then: send_second_email
else: stop
- id: send_second_email
type: brevo/send-email
parameters:
template_id: {{ env.ABANDONED_CART_TEMPLATE_2 }}
to: "{{ contact.email }}"
params:
first_name: "{{ contact.firstName }}"
cart_url: "{{ cart.recovery_url }}"
discount_code: "{{ generate_discount(10, 'percent') }}"
brevoEndpoints:
- POST /v3/smtp/email
- GET /v3/contacts/{identifier}
permissions:
- contacts:read
- email:send
relatedSkills:
- customer-sync
- order-events
- browse-abandonment
---
# Abandoned Cart Recovery
Recover lost sales with a proven multi-step email sequence...

Έκθεση ως Εργαλεία MCP

Τα Skills μπορούν να εκτεθούν ως εργαλεία MCP, καθιστώντας τα κλήσιμα από AI agents. Προσθέστε το πεδίο mcp στο frontmatter σας:

---
name: abandoned-cart-recovery
version: 3.0.0
description: Recover abandoned shopping carts with a multi-step email sequence
category: email-marketing
# MCP Configuration
mcp:
tool_name: tajo/recover-abandoned-cart
description: Execute abandoned cart recovery sequence for a specific cart
inputSchema:
type: object
properties:
cart_id:
type: string
description: The abandoned cart identifier
customer_email:
type: string
description: Customer email address
min_cart_value:
type: number
description: Minimum cart value to trigger recovery
default: 25
required: [cart_id, customer_email]
brevo_servers:
- brevo_contacts
- brevo_email_campaign_management
- brevo_templates
---

Πώς Λειτουργεί η Έκθεση MCP

Όταν ένα skill έχει πεδίο mcp, γίνεται εργαλείο που μπορούν να ανακαλύψουν και να επικαλεστούν οι AI agents:

Agent: "Recover abandoned cart #4521 for [email protected]"
MCP Tool Discovery: finds tajo/recover-abandoned-cart
Tool Execution: runs the skill's action chain
Brevo MCP Servers: contacts + email modules called
Result: recovery sequence initiated

Πεδία MCP

ΠεδίοΤύποςΠεριγραφή
mcp.tool_namestringΌνομα εργαλείου MCP (μορφή: tajo/skill-name)
mcp.descriptionstringΠεριγραφή που εμφανίζεται σε AI agents κατά την ανακάλυψη εργαλείων
mcp.inputSchemaobjectJSON Schema που ορίζει τις παραμέτρους εισόδου του εργαλείου
mcp.brevo_serversarrayΠοιες μονάδες Brevo MCP server χρειάζεται αυτό το skill

Skills vs Άμεσα Εργαλεία MCP

ΠτυχήSkill ως Εργαλείο MCPΆμεσο Brevo MCP
ΑφαίρεσηΥψηλή, ο agent λέει «ανάκτησε αυτό το καλάθι»Χαμηλή, ο agent πρέπει να καλέσει μεμονωμένα endpoints Brevo
ΠολυπλοκότηταΕνσωματώνει λογική πολλαπλών βημάτωνΟ agent πρέπει να ενορχηστρώσει κάθε βήμα
Προστατευτικά μέτραΕνσωματωμένα στο skill (συνθήκες, debounce)Ο agent πρέπει να υλοποιήσει τα δικά του
Ιδανικό γιαΕπαναλαμβανόμενες ροές εργασίαςΕφάπαξ λειτουργίες

Tip

Χρησιμοποιήστε Skills ως εργαλεία MCP για σύνθετες, πολυβήματες ροές εργασίας που δεν πρέπει να επανεφευρίσκουν οι agents κάθε φορά. Χρησιμοποιήστε άμεσα εργαλεία Brevo MCP για απλές, εφάπαξ λειτουργίες όπως αναζήτηση επαφής ή αποστολή ενός email.

Σύνθεση Skills και Agents

Ένας agent μπορεί να χρησιμοποιεί τόσο Skills (ως εργαλεία MCP) όσο και άμεσα modules Brevo MCP:

# Agent spec
---
name: retention-agent
tools:
# Tajo Skills as MCP tools
- tajo/recover-abandoned-cart
- tajo/customer-sync
- tajo/win-back-sequence
# Direct Brevo MCP modules
- brevo_contacts
- brevo_campaign_analytics
- brevo_segments
---

Αυτό δίνει στους agents υψηλού επιπέδου αυτοματισμό (Skills) για συνηθισμένα μοτίβα, διατηρώντας παράλληλα χαμηλού επιπέδου πρόσβαση (Brevo MCP) για προσαρμοσμένη λογική.

Δείτε Μορφή Προδιαγραφής Agent και Δημιουργία Agents για πλήρεις λεπτομέρειες.

Βέλτιστες Πρακτικές

Tip

Εκδοτικοποιήστε τα skills σας χρησιμοποιώντας σημασιολογική έκδοση. Αλλαγές που σπάνε τη συμβατότητα απαιτούν αύξηση της κύριας έκδοσης.

  1. Διατηρήστε τα skills εστιασμένα – ένα skill πρέπει να κάνει ένα πράγμα καλά
  2. Χρησιμοποιήστε περιγραφικά ονόματαabandoned-cart-recovery όχι acr
  3. Τεκμηριώστε τις συνθήκες – εξηγήστε γιατί υπάρχει κάθε συνθήκη
  4. Διαχειριστείτε τα σφάλματα ευγενικά – χρησιμοποιήστε on_error: continue για μη κρίσιμες ενέργειες
  5. Δοκιμάστε σε μικρό κοινό – χρησιμοποιήστε status: experimental κατά την ανάπτυξη
  6. Προσθέστε έκθεση MCP για skills που οι agents πρέπει να μπορούν να επικαλεστούν άμεσα

Επόμενα Βήματα

Subscribe to updates

developer-docs

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

auto-detect
AI Βοηθός

Γεια! Ρωτήστε με οτιδήποτε για την τεκμηρίωση.