Specifikacija formata Skills

Format skills.md določa, kako so Skills strukturirani, konfigurirani in izvajani. Ta specifikacija zagotavlja dosledno delovanje vseh Tajo Skills.

Struktura datoteke

Skill je definiran v eni datoteki markdown z 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...

Polja frontmatter

Obvezna polja

PoljeTipOpis
namenizEdinstveni identifikator (kebab-case)
versionnizSemantična verzija (npr. »2.1.0«)
descriptionnizKratek opis (največ 160 znakov)
categoryenumEna od: data-sync, email-marketing, sms-whatsapp, loyalty, analytics, integrations
triggerspoljeDogodki, ki aktivirajo ta skill
actionspoljeOperacije, ki jih ta skill lahko izvaja

Neobvezna polja

PoljeTipPrivzetoOpis
statusenumstableEna od: stable, beta, experimental
brevoEndpointspolje[]Uporabljeni Brevo API-ji
permissionspolje[]Zahtevana dovoljenja Brevo API
relatedSkillspolje[]ID-ji sorodnih skills
featuredbooleanfalseIzpostavi v katalogu skills

Sprožilci

Sprožilci določajo, kateri dogodki aktivirajo skill.

Sprožilci dogodkov

triggers:
- event: cart_abandoned
conditions:
- cart_value: "> 50" # Minimalna vrednost košarice
- items_count: ">= 1" # Vsaj en artikel
- time_since_activity: "> 30m" # 30 minut nedejavnosti
debounce: 5m # Počakaj 5 minut pred ponovnim sprožitvijo

Načrtovani sprožilci

triggers:
- schedule: "0 9 * * *" # Cron izraz (vsak dan ob 9:00)
timezone: "America/New_York"
- schedule: every_hour
- schedule: every_day

Sprožilci webhookov

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

Operatorji pogojev

OperatorOpisPrimer
=Enakostatus: "active"
!=Ni enakostatus: "!= deleted"
>Večje kotcart_value: "> 50"
>=Večje ali enakoitems: ">= 1"
<Manjše kotage: "< 30"
<=Manjše ali enakoquantity: "<= 10"
containsNiz vsebujeemail: "contains @gmail.com"
starts_withPredpona nizaname: "starts_with Dr."
inVrednost na seznamucountry: "in US,CA,UK"

Dejanja

Dejanja določajo, katere operacije skill izvaja.

Definicija dejanja

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

Vrste dejanj

VrstaOpis
brevo/send-emailPošljite transakcijsko e-pošto
brevo/send-smsPošljite SMS sporočilo
brevo/send-whatsappPošljite sporočilo WhatsApp
brevo/create-contactUstvarite nov stik
brevo/update-contactPosodobite atribute stika
brevo/delete-contactIzbrišite stik
brevo/add-to-listDodajte stik na seznam
brevo/remove-from-listOdstranite stik s seznama
brevo/track-eventSledite lastnemu dogodku
http/requestIzvedite zahtevo HTTP
transform/mapPreoblikujte podatke
control/delayPočakajte pred nadaljevanjem
control/conditionRazvejite glede na pogoj

Spremenljivke predlog

Uporabite sintakso {{ }} za sklicevanje na podatke:

parameters:
to: "{{ contact.email }}"
subject: "Vaše naročilo #{{ order.number }} je bilo odposlano"
params:
name: "{{ contact.firstName | default: 'Stranka' }}"
items: "{{ cart.items | map: 'name' | join: ', ' }}"
total: "{{ cart.total | currency: 'USD' }}"

Razpoložljivi filtri

FilterOpisPrimer
defaultPrivzeta vrednost{{ name | default: 'Gost' }}
uppercaseNiz z velikimi črkami{{ name | uppercase }}
lowercaseNiz z malimi črkami{{ email | lowercase }}
capitalizePrva črka velika{{ name | capitalize }}
truncateSkrajšaj niz{{ desc | truncate: 100 }}
dateOblikuj datum{{ date | date: 'YYYY-MM-DD' }}
currencyOblikuj valuto{{ price | currency: 'EUR' }}
mapPreslika lastnost polja{{ items | map: 'name' }}
joinZdruži polje{{ tags | join: ', ' }}
firstPrvi element polja{{ items | first }}
lastZadnji element polja{{ items | last }}
sizeDolžina polja/niza{{ items | size }}

Dovoljenja

Določite zahtevana dovoljenja Brevo API:

permissions:
- contacts:read # Branje podatkov o stikih
- contacts:write # Ustvarjanje/posodabljanje stikov
- email:send # Pošiljanje transakcijskih e-poštnih sporočil
- sms:send # Pošiljanje SMS sporočil
- lists:write # Upravljanje seznamov stikov
- events:write # Sledenje dogodkom

Popoln primer

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

Izpostavljenost prek orodij MCP

Skills je mogoče izpostaviti kot orodja MCP, kar jih naredi dostopna za klicanje s strani AI agentov. Dodajte polje mcp v vaš frontmatter:

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

Kako deluje izpostavljenost prek MCP

Ko ima skill polje mcp, postane orodje, ki ga AI agenti lahko odkrijejo in pokličejo:

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

Polja MCP

PoljeTipOpis
mcp.tool_namenizIme orodja MCP (format: tajo/skill-name)
mcp.descriptionnizOpis, prikazan AI agentom med odkrivanjem orodij
mcp.inputSchemaobjektJSON Schema, ki določa vhodne parametre orodja
mcp.brevo_serverspoljeModuli strežnika Brevo MCP, ki jih ta skill potrebuje

Skills vs. neposredna orodja MCP

VidikSkill kot orodje MCPNeposredni Brevo MCP
AbstrakcijaVisoka, agent reče »povrni to košarico«Nizka, agent mora klicati posamezne Brevo API-je
KompleksnostZajema večstopenjsko logikoAgent mora orkestrirati vsak korak
VarovalaVgrajena v skill (pogoji, debounce)Agent mora implementirati lastna
Primerno zaPonavljajoče se delovne tokoveEnkratne operacije

Tip

Uporabite Skills kot orodja MCP za kompleksne, večstopenjske delovne tokove, ki jih agenti ne bi smeli vsakič znova iznajdevati. Uporabite neposredna orodja Brevo MCP za enostavne, enkratne operacije, kot je iskanje stika ali pošiljanje enega e-poštnega sporočila.

Kombiniranje Skills in agentov

Agent lahko uporablja tako Skills (kot orodja MCP) kot neposredne module Brevo MCP:

# Specifikacija agenta
---
name: retention-agent
tools:
# Tajo Skills kot orodja MCP
- tajo/recover-abandoned-cart
- tajo/customer-sync
- tajo/win-back-sequence
# Neposredni moduli Brevo MCP
- brevo_contacts
- brevo_campaign_analytics
- brevo_segments
---

To agentom zagotavlja visokonivojsko avtomatizacijo (Skills) za pogoste vzorce, hkrati pa ohranja nizkonivojski dostop (Brevo MCP) za lastno logiko.

Glejte Format specifikacije agenta in Gradnja agentov za popolne podrobnosti.

Najboljše prakse

Tip

Verzionite svoje skills z uporabo semantičnega verzioniranja. Spremembe, ki kršijo združljivost, zahtevajo povečanje glavne verzije.

  1. Ohranjajte skills osredotočene – En skill naj dela eno stvar dobro
  2. Uporabite opisna imenaabandoned-cart-recovery, ne acr
  3. Dokumentirajte pogoje – Pojasnite, zakaj vsak pogoj obstaja
  4. Elegantno obravnavajte napake – Uporabite on_error: continue za nekritična dejanja
  5. Testirajte na majhnih skupinah – Med razvojem uporabite status: experimental
  6. Dodajte izpostavljenost MCP za skills, ki bi jih morali agenti neposredno klicati

Naslednji koraki

Subscribe to updates

developer-docs

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

auto-detect
AI pomočnik

Živjo! Vprašajte me o dokumentaciji.