स्किल्स फ़ॉर्मेट विनिर्देशन
skills.md फ़ॉर्मेट परिभाषित करता है कि स्किल्स कैसे संरचित, कॉन्फ़िगर और निष्पादित की जाती हैं। यह विनिर्देशन सभी Tajo स्किल्स में एक सुसंगत व्यवहार सुनिश्चित करता है।
फ़ाइल संरचना
एक स्किल को 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 | यूनीक आइडेंटिफ़ायर (kebab-case) |
version | string | सेमांटिक संस्करण (उदा., “2.1.0”) |
description | string | संक्षिप्त विवरण (अधिकतम 160 वर्ण) |
category | enum | इनमें से एक: data-sync, email-marketing, sms-whatsapp, loyalty, analytics, integrations |
triggers | array | इवेंट्स जो इस स्किल को सक्रिय करते हैं |
actions | array | ऑपरेशन्स जो यह स्किल कर सकती है |
वैकल्पिक फ़ील्ड्स
| फ़ील्ड | प्रकार | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
status | enum | stable | इनमें से एक: stable, beta, experimental |
brevoEndpoints | array | [] | उपयोग किए गए Brevo API एंडपॉइंट्स |
permissions | array | [] | आवश्यक Brevo API अनुमतियाँ |
relatedSkills | array | [] | संबंधित स्किल्स के IDs |
featured | boolean | false | स्किल कैटलॉग में हाइलाइट करें |
Triggers
Triggers परिभाषित करते हैं कि कौन से इवेंट्स स्किल को सक्रिय करते हैं।
इवेंट 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-triggeringशेड्यूल 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_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
Actions परिभाषित करते हैं कि स्किल कौन से ऑपरेशन्स करती है।
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 | ट्रांज़ैक्शनल ईमेल भेजें |
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-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 टूल एक्सपोज़र
स्किल्स को MCP टूल्स के रूप में उजागर किया जा सकता है, जिससे वे AI एजेंट्स द्वारा कॉल करने योग्य हो जाते हैं। अपने 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 एक्सपोज़र कैसे काम करता है
जब किसी स्किल के पास mcp फ़ील्ड होता है, तो यह एक ऐसा टूल बन जाता है जिसे AI एजेंट्स खोज सकते हैं और आमंत्रित कर सकते हैं:
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 टूल नाम (फ़ॉर्मेट: tajo/skill-name) |
mcp.description | string | टूल डिस्कवरी के दौरान AI एजेंट्स को दिखाया गया विवरण |
mcp.inputSchema | object | JSON Schema जो टूल के इनपुट पैरामीटर परिभाषित करता है |
mcp.brevo_servers | array | इस स्किल को कौन से Brevo MCP सर्वर मॉड्यूल की आवश्यकता है |
स्किल्स बनाम डायरेक्ट MCP टूल्स
| पहलू | MCP टूल के रूप में स्किल | डायरेक्ट Brevo MCP |
|---|---|---|
| अमूर्तन | उच्च, एजेंट कहता है “इस कार्ट को पुनः प्राप्त करें” | निम्न, एजेंट को व्यक्तिगत Brevo एंडपॉइंट्स कॉल करने होंगे |
| जटिलता | बहु-चरण तर्क को समाहित करता है | एजेंट को प्रत्येक चरण को व्यवस्थित करना होगा |
| सुरक्षा उपाय | स्किल में निर्मित (conditions, debounce) | एजेंट को स्वयं लागू करने होंगे |
| इसके लिए सर्वश्रेष्ठ | पुनरावृत्त वर्कफ़्लो | तदर्थ ऑपरेशन्स |
Tip
जटिल, बहु-चरण वर्कफ़्लो के लिए MCP टूल्स के रूप में स्किल्स का उपयोग करें जिन्हें एजेंट्स को हर बार फिर से नहीं बनाना चाहिए। सरल, एक-बार के ऑपरेशन्स जैसे कॉन्टैक्ट ढूंढना या एकल ईमेल भेजना के लिए डायरेक्ट Brevo MCP टूल्स का उपयोग करें।
स्किल्स और एजेंट्स का संयोजन
एक एजेंट स्किल्स (MCP टूल्स के रूप में) और डायरेक्ट 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---यह एजेंट्स को सामान्य पैटर्न के लिए उच्च-स्तरीय ऑटोमेशन (स्किल्स) देता है जबकि कस्टम तर्क के लिए निम्न-स्तरीय एक्सेस (Brevo MCP) बनाए रखता है।
पूर्ण विवरण के लिए एजेंट विनिर्देशन फ़ॉर्मेट और एजेंट्स बनाना देखें।
सर्वोत्तम प्रथाएं
Tip
सेमांटिक वर्ज़निंग का उपयोग करके अपने स्किल्स को वर्जन करें। ब्रेकिंग बदलावों के लिए एक प्रमुख संस्करण बंप की आवश्यकता होती है।
- स्किल्स को केंद्रित रखें - एक स्किल को एक काम अच्छी तरह से करना चाहिए
- वर्णनात्मक नामों का उपयोग करें -
abandoned-cart-recoveryन किacr - स्थितियों का दस्तावेज़ करें - समझाएं कि प्रत्येक स्थिति क्यों मौजूद है
- त्रुटियों को नरमी से हैंडल करें - गैर-महत्वपूर्ण कार्रवाइयों के लिए
on_error: continueका उपयोग करें - छोटे दर्शकों के साथ परीक्षण करें - विकास के दौरान
status: experimentalका उपयोग करें - उन स्किल्स के लिए MCP एक्सपोज़र जोड़ें जिन्हें एजेंट्स को सीधे आमंत्रित करने में सक्षम होना चाहिए
अगले कदम
- MCP और एजेंट्स अवलोकन - स्किल्स एजेंटिक आर्किटेक्चर में कैसे फ़िट होती हैं
- एजेंट विनिर्देशन फ़ॉर्मेट - ऐसे एजेंट्स परिभाषित करें जो स्किल्स को टूल्स के रूप में उपयोग करते हैं
- एजेंट्स बनाना - अपना पहला मार्केटिंग एजेंट बनाएं
- डेटा सिंक स्किल्स - डेटा सिंक्रोनाइज़ेशन स्किल्स का पता लगाएं