مواصفات صيغة المهارات

تحدد صيغة skills.md كيفية هيكلة المهارات وتهيئتها وتنفيذها. تضمن هذه المواصفات سلوكًا متسقًا عبر جميع مهارات Tajo.

بنية الملف

تُعرَّف المهارة في ملف markdown واحد مع frontmatter بصيغة YAML:

---
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الأحداث التي تفعّل هذه المهارة
actionsarrayالعمليات التي يمكن لهذه المهارة تنفيذها

الحقول الاختيارية

الحقلالنوعالافتراضيالوصف
statusenumstableأحد: stable, beta, experimental
brevoEndpointsarray[]نقاط نهاية Brevo API المستخدمة
permissionsarray[]أذونات Brevo API المطلوبة
relatedSkillsarray[]معرّفات المهارات ذات الصلة
featuredbooleanfalseإبراز في كتالوج المهارات

المحفزات

تحدد المحفزات الأحداث التي تفعّل المهارة.

محفزات الأحداث

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

محفزات الجدولة

triggers:
- schedule: "0 9 * * *" # Cron expression (daily at 9am)
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النص يحتويemail: "contains @gmail.com"
starts_withبادئة النصname: "starts_with Dr."
inالقيمة في قائمةcountry: "in US,CA,UK"

الإجراءات

تحدد الإجراءات العمليات التي تنفّذها المهارة.

تعريف الإجراء

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إرسال بريد إلكتروني معاملاتي
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اقتطاع النص{{ 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طول المصفوفة/النص{{ items | size }}

الأذونات

عرّف أذونات Brevo API المطلوبة:

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

مثال كامل

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

يمكن عرض المهارات كأدوات MCP، مما يجعلها قابلة للاستدعاء بواسطة وكلاء الذكاء الاصطناعي. أضف حقل 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

عندما يحتوي أي مهارة على حقل mcp، تصبح أداة يمكن لوكلاء الذكاء الاصطناعي اكتشافها واستدعاؤها:

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الوصف المعروض لوكلاء الذكاء الاصطناعي أثناء اكتشاف الأدوات
mcp.inputSchemaobjectJSON Schema يحدد معلمات إدخال الأداة
mcp.brevo_serversarrayأي من وحدات خوادم Brevo MCP تحتاجها هذه المهارة

المهارات مقابل أدوات MCP المباشرة

الجانبالمهارة كأداة MCPBrevo MCP المباشر
التجريدعالٍ - يقول الوكيل “استعد هذه العربة”منخفض - على الوكيل استدعاء نقاط نهاية Brevo الفردية
التعقيديغلّف منطقًا متعدد الخطواتعلى الوكيل تنسيق كل خطوة
الحواجز الوقائيةمدمجة في المهارة (شروط، debounce)على الوكيل تنفيذها بنفسه
الأنسب لـسير عمل قابل للتكرارعمليات عرضية

Tip

استخدم المهارات كأدوات MCP لسير العمل المعقد متعدد الخطوات الذي لا ينبغي للوكلاء إعادة اختراعه في كل مرة. استخدم أدوات Brevo MCP المباشرة للعمليات البسيطة لمرة واحدة مثل البحث عن جهة اتصال أو إرسال بريد فردي.

تركيب المهارات والوكلاء

يمكن للوكيل استخدام المهارات (كأدوات MCP) ووحدات 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
---

يتيح هذا للوكلاء أتمتة عالية المستوى (المهارات) للأنماط الشائعة مع الاحتفاظ بالوصول منخفض المستوى (Brevo MCP) للمنطق المخصص.

راجع صيغة مواصفات الوكيل وبناء الوكلاء للتفاصيل الكاملة.

أفضل الممارسات

Tip

أصدر مهاراتك باستخدام الإصدار الدلالي. التغييرات الكاسرة تتطلب ترقية إصدار رئيسي.

  1. حافظ على تركيز المهارات - يجب أن تفعل المهارة الواحدة شيئًا واحدًا بإتقان
  2. استخدم أسماء وصفية - abandoned-cart-recovery وليس acr
  3. وثّق الشروط - اشرح لماذا وُضع كل شرط
  4. عالج الأخطاء بأناقة - استخدم on_error: continue للإجراءات غير الحرجة
  5. اختبر مع جماهير صغيرة - استخدم status: experimental أثناء التطوير
  6. أضف عرض MCP للمهارات التي ينبغي للوكلاء استدعاؤها مباشرة

الخطوات التالية

Subscribe to updates

developer-docs

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

auto-detect
مساعد AI

مرحباً! اسألني أي شيء عن الوثائق.