Špecifikácia formátu Skills

Formát skills.md definuje, ako sú Skills štruktúrované, konfigurované a vykonávané. Táto špecifikácia zaručuje konzistentné správanie naprieč všetkými Tajo Skills.

Štruktúra súboru

Skill je definovaný v jednom markdown súbore s 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...

Polia frontmatter

Povinné polia

PoleTypPopis
namereťazecJedinečný identifikátor (kebab-case)
versionreťazecSémantická verzia (napr. „2.1.0”)
descriptionreťazecKrátky popis (max. 160 znakov)
categoryenumJedna z: data-sync, email-marketing, sms-whatsapp, loyalty, analytics, integrations
triggerspoleUdalosti, ktoré aktivujú tento skill
actionspoleOperácie, ktoré tento skill môže vykonávať

Voliteľné polia

PoleTypPredvolená hodnotaPopis
statusenumstableJedna z: stable, beta, experimental
brevoEndpointspole[]Použité Brevo API endpointy
permissionspole[]Požadované oprávnenia Brevo API
relatedSkillspole[]ID súvisiacich skills
featuredbooleanfalseZvýrazniť v katalógu skills

Spúšťače

Spúšťače definujú, ktoré udalosti aktivujú skill.

Spúšťače udalostí

triggers:
- event: cart_abandoned
conditions:
- cart_value: "> 50" # Minimálna hodnota košíka
- items_count: ">= 1" # Aspoň jedna položka
- time_since_activity: "> 30m" # 30 minút nečinnosti
debounce: 5m # Čakanie 5 minút pred opätovným spustením

Plánované spúšťače

triggers:
- schedule: "0 9 * * *" # Cron výraz (každý deň o 9:00)
timezone: "America/New_York"
- schedule: every_hour
- schedule: every_day

Webhookové spúšťače

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

Operátory podmienok

OperátorPopisPríklad
=Rovná sastatus: "active"
!=Nerovná sastatus: "!= deleted"
>Väčší akocart_value: "> 50"
>=Väčší alebo rovnýitems: ">= 1"
<Menší akoage: "< 30"
<=Menší alebo rovnýquantity: "<= 10"
containsReťazec obsahujeemail: "contains @gmail.com"
starts_withPrefix reťazcaname: "starts_with Dr."
inHodnota v zoznamecountry: "in US,CA,UK"

Akcie

Akcie definujú, aké operácie skill vykonáva.

Definícia akcie

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 # alebo 'stop'

Typy akcií

TypPopis
brevo/send-emailOdoslanie transakčného e-mailu
brevo/send-smsOdoslanie SMS správy
brevo/send-whatsappOdoslanie WhatsApp správy
brevo/create-contactVytvorenie nového kontaktu
brevo/update-contactAktualizácia atribútov kontaktu
brevo/delete-contactVymazanie kontaktu
brevo/add-to-listPridanie kontaktu do zoznamu
brevo/remove-from-listOdstránenie kontaktu zo zoznamu
brevo/track-eventSledovanie vlastnej udalosti
http/requestVykonanie HTTP požiadavky
transform/mapTransformácia dát
control/delayČakanie pred pokračovaním
control/conditionVetvenie na základe podmienky

Premenné šablón

Použite syntax {{ }} na odkazovanie na dáta:

parameters:
to: "{{ contact.email }}"
subject: "Vaša objednávka #{{ order.number }} bola odoslaná"
params:
name: "{{ contact.firstName | default: 'Zákazník' }}"
items: "{{ cart.items | map: 'name' | join: ', ' }}"
total: "{{ cart.total | currency: 'USD' }}"

Dostupné filtre

FilterPopisPríklad
defaultPredvolená hodnota{{ name | default: 'Hosť' }}
uppercaseReťazec veľkými písmenami{{ name | uppercase }}
lowercaseReťazec malými písmenami{{ email | lowercase }}
capitalizePrvé písmeno veľké{{ name | capitalize }}
truncateSkrátenie reťazca{{ desc | truncate: 100 }}
dateFormátovanie dátumu{{ date | date: 'YYYY-MM-DD' }}
currencyFormátovanie meny{{ price | currency: 'EUR' }}
mapMapovanie vlastnosti poľa{{ items | map: 'name' }}
joinSpojenie poľa{{ tags | join: ', ' }}
firstPrvý prvok poľa{{ items | first }}
lastPosledný prvok poľa{{ items | last }}
sizeDĺžka poľa/reťazca{{ items | size }}

Oprávnenia

Definujte požadované oprávnenia Brevo API:

permissions:
- contacts:read # Čítanie kontaktných dát
- contacts:write # Vytváranie/aktualizácia kontaktov
- email:send # Odosielanie transakčných e-mailov
- sms:send # Odosielanie SMS správ
- lists:write # Správa zoznamov kontaktov
- events:write # Sledovanie udalostí

Úplný príklad

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

Expozícia cez MCP nástroje

Skills môžu byť sprístupnené ako MCP nástroje, čo ich sprístupňuje pre volanie AI agentmi. Pridajte pole mcp do vášho frontmatter:

---
name: abandoned-cart-recovery
version: 3.0.0
description: Recover abandoned shopping carts with a multi-step email sequence
category: email-marketing
# Konfigurácia MCP
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
---

Ako funguje expozícia cez MCP

Keď má skill pole mcp, stane sa nástrojom, ktorý môžu AI agenti objavovať a volať:

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

Polia MCP

PoleTypPopis
mcp.tool_namereťazecNázov MCP nástroja (formát: tajo/skill-name)
mcp.descriptionreťazecPopis zobrazený AI agentom počas objavovania nástrojov
mcp.inputSchemaobjektJSON Schema definujúce vstupné parametre nástroja
mcp.brevo_serverspoleModuly Brevo MCP servera, ktoré tento skill potrebuje

Skills vs. priame MCP nástroje

AspektSkill ako MCP nástrojPriamy Brevo MCP
AbstrakciaVysoká, agent hovorí „zotav tento košík”Nízka, agent musí volať jednotlivé Brevo endpointy
ZložitosťZapuzdruje viacstupňovú logikuAgent musí orchestrovať každý krok
Ochranné prvkyZabudované v skille (podmienky, debounce)Agent si musí implementovať vlastné
Vhodné preOpakovateľné pracovné postupyJednorazové operácie

Tip

Používajte Skills ako MCP nástroje pre komplexné, viacstupňové pracovné postupy, ktoré by agenti nemali zakaždým znovu vymýšľať. Používajte priame Brevo MCP nástroje pre jednoduché, jednorazové operácie, ako je vyhľadanie kontaktu alebo odoslanie jedného e-mailu.

Kombinovanie Skills a agentov

Agent môže používať Skills (ako MCP nástroje) aj priame Brevo MCP moduly:

# Špecifikácia agenta
---
name: retention-agent
tools:
# Tajo Skills ako MCP nástroje
- tajo/recover-abandoned-cart
- tajo/customer-sync
- tajo/win-back-sequence
# Priame Brevo MCP moduly
- brevo_contacts
- brevo_campaign_analytics
- brevo_segments
---

Toto poskytuje agentom vysokoúrovňovú automatizáciu (Skills) pre bežné vzory, pričom si zachováva nízkoúrovňový prístup (Brevo MCP) pre vlastnú logiku.

Pozrite si Formát špecifikácie agenta a Tvorba agentov pre úplné podrobnosti.

Najlepšie postupy

Tip

Verzujte svoje skills pomocou sémantického verzovania. Zmeny, ktoré porušujú spätnú kompatibilitu, vyžadujú zvýšenie hlavnej verzie.

  1. Udržujte skills sústredené – Jeden skill by mal robiť jednu vec dobre
  2. Používajte opisné názvyabandoned-cart-recovery, nie acr
  3. Dokumentujte podmienky – Vysvetlite, prečo každá podmienka existuje
  4. Elegantne zvládajte chyby – Používajte on_error: continue pre nekritické akcie
  5. Testujte na malých skupinách – Počas vývoja používajte status: experimental
  6. Pridajte expozíciu MCP pre skills, ktoré by mali byť priamo volateľné agentmi

Ďalšie kroky

Subscribe to updates

developer-docs

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

auto-detect
AI asistent

Ahoj! Opýtajte sa ma na dokumentáciu.