Skills Formátum Specifikáció
A skills.md formátum meghatározza, hogyan épülnek fel, konfigurálhatók és hajtódnak végre a Skillек. Ez a specifikáció következetes viselkedést biztosít az összes Tajo Skill esetében.
Fájlstruktúra
A skill egyetlen markdown fájlban kerül meghatározásra YAML frontmatterrel:
---name: customer-syncversion: 2.1.0description: Sync customer data to Brevo contactscategory: data-syncstatus: 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 mezők
Kötelező mezők
| Mező | Típus | Leírás |
|---|---|---|
name | string | Egyedi azonosító (kebab-case) |
version | string | Szemantikus verzió (pl. „2.1.0”) |
description | string | Rövid leírás (max. 160 karakter) |
category | enum | Egy a következők közül: data-sync, email-marketing, sms-whatsapp, loyalty, analytics, integrations |
triggers | array | A skillt aktiváló események |
actions | array | A skill által végrehajtható műveletek |
Opcionális mezők
| Mező | Típus | Alapértelmezett | Leírás |
|---|---|---|---|
status | enum | stable | Egy a következők közül: stable, beta, experimental |
brevoEndpoints | array | [] | Használt Brevo API végpontok |
permissions | array | [] | Szükséges Brevo API jogosultságok |
relatedSkills | array | [] | Kapcsolódó skillек azonosítói |
featured | boolean | false | Kiemelés a skill katalógusban |
Kiváltók
A kiváltók meghatározzák, mely események aktiválják a skillt.
Eseményalapú kiváltók
triggers: - event: cart_abandoned conditions: - cart_value: "> 50" # Minimális kosárérték - items_count: ">= 1" # Legalább egy tétel - time_since_activity: "> 30m" # 30 perc tétlenség debounce: 5m # 5 perc várakozás az újraaktiválás előttÜtemezett kiváltók
triggers: - schedule: "0 9 * * *" # Cron kifejezés (naponta 9 órakor) timezone: "America/New_York" - schedule: every_hour - schedule: every_dayWebhook kiváltók
triggers: - webhook: /skills/customer-sync/trigger method: POST authentication: api_keyFeltételoperátorok
| Operátor | Leírás | Példa |
|---|---|---|
= | Egyenlő | status: "active" |
!= | Nem egyenlő | status: "!= deleted" |
> | Nagyobb mint | cart_value: "> 50" |
>= | Nagyobb vagy egyenlő | items: ">= 1" |
< | Kisebb mint | age: "< 30" |
<= | Kisebb vagy egyenlő | quantity: "<= 10" |
contains | Tartalmazza | email: "contains @gmail.com" |
starts_with | Előtag | name: "starts_with Dr." |
in | Érték listában | country: "in US,CA,UK" |
Műveletek
A műveletek meghatározzák, milyen műveleteket hajt végre a skill.
Művelet meghatározása
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'Művelettípusok
| Típus | Leírás |
|---|---|
brevo/send-email | Tranzakciós email küldése |
brevo/send-sms | SMS üzenet küldése |
brevo/send-whatsapp | WhatsApp üzenet küldése |
brevo/create-contact | Új kapcsolat létrehozása |
brevo/update-contact | Kapcsolat attribútumai frissítése |
brevo/delete-contact | Kapcsolat törlése |
brevo/add-to-list | Kapcsolat hozzáadása listához |
brevo/remove-from-list | Kapcsolat eltávolítása listából |
brevo/track-event | Egyéni esemény követése |
http/request | HTTP kérés küldése |
transform/map | Adatok átalakítása |
control/delay | Várakozás a folytatás előtt |
control/condition | Elágazás feltétel alapján |
Sablon változók
Használja a {{ }} szintaxist az adatokra való hivatkozáshoz:
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' }}"Elérhető szűrők
| Szűrő | Leírás | Példa |
|---|---|---|
default | Alapértelmezett érték | {{ name | default: 'Guest' }} |
uppercase | Nagybetűs | {{ name | uppercase }} |
lowercase | Kisbetűs | {{ email | lowercase }} |
capitalize | Első betű nagybetűs | {{ name | capitalize }} |
truncate | Szöveg csonkítása | {{ desc | truncate: 100 }} |
date | Dátum formázása | {{ date | date: 'YYYY-MM-DD' }} |
currency | Pénznem formázása | {{ price | currency: 'EUR' }} |
map | Tömb tulajdonság leképezése | {{ items | map: 'name' }} |
join | Tömb összefűzése | {{ tags | join: ', ' }} |
first | Tömb első eleme | {{ items | first }} |
last | Tömb utolsó eleme | {{ items | last }} |
size | Tömb/szöveg hossza | {{ items | size }} |
Jogosultságok
Adja meg a szükséges Brevo API jogosultságokat:
permissions: - contacts:read # Kapcsolatok adatainak olvasása - contacts:write # Kapcsolatok létrehozása/frissítése - email:send # Tranzakciós emailek küldése - sms:send # SMS üzenetek küldése - lists:write # Kapcsolati listák kezelése - events:write # Események követéseTeljes példa
---name: abandoned-cart-recoveryversion: 3.0.0description: Recover abandoned shopping carts with a multi-step email sequencecategory: email-marketingstatus: 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 Eszköz expozíció
A skillек MCP eszközként tehetők elérhetővé, így AI ügynökök meghívhatják őket. Adja hozzá az mcp mezőt a frontmatterhez:
---name: abandoned-cart-recoveryversion: 3.0.0description: Recover abandoned shopping carts with a multi-step email sequencecategory: email-marketing
# MCP konfiguráció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---Az MCP expozíció működése
Ha egy skillhez tartozik mcp mező, AI ügynökök felfedezhetik és meghívhatják eszközként:
Ügynök: „Recover abandoned cart #4521 for [email protected]" ↓MCP eszköz keresés: megtalálja a tajo/recover-abandoned-cart eszközt ↓Eszköz végrehajtás: futtatja a skill műveleti láncát ↓Brevo MCP szerverek: connections + email modulok meghívódnak ↓Eredmény: visszanyerési sorozat elindítvaMCP mezők
| Mező | Típus | Leírás |
|---|---|---|
mcp.tool_name | string | MCP eszköz neve (formátum: tajo/skill-name) |
mcp.description | string | AI ügynökök számára megjelenő leírás az eszköz felfedezésekor |
mcp.inputSchema | object | JSON Schema az eszköz bemeneti paramétereinek meghatározásához |
mcp.brevo_servers | array | Szükséges Brevo MCP szervermodulok |
Skillек vs. közvetlen MCP eszközök
| Szempont | Skill mint MCP eszköz | Közvetlen Brevo MCP |
|---|---|---|
| Absztrakció | Magas – az ügynök azt mondja: „nyerje vissza a kosarat” | Alacsony – az ügynöknek egyenként kell meghívnia a Brevo végpontokat |
| Összetettség | Több lépéses logikát zár magába | Az ügynöknek kézzel kell koordinálnia |
| Korlátok | Beépítve a skillbe (feltételek, debounce) | Az ügynöknek saját maga kell megvalósítani |
| Legjobb erre | Ismételhető munkafolyamatok | Alkalmi műveletek |
Tip
Skillek mint MCP eszközök összetett, többlépéses munkafolyamatokhoz, amelyeket az ügynököknek nem kell minden alkalommal újra megvalósítani. Közvetlen Brevo MCP eszközöket egyszerű, egyszeri műveletekhez használjon – például kapcsolat kereséshez vagy egyetlen email küldéséhez.
Skillек és Ügynökök kombinálása
Az ügynök egyszerre használhat Skilleket (MCP eszközként) és közvetlen Brevo MCP modulokat:
# Ügynök spec---name: retention-agenttools: # Tajo Skillек mint MCP eszközök - tajo/recover-abandoned-cart - tajo/customer-sync - tajo/win-back-sequence # Közvetlen Brevo MCP modulok - brevo_contacts - brevo_campaign_analytics - brevo_segments---Ez magas szintű automatizálást (Skillек) biztosít a bevett minták számára, miközben megtartja az alacsony szintű hozzáférést (Brevo MCP) az egyéni logikához.
Részletes információkért lásd: Ügynök specifikáció formátum és Ügynökök készítése.
Ajánlott eljárások
Tip
Verziózza skilljeit szemantikus verziókövetéssel. A törő változások fő verziószám-emelést igényelnek.
- Tartsa fókuszáltan a skilleket – Egy skill egy dolgot végezzen el jól
- Használjon leíró neveket –
abandoned-cart-recovery, nemacr - Dokumentálja a feltételeket – Magyarázza el, miért szükséges az adott feltétel
- Kezelje hibakecsesen a hibákat – Nem kritikus műveleteknél használja az
on_error: continuebeállítást - Tesztelje kis közönségen – Fejlesztés során használja a
status: experimentalállapotot - Adjon MCP expozíciót azokhoz a skillekhez, amelyeket az ügynököknek közvetlenül kell tudni meghívni
Következő lépések
- MCP és Ügynökök Áttekintés – Hogyan illeszkednek a Skillек az ügynöki architektúrába
- Ügynök specifikáció formátum – Skilleket eszközként használó ügynökök definiálása
- Ügynökök készítése – Az első marketing ügynök megépítése
- Adatszinkronizálási Skillек – Adatszinkronizálási skillек felfedezése