Beceri Format Spesifikasyonu

skills.md formatı, Becerilerin nasıl yapılandırıldığını, yapılandırıldığını ve yürütüldüğünü tanımlar. Bu spesifikasyon tüm Tajo Becerilerinde tutarlı davranışı sağlar.

Dosya Yapısı

Bir beceri, YAML frontmatter içeren tek bir markdown dosyasında tanımlanır:

---
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 Alanları

Zorunlu Alanlar

AlanTürAçıklama
namestringBenzersiz tanımlayıcı (kebab-case)
versionstringAnlamsal sürüm (ör. “2.1.0”)
descriptionstringKısa açıklama (maks 160 karakter)
categoryenumŞunlardan biri: data-sync, email-marketing, sms-whatsapp, loyalty, analytics, integrations
triggersarrayBu beceriyi etkinleştiren olaylar
actionsarrayBu becerinin gerçekleştirebileceği işlemler

Opsiyonel Alanlar

AlanTürVarsayılanAçıklama
statusenumstableŞunlardan biri: stable, beta, experimental
brevoEndpointsarray[]Kullanılan Brevo API uç noktaları
permissionsarray[]Gerekli Brevo API izinleri
relatedSkillsarray[]İlgili becerilerin kimlikleri
featuredbooleanfalseBeceri kataloğunda öne çıkar

Tetikleyiciler

Tetikleyiciler, beceriyi hangi olayların etkinleştireceğini tanımlar.

Olay Tetikleyicileri

triggers:
- event: cart_abandoned
conditions:
- cart_value: "> 50" # Minimum cart value
- items_count: ">= 1" # At least one item
- time_since_activity: "> 30m" # 30 minutes of inactivity
debounce: 5m # Wait 5 minutes before re-triggering

Zamanlama Tetikleyicileri

triggers:
- schedule: "0 9 * * *" # Cron expression (daily at 9am)
timezone: "America/New_York"
- schedule: every_hour
- schedule: every_day

Webhook Tetikleyicileri

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

Koşul Operatörleri

OperatörAçıklamaÖrnek
=Eşittirstatus: "active"
!=Eşit değildirstatus: "!= deleted"
>Büyüktürcart_value: "> 50"
>=Büyük eşittiritems: ">= 1"
<Küçüktürage: "< 30"
<=Küçük eşittirquantity: "<= 10"
containsDize içeriremail: "contains @gmail.com"
starts_withDize önekiname: "starts_with Dr."
inDeğer listedecountry: "in US,CA,UK"

Eylemler

Eylemler, becerinin gerçekleştirdiği işlemleri tanımlar.

Eylem Tanımı

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'

Eylem Türleri

TürAçıklama
brevo/send-emailİşlemsel e-posta gönder
brevo/send-smsSMS mesajı gönder
brevo/send-whatsappWhatsApp mesajı gönder
brevo/create-contactYeni kişi oluştur
brevo/update-contactKişi özelliklerini güncelle
brevo/delete-contactKişiyi sil
brevo/add-to-listKişiyi listeye ekle
brevo/remove-from-listKişiyi listeden kaldır
brevo/track-eventÖzel olay takip et
http/requestHTTP isteği yap
transform/mapVeriyi dönüştür
control/delayDevam etmeden önce bekle
control/conditionKoşula göre dallan

Şablon Değişkenleri

Verilere başvurmak için {{ }} sözdizimini kullanın:

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' }}"

Kullanılabilir Filtreler

FiltreAçıklamaÖrnek
defaultVarsayılan değer{{ name | default: 'Guest' }}
uppercaseDizeyi büyük harfe çevir{{ name | uppercase }}
lowercaseDizeyi küçük harfe çevir{{ email | lowercase }}
capitalizeİlk harfi büyüt{{ name | capitalize }}
truncateDizeyi kes{{ desc | truncate: 100 }}
dateTarihi biçimlendir{{ date | date: 'YYYY-MM-DD' }}
currencyPara birimini biçimlendir{{ price | currency: 'EUR' }}
mapDizi özelliğini eşle{{ items | map: 'name' }}
joinDiziyi birleştir{{ tags | join: ', ' }}
firstİlk dizi öğesi{{ items | first }}
lastSon dizi öğesi{{ items | last }}
sizeDizi/dize uzunluğu{{ items | size }}

İzinler

Gerekli Brevo API izinlerini tanımlayın:

permissions:
- contacts:read # Read contact data
- contacts:write # Create/update contacts
- email:send # Send transactional emails
- sms:send # Send SMS messages
- lists:write # Manage contact lists
- events:write # Track events

Tam Örnek

---
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 Araç Sunumu

Beceriler, yapay zeka ajanları tarafından çağrılabilen MCP araçları olarak sunulabilir. Frontmatter’ınıza mcp alanını ekleyin:

---
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 Sunumu Nasıl Çalışır

Bir becerinin mcp alanı varsa, yapay zeka ajanlarının keşfedebileceği ve çağırabileceği bir araç haline gelir:

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 Alanları

AlanTürAçıklama
mcp.tool_namestringMCP araç adı (format: tajo/skill-name)
mcp.descriptionstringAraç keşfi sırasında yapay zeka ajanlarına gösterilen açıklama
mcp.inputSchemaobjectAracın girdi parametrelerini tanımlayan JSON Schema
mcp.brevo_serversarrayBu becerinin hangi Brevo MCP sunucu modüllerine ihtiyacı olduğu

Beceriler ve Doğrudan MCP Araçları Karşılaştırması

UnsurMCP Aracı Olarak BeceriDoğrudan Brevo MCP
SoyutlamaYüksek, ajan “bu sepeti kurtar” derDüşük, ajan her Brevo uç noktasını ayrı ayrı çağırmalı
KarmaşıklıkÇok adımlı mantığı kapsarAjan her adımı koordine etmeli
GüvenliklerBeceriye yerleşiktir (koşullar, debounce)Ajan kendi güvenliklerini uygulamalı
En İyi KullanımTekrarlanabilir iş akışlarıAnlık işlemler

Tip

Ajanların her seferinde yeniden icat etmemesi gereken karmaşık, çok adımlı iş akışları için Becerileri MCP araçları olarak kullanın. Bir kişiyi aramak veya tek bir e-posta göndermek gibi basit, tek seferlik işlemler için doğrudan Brevo MCP araçlarını kullanın.

Becerileri ve Ajanları Birleştirme

Bir ajan hem Becerileri (MCP araçları olarak) hem de doğrudan Brevo MCP modüllerini kullanabilir:

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

Bu, ajanlara ortak desenler için yüksek seviyeli otomasyon (Beceriler) sağlarken özel mantık için düşük seviyeli erişimi (Brevo MCP) korur.

Tam ayrıntılar için Ajan Spesifikasyon Formatı ve Ajanlar Oluşturma bölümlerine bakın.

En İyi Uygulamalar

Tip

Semantik sürümleme kullanarak becerilerinizi sürümleyin. Kırıcı değişiklikler büyük sürüm artışı gerektirir.

  1. Becerileri odaklı tutun - Bir beceri bir şeyi iyi yapmalıdır
  2. Açıklayıcı adlar kullanın - acr değil abandoned-cart-recovery
  3. Koşulları belgeleyin - Her koşulun neden var olduğunu açıklayın
  4. Hataları zarifçe yönetin - Kritik olmayan eylemler için on_error: continue kullanın
  5. Küçük kitlelerle test edin - Geliştirme sırasında status: experimental kullanın
  6. Ajanların doğrudan çağırabilmesi gereken beceriler için MCP sunumu ekleyin

Sonraki Adımlar

Subscribe to updates

developer-docs

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

auto-detect
AI Asistan

Merhaba! Belgeler hakkında her şeyi sorabilirsiniz.