Skills فارمیٹ اسپیسیفیکیشن
skills.md فارمیٹ متعین کرتا ہے کہ Skills کو کیسے ساخت دی، کنفیگر، اور execute کیا جاتا ہے۔ یہ اسپیسیفیکیشن تمام Tajo Skills میں مستقل رویے کو یقینی بناتی ہے۔
فائل کی ساخت
ایک skill کو YAML frontmatter کے ساتھ ایک ہی markdown فائل میں متعین کیا جاتا ہے:
---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 فیلڈز
ضروری فیلڈز
| فیلڈ | قسم | تفصیل |
|---|---|---|
name | string | منفرد identifier (kebab-case) |
version | string | Semantic ورژن (مثلاً “2.1.0”) |
description | string | مختصر تفصیل (زیادہ سے زیادہ 160 حروف) |
category | enum | ایک میں سے: data-sync, email-marketing, sms-whatsapp, loyalty, analytics, integrations |
triggers | array | وہ ایونٹس جو اس skill کو فعال کرتے ہیں |
actions | array | وہ آپریشنز جو یہ skill انجام دے سکتی ہے |
اختیاری فیلڈز
| فیلڈ | قسم | ڈیفالٹ | تفصیل |
|---|---|---|---|
status | enum | stable | ایک میں سے: stable, beta, experimental |
brevoEndpoints | array | [] | استعمال شدہ Brevo API endpoints |
permissions | array | [] | مطلوبہ Brevo API permissions |
relatedSkills | array | [] | متعلقہ skills کے IDs |
featured | boolean | false | Skill کیٹالاگ میں نمایاں کریں |
Triggers
Triggers متعین کرتے ہیں کہ کون سے ایونٹس skill کو فعال کرتے ہیں۔
Event Triggers
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-triggeringSchedule Triggers
triggers: - schedule: "0 9 * * *" # Cron expression (daily at 9am) timezone: "America/New_York" - schedule: every_hour - schedule: every_dayWebhook Triggers
triggers: - webhook: /skills/customer-sync/trigger method: POST authentication: api_keyCondition آپریٹرز
| آپریٹر | تفصیل | مثال |
|---|---|---|
= | برابر ہے | status: "active" |
!= | برابر نہیں | status: "!= deleted" |
> | سے بڑا | cart_value: "> 50" |
>= | سے بڑا یا برابر | items: ">= 1" |
< | سے چھوٹا | age: "< 30" |
<= | سے چھوٹا یا برابر | quantity: "<= 10" |
contains | String میں شامل | email: "contains @gmail.com" |
starts_with | String کا سابقہ | name: "starts_with Dr." |
in | فہرست میں ویلیو | country: "in US,CA,UK" |
Actions
Actions متعین کرتے ہیں کہ skill کون سے آپریشنز انجام دیتی ہے۔
Action کی تعریف
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'Action کی اقسام
| قسم | تفصیل |
|---|---|
brevo/send-email | Transactional ای میل بھیجیں |
brevo/send-sms | SMS پیغام بھیجیں |
brevo/send-whatsapp | WhatsApp پیغام بھیجیں |
brevo/create-contact | نیا contact بنائیں |
brevo/update-contact | Contact attributes اپ ڈیٹ کریں |
brevo/delete-contact | Contact ڈیلیٹ کریں |
brevo/add-to-list | Contact کو list میں شامل کریں |
brevo/remove-from-list | Contact کو list سے ہٹائیں |
brevo/track-event | اپنی مرضی کا ایونٹ ٹریک کریں |
http/request | HTTP درخواست کریں |
transform/map | ڈیٹا transform کریں |
control/delay | جاری رکھنے سے پہلے انتظار کریں |
control/condition | Condition کی بنیاد پر branch کریں |
ٹیمپلیٹ متغیرات
ڈیٹا کا حوالہ دینے کے لیے {{ }} syntax استعمال کریں:
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 | String کو uppercase کریں | {{ name | uppercase }} |
lowercase | String کو lowercase کریں | {{ email | lowercase }} |
capitalize | پہلا حرف بڑا کریں | {{ name | capitalize }} |
truncate | String کو کاٹیں | {{ desc | truncate: 100 }} |
date | تاریخ format کریں | {{ date | date: 'YYYY-MM-DD' }} |
currency | کرنسی format کریں | {{ price | currency: 'EUR' }} |
map | Array خاصیت map کریں | {{ items | map: 'name' }} |
join | Array join کریں | {{ tags | join: ', ' }} |
first | Array کا پہلا آئٹم | {{ items | first }} |
last | Array کا آخری آئٹم | {{ items | last }} |
size | Array/string کی لمبائی | {{ items | size }} |
Permissions
مطلوبہ Brevo API permissions متعین کریں:
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-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 Tool Exposure
Skills کو MCP tools کے طور پر بے نقاب کیا جا سکتا ہے، جس سے وہ AI agents کے ذریعے کال ایبل بن جاتی ہیں۔ اپنے frontmatter میں mcp فیلڈ شامل کریں:
---name: abandoned-cart-recoveryversion: 3.0.0description: Recover abandoned shopping carts with a multi-step email sequencecategory: email-marketing
# MCP Configurationmcp: 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 Exposure کیسے کام کرتی ہے
جب کسی skill میں mcp فیلڈ ہو، تو یہ ایک ٹول بن جاتی ہے جسے AI agents دریافت اور invoke کر سکتے ہیں:
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 initiatedMCP فیلڈز
| فیلڈ | قسم | تفصیل |
|---|---|---|
mcp.tool_name | string | MCP tool کا نام (فارمیٹ: tajo/skill-name) |
mcp.description | string | Tool discovery کے دوران AI agents کو دکھائی جانے والی تفصیل |
mcp.inputSchema | object | Tool کے input پیرامیٹرز کی تعریف کرنے والا JSON Schema |
mcp.brevo_servers | array | اس skill کو کون سے Brevo MCP server ماڈیولز کی ضرورت ہے |
Skills بمقابلہ براہ راست MCP Tools
| پہلو | Skill بطور MCP Tool | براہ راست Brevo MCP |
|---|---|---|
| تجرید | زیادہ, agent کہتا ہے “یہ cart recover کرو” | کم, agent کو انفرادی Brevo endpoints کال کرنا ہوتا ہے |
| پیچیدگی | Multi-step منطق کو محفوظ کرتا ہے | Agent کو ہر مرحلہ orchestrate کرنا ہوتا ہے |
| Guardrails | Skill میں بلٹ ان (conditions، debounce) | Agent کو اپنا خود implement کرنا پڑتا ہے |
| بہترین برائے | دہرائے جانے والے workflows | Ad-hoc آپریشنز |
Tip
Skills کو MCP tools کے طور پر استعمال کریں پیچیدہ، multi-step workflows کے لیے جنہیں agents کو ہر بار دوبارہ ایجاد نہیں کرنا چاہیے۔ براہ راست Brevo MCP tools کو سادہ، یک بار کے آپریشنز کے لیے استعمال کریں جیسے contact تلاش کرنا یا ایک ای میل بھیجنا۔
Skills اور Agents کو ملانا
ایک agent دونوں Skills (MCP tools کے طور پر) اور براہ راست Brevo MCP ماڈیولز استعمال کر سکتا ہے:
# Agent spec---name: retention-agenttools: # 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---یہ agents کو عام patterns کے لیے اعلیٰ سطحی آٹومیشن (Skills) دیتا ہے جبکہ اپنی مرضی کی منطق کے لیے low-level رسائی (Brevo MCP) برقرار رکھتا ہے۔
مکمل تفصیلات کے لیے Agent Specification Format اور Building Agents دیکھیں۔
بہترین طریقے
Tip
اپنی skills کو version دیں semantic versioning کا استعمال کرتے ہوئے۔ Breaking changes کے لیے major version bump درکار ہے۔
- Skills کو مرکوز رکھیں - ایک skill کو ایک کام اچھی طرح کرنا چاہیے
- وضاحتی نام استعمال کریں -
abandoned-cart-recovery، نہ کہacr - شرائط کو دستاویز کریں - وضاحت کریں کہ ہر شرط کیوں موجود ہے
- Errors کو شائستگی سے ہینڈل کریں - غیر اہم actions کے لیے
on_error: continueاستعمال کریں - چھوٹے سامعین کے ساتھ ٹیسٹ کریں - ترقی کے دوران
status: experimentalاستعمال کریں - MCP exposure شامل کریں ان skills کے لیے جنہیں agents کو براہ راست invoke کرنا چاہیے
اگلے اقدامات
- MCP اور Agents کا جائزہ - Skills agentic آرکیٹیکچر میں کیسے فٹ ہوتی ہیں
- Agent Specification Format - ایسے agents متعین کریں جو Skills کو tools کے طور پر استعمال کرتے ہیں
- Building Agents - اپنا پہلا مارکیٹنگ agent بنائیں
- Data Sync Skills - ڈیٹا synchronization skills دریافت کریں