Thông số kỹ thuật định dạng Skills

Định dạng skills.md xác định cách Skills được cấu trúc, cấu hình và thực thi. Thông số kỹ thuật này đảm bảo hành vi nhất quán trên tất cả Tajo Skills.

Cấu trúc tệp

Một skill được định nghĩa trong một tệp markdown duy nhất với 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...

Các trường Frontmatter

Các trường bắt buộc

TrườngKiểuMô tả
namestringĐịnh danh duy nhất (kebab-case)
versionstringPhiên bản Semantic (ví dụ: “2.1.0”)
descriptionstringMô tả ngắn (tối đa 160 ký tự)
categoryenumMột trong: data-sync, email-marketing, sms-whatsapp, loyalty, analytics, integrations
triggersarrayCác sự kiện kích hoạt skill này
actionsarrayCác thao tác skill này có thể thực hiện

Các trường tùy chọn

TrườngKiểuMặc địnhMô tả
statusenumstableMột trong: stable, beta, experimental
brevoEndpointsarray[]Các Brevo API endpoints được sử dụng
permissionsarray[]Các quyền Brevo API cần thiết
relatedSkillsarray[]ID của các skills liên quan
featuredbooleanfalseNổi bật trong danh mục skill

Triggers

Triggers xác định những sự kiện nào kích hoạt skill.

Trigger sự kiện

triggers:
- event: cart_abandoned
conditions:
- cart_value: "> 50" # Giá trị giỏ hàng tối thiểu
- items_count: ">= 1" # Ít nhất một mặt hàng
- time_since_activity: "> 30m" # 30 phút không hoạt động
debounce: 5m # Chờ 5 phút trước khi kích hoạt lại

Trigger lịch trình

triggers:
- schedule: "0 9 * * *" # Biểu thức Cron (hàng ngày lúc 9 giờ sáng)
timezone: "America/New_York"
- schedule: every_hour
- schedule: every_day

Trigger Webhook

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

Toán tử điều kiện

Toán tửMô tảVí dụ
=Bằngstatus: "active"
!=Không bằngstatus: "!= deleted"
>Lớn hơncart_value: "> 50"
>=Lớn hơn hoặc bằngitems: ">= 1"
<Nhỏ hơnage: "< 30"
<=Nhỏ hơn hoặc bằngquantity: "<= 10"
containsChuỗi chứaemail: "contains @gmail.com"
starts_withTiền tố chuỗiname: "starts_with Dr."
inGiá trị trong danh sáchcountry: "in US,CA,UK"

Actions

Actions xác định các thao tác mà skill thực hiện.

Định nghĩa 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 # hoặc 'stop'

Các loại Action

LoạiMô tả
brevo/send-emailGửi email giao dịch
brevo/send-smsGửi tin nhắn SMS
brevo/send-whatsappGửi tin nhắn WhatsApp
brevo/create-contactTạo liên hệ mới
brevo/update-contactCập nhật thuộc tính liên hệ
brevo/delete-contactXóa liên hệ
brevo/add-to-listThêm liên hệ vào danh sách
brevo/remove-from-listXóa liên hệ khỏi danh sách
brevo/track-eventTheo dõi sự kiện tùy chỉnh
http/requestTạo yêu cầu HTTP
transform/mapChuyển đổi dữ liệu
control/delayChờ trước khi tiếp tục
control/conditionPhân nhánh dựa trên điều kiện

Biến mẫu

Sử dụng cú pháp {{ }} để tham chiếu dữ liệu:

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

Các bộ lọc có sẵn

Bộ lọcMô tảVí dụ
defaultGiá trị mặc định{{ name | default: 'Guest' }}
uppercaseChữ hoa{{ name | uppercase }}
lowercaseChữ thường{{ email | lowercase }}
capitalizeViết hoa chữ đầu{{ name | capitalize }}
truncateCắt ngắn chuỗi{{ desc | truncate: 100 }}
dateĐịnh dạng ngày{{ date | date: 'YYYY-MM-DD' }}
currencyĐịnh dạng tiền tệ{{ price | currency: 'EUR' }}
mapMap thuộc tính mảng{{ items | map: 'name' }}
joinNối mảng{{ tags | join: ', ' }}
firstPhần tử đầu tiên của mảng{{ items | first }}
lastPhần tử cuối cùng của mảng{{ items | last }}
sizeĐộ dài mảng/chuỗi{{ items | size }}

Quyền

Xác định các quyền Brevo API cần thiết:

permissions:
- contacts:read # Đọc dữ liệu liên hệ
- contacts:write # Tạo/cập nhật liên hệ
- email:send # Gửi email giao dịch
- sms:send # Gửi tin nhắn SMS
- lists:write # Quản lý danh sách liên hệ
- events:write # Theo dõi sự kiện

Ví dụ đầy đủ

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

Hiển thị MCP Tool

Skills có thể được hiển thị dưới dạng MCP tools, cho phép AI agents có thể gọi chúng. Thêm trường mcp vào frontmatter của bạn:

---
name: abandoned-cart-recovery
version: 3.0.0
description: Recover abandoned shopping carts with a multi-step email sequence
category: email-marketing
# Cấu hình 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
---

Cách hoạt động của việc hiển thị MCP

Khi một skill có trường mcp, nó trở thành một tool mà AI agents có thể khám phá và gọi:

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

Các trường MCP

TrườngKiểuMô tả
mcp.tool_namestringTên MCP tool (định dạng: tajo/skill-name)
mcp.descriptionstringMô tả hiển thị cho AI agents trong quá trình khám phá tool
mcp.inputSchemaobjectJSON Schema xác định các tham số đầu vào của tool
mcp.brevo_serversarrayCác mô-đun Brevo MCP server mà skill này cần

Skills so với Direct MCP Tools

Khía cạnhSkill dưới dạng MCP ToolDirect Brevo MCP
Tính trừu tượngCao, agent nói “khôi phục giỏ hàng này”Thấp, agent phải gọi từng Brevo endpoint
Độ phức tạpĐóng gói logic nhiều bướcAgent phải điều phối từng bước
Biện pháp bảo vệTích hợp vào skill (điều kiện, debounce)Agent phải tự triển khai
Phù hợp nhấtQuy trình có thể lặp lạiThao tác một lần

Tip

Sử dụng Skills dưới dạng MCP tools cho các quy trình phức tạp, nhiều bước mà agents không nên tự tạo lại mỗi lần. Sử dụng direct Brevo MCP tools cho các thao tác đơn giản, một lần như tra cứu liên hệ hoặc gửi một email.

Kết hợp Skills và Agents

Một agent có thể sử dụng cả Skills (dưới dạng MCP tools) và Brevo MCP modules trực tiếp:

# Agent spec
---
name: retention-agent
tools:
# Tajo Skills dưới dạng MCP tools
- tajo/recover-abandoned-cart
- tajo/customer-sync
- tajo/win-back-sequence
# Direct Brevo MCP modules
- brevo_contacts
- brevo_campaign_analytics
- brevo_segments
---

Điều này cung cấp cho agents tự động hóa cấp cao (Skills) cho các mẫu phổ biến trong khi vẫn giữ quyền truy cập cấp thấp (Brevo MCP) cho logic tùy chỉnh.

Xem Định dạng thông số kỹ thuật AgentXây dựng Agents để biết thông tin đầy đủ.

Thực tiễn tốt nhất

Tip

Đánh phiên bản skills của bạn bằng cách sử dụng semantic versioning. Các thay đổi phá vỡ tương thích yêu cầu tăng phiên bản chính.

  1. Giữ skills tập trung - Một skill nên làm tốt một việc
  2. Sử dụng tên mô tả - abandoned-cart-recovery không phải acr
  3. Ghi lại điều kiện - Giải thích lý do tại sao mỗi điều kiện tồn tại
  4. Xử lý lỗi duyên dáng - Sử dụng on_error: continue cho các actions không quan trọng
  5. Kiểm tra với đối tượng nhỏ - Sử dụng status: experimental trong quá trình phát triển
  6. Thêm hiển thị MCP cho các skills mà agents nên có thể gọi trực tiếp

Bước tiếp theo

Subscribe to updates

developer-docs

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

auto-detect
Trợ lý AI

Xin chào! Hãy hỏi tôi về tài liệu.