ข้อกำหนดรูปแบบ Skills

รูปแบบ skills.md กำหนดวิธีที่ Skills ถูกจัดโครงสร้าง กำหนดค่า และดำเนินการ ข้อกำหนดนี้รับประกันพฤติกรรมที่สม่ำเสมอใน Tajo Skills ทั้งหมด

โครงสร้างไฟล์

Skill ถูกกำหนดในไฟล์ markdown ไฟล์เดียวที่มี YAML frontmatter:

---
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เวอร์ชัน Semantic (เช่น “2.1.0”)
descriptionstringคำอธิบายสั้น (สูงสุด 160 ตัวอักษร)
categoryenumหนึ่งใน: data-sync, email-marketing, sms-whatsapp, loyalty, analytics, integrations
triggersarrayเหตุการณ์ที่เปิดใช้งาน Skill นี้
actionsarrayการดำเนินการที่ Skill นี้สามารถทำได้

ฟิลด์ที่ไม่บังคับ

ฟิลด์ประเภทค่าเริ่มต้นคำอธิบาย
statusenumstableหนึ่งใน: stable, beta, experimental
brevoEndpointsarray[]Brevo API endpoints ที่ใช้
permissionsarray[]สิทธิ์ Brevo API ที่จำเป็น
relatedSkillsarray[]ID ของ Skills ที่เกี่ยวข้อง
featuredbooleanfalseเน้นในแคตตาล็อก Skill

Triggers

Triggers กำหนดว่าเหตุการณ์ใดเปิดใช้งาน Skill

Trigger เหตุการณ์

triggers:
- event: cart_abandoned
conditions:
- cart_value: "> 50" # มูลค่าตะกร้าขั้นต่ำ
- items_count: ">= 1" # อย่างน้อยหนึ่งรายการ
- time_since_activity: "> 30m" # ไม่มีกิจกรรม 30 นาที
debounce: 5m # รอ 5 นาทีก่อนทริกเกอร์ใหม่

Trigger กำหนดเวลา

triggers:
- schedule: "0 9 * * *" # Cron expression (ทุกวันเวลา 9 โมงเช้า)
timezone: "America/New_York"
- schedule: every_hour
- schedule: every_day

Trigger 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

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 # หรือ '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' }}
mapMap คุณสมบัติ array{{ items | map: 'name' }}
joinรวม array{{ tags | join: ', ' }}
firstรายการแรกใน array{{ items | first }}
lastรายการสุดท้ายใน array{{ items | last }}
sizeความยาว array/สตริง{{ items | size }}

สิทธิ์

กำหนดสิทธิ์ Brevo API ที่จำเป็น:

permissions:
- contacts:read # อ่านข้อมูลผู้ติดต่อ
- contacts:write # สร้าง/อัปเดตผู้ติดต่อ
- email:send # ส่งอีเมลธุรกรรม
- sms:send # ส่งข้อความ SMS
- lists:write # จัดการรายชื่อผู้ติดต่อ
- events:write # ติดตามเหตุการณ์

ตัวอย่างสมบูรณ์

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

Skills สามารถเปิดเผยเป็น MCP tools ทำให้ AI agents เรียกใช้ได้ เพิ่มฟิลด์ 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
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

เมื่อ Skill มีฟิลด์ mcp มันจะกลายเป็น tool ที่ AI agents สามารถค้นพบและเรียกใช้ได้:

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 tool (รูปแบบ: tajo/skill-name)
mcp.descriptionstringคำอธิบายที่แสดงต่อ AI agents ระหว่างการค้นพบ tool
mcp.inputSchemaobjectJSON Schema ที่กำหนดพารามิเตอร์อินพุตของ tool
mcp.brevo_serversarrayโมดูล Brevo MCP server ที่ Skill นี้ต้องการ

Skills เทียบกับ Direct MCP Tools

ด้านSkill เป็น MCP ToolDirect Brevo MCP
การแยกชั้นสูง agent พูดว่า “กู้คืนตะกร้านี้”ต่ำ agent ต้องเรียก Brevo endpoints แต่ละตัว
ความซับซ้อนบรรจุตรรกะหลายขั้นตอนAgent ต้องจัดการแต่ละขั้นตอน
การป้องกันฝังอยู่ใน Skill (เงื่อนไข debounce)Agent ต้องนำไปใช้เอง
เหมาะสำหรับเวิร์กโฟลว์ที่ทำซ้ำได้การดำเนินการแบบครั้งเดียว

Tip

ใช้ Skills เป็น MCP tools สำหรับเวิร์กโฟลว์ที่ซับซ้อนและหลายขั้นตอนที่ agents ไม่ควรสร้างใหม่ทุกครั้ง ใช้ direct Brevo MCP tools สำหรับการดำเนินการที่ง่ายและครั้งเดียว เช่น การค้นหาผู้ติดต่อหรือส่งอีเมลเดียว

การประกอบ Skills และ Agents

Agent สามารถใช้ทั้ง Skills (เป็น MCP tools) และ Brevo MCP modules โดยตรง:

# Agent spec
---
name: retention-agent
tools:
# Tajo Skills เป็น 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 มีการทำงานอัตโนมัติระดับสูง (Skills) สำหรับรูปแบบทั่วไป พร้อมยังคงการเข้าถึงระดับต่ำ (Brevo MCP) สำหรับตรรกะที่กำหนดเอง

ดู รูปแบบข้อกำหนด Agent และ การสร้าง Agents สำหรับรายละเอียดเต็ม

แนวทางปฏิบัติที่ดีที่สุด

Tip

ตั้งเวอร์ชัน Skills ของคุณ โดยใช้การกำหนดเวอร์ชันแบบ Semantic การเปลี่ยนแปลงที่ทำลายความเข้ากันได้ต้องการการเพิ่มเวอร์ชันหลัก

  1. ทำให้ Skills มีความเฉพาะเจาะจง - Skill หนึ่งควรทำสิ่งเดียวได้ดี
  2. ใช้ชื่อที่สื่อความหมาย - abandoned-cart-recovery ไม่ใช่ acr
  3. บันทึกเงื่อนไข - อธิบายว่าทำไมแต่ละเงื่อนไขจึงมีอยู่
  4. จัดการข้อผิดพลาดอย่างเหมาะสม - ใช้ on_error: continue สำหรับ actions ที่ไม่สำคัญ
  5. ทดสอบกับกลุ่มเล็ก - ใช้ status: experimental ระหว่างการพัฒนา
  6. เพิ่มการเปิดเผย MCP สำหรับ Skills ที่ agents ควรเรียกใช้โดยตรงได้

ขั้นตอนถัดไป

Subscribe to updates

developer-docs

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

auto-detect
ผู้ช่วย AI

สวัสดี! ถามฉันเกี่ยวกับเอกสารได้เลย