Hướng dẫn thêm kỹ năng vào thư viện của EzyAI
Back to ezyaiThư viện kỹ năng (Skill Library) là nơi lưu và chia sẻ các kỹ năng viết
bằng Markdown, ví dụ hướng dẫn cho AI agent, quy trình làm việc, mẫu prompt.
Kỹ năng trong thư viện được quản lý ở trang quản trị và có thể công khai ra
website để mọi người xem, sao chép hoặc tải về dưới dạng file
.md.Thư viện kỹ năng khác với kỹ năng AI:
| Thư viện kỹ năng | Kỹ năng AI | |
|---|---|---|
| Màn hình | /ezyai/skill-library | /ezyai/ai-skills |
| Mục đích | Lưu trữ, chia sẻ, công khai ra web | Gắn vào chat profile để điều khiển AI |
| Nội dung | Markdown, tối đa 30000 ký tự | Chỉ dẫn hệ thống + tool được phép |
| Phân loại | Theo danh mục | Không có |
| Post type | SKILL_LIBRARY | AI_SKILL |
Tổng quan
flowchart LR
A["Admin<br/>/ezyai/skill-library"] -->|thêm, sửa| S["Kỹ năng<br/>(post SKILL_LIBRARY)"]
S -->|thuộc| C["Danh mục<br/>(term SKILL_CATEGORY)"]
S --> ST{"Trạng thái"}
ST -->|DRAFT| D["Chỉ admin thấy"]
ST -->|INTERNAL_PUBLISHED| I["Dùng nội bộ,<br/>không hiện trên web"]
ST -->|PUBLISHED| P["Hiện trên web<br/>/ezyai/skill-library"]
P --> U["Người xem:<br/>xem, sao chép Markdown,<br/>tải file .md"]
Màn hình thư viện kỹ năng
Vào trang quản trị, mở menu EzyAI → Thư viện kỹ năng
(
/ezyai/skill-library). Màn hình gồm hai phần.Danh sách kỹ năng
Bảng hiển thị các kỹ năng với các cột ID, Tiêu đề, Slug,
Danh mục kỹ năng, Mô tả, Trạng thái, Cập nhật lúc và
Hành động.
- Lọc theo Trạng thái (để trống là tất cả, trừ các kỹ năng đã vào thùngrác), Danh mục kỹ năng và Từ khoá (tìm theo phần đầu tiêu đề).
- Chọn Số lượng mỗi trang: 30, 50, 100, 200, 500.
- Bấm vào slug để sao chép.
- Cột hành động có xem, sửa, xuất bản, xuất bản nội bộ, huỷ xuất bản vàxoá.
Danh mục kỹ năng
Bảng danh mục hiển thị ID, Tên, Trạng thái, Cập nhật lúc.
Bấm vào tên danh mục để lọc danh sách kỹ năng theo danh mục đó.
Danh mục được tạo tự động khi thêm hoặc sửa kỹ năng với một tên danh mục
mới, không cần tạo trước.
Thêm kỹ năng vào thư viện
Ở màn hình thư viện, bấm Thêm để mở form
/ezyai/skill-library/add.| Trường | Bắt buộc | Mô tả |
|---|---|---|
| Tiêu đề | Có | Tên ngắn gọn, rõ ràng, tối đa 300 ký tự, không trùng với kỹ năng khác |
| Mô tả | Không | Mô tả ngắn giúp người đọc biết kỹ năng dùng để làm gì |
| Danh mục kỹ năng | Không | Chọn danh mục có sẵn hoặc nhập tên mới để tạo, tối đa 256 ký tự; để trống nếu không phân loại |
| Nội dung | Có | Nội dung kỹ năng viết bằng Markdown, tối đa 30000 ký tự |
Form có ba nút lưu, mỗi nút lưu với một trạng thái:
| Nút | Trạng thái | Ý nghĩa |
|---|---|---|
| Lưu | DRAFT | Bản nháp, chỉ thấy ở trang quản trị |
| Xuất bản nội bộ | INTERNAL_PUBLISHED | Dùng trong nội bộ, xem được ở trang quản trị nhưng không hiển thị công khai trên web |
| Xuất bản | PUBLISHED | Công khai, ai cũng xem được trên web |
Lưu thành công sẽ chuyển sang trang chi tiết của kỹ năng vừa tạo.
Lỗi thường gặp khi lưu
| Lỗi | Nguyên nhân |
|---|---|
title: required | Chưa nhập tiêu đề |
title: overLength | Tiêu đề dài hơn 300 ký tự |
title: duplicated | Đã có kỹ năng khác (chưa vào thùng rác) có cùng slug, tức tiêu đề giống hoặc gần giống |
categoryName: overLength | Tên danh mục dài hơn 256 ký tự |
content: required | Chưa nhập nội dung |
content: overLength | Nội dung dài hơn 30000 ký tự |
status: invalid | Trạng thái không phải DRAFT, INTERNAL_PUBLISHED, PUBLISHED |
Tiêu đề được dùng để sinh slug, slug cũng là tên file khi người xem tải kỹ
năng về (
[slug].md). Vì vậy nên đặt tiêu đề ngắn, rõ ràng, không trùng.Điều gì xảy ra khi lưu
sequenceDiagram
participant A as Admin
participant API as Admin API
participant T as TermService
participant P as PostService
A->>API: POST /ezyai/api/v1/skill-library/add
API->>API: Kiểm tra tiêu đề, danh mục, nội dung, trạng thái
API->>T: Tạo danh mục SKILL_CATEGORY nếu chưa có
T-->>API: categoryId
API->>P: Thêm bài viết SKILL_LIBRARY<br/>(nội dung Markdown, gắn danh mục)
P-->>API: createdId
API-->>A: Chuyển sang trang chi tiết
Kỹ năng được lưu như một bài viết của ezyarticle với
type = SKILL_LIBRARY,kiểu nội dung
MARKDOWN, tắt bình luận: tiêu đề là tiêu đề bài viết, mô tảlà phần tóm tắt, danh mục là term
SKILL_CATEGORY.Viết nội dung kỹ năng
Một số gợi ý:
- Bắt đầu bằng một đoạn ngắn nói kỹ năng giải quyết việc gì, dùng khi nào.
- Chia thành các mục rõ ràng: điều kiện, các bước, ví dụ, lưu ý.
- Dùng code block cho lệnh, đoạn mã, mẫu prompt để người xem sao chép đúng.
- Không đưa thông tin nhạy cảm (api key, mật khẩu, token, dữ liệu cá nhân),nhất là với kỹ năng sẽ xuất bản công khai.
Ví dụ:
Kỹ năng này giúp AI viết release notes từ danh sách commit. ## Khi nào dùng Khi cần tổng hợp thay đổi của một phiên bản để gửi cho người dùng. ## Các bước 1. Nhóm commit theo loại: tính năng mới, sửa lỗi, cải tiến. 2. Viết mỗi thay đổi thành một dòng, tập trung vào lợi ích cho người dùng. 3. Bỏ qua các commit chỉ sửa nội bộ (refactor, test, CI). ## Mẫu ```text ## Phiên bản x.y.z ### Tính năng mới - ... ```
Xem, sửa và đổi trạng thái
Trang chi tiết (
/ezyai/skill-library/{skillId}) hiển thị tiêu đề, mô tả,danh mục, trạng thái và nội dung của kỹ năng, kèm các nút:
- Sửa: mở form
/ezyai/skill-library/{skillId}/edit, các trường giốngform thêm. Khi sửa, tiêu đề không bị kiểm tra trùng. - Mở trình soạn thảo bài viết: mở kỹ năng trong trình soạn thảo bàiviết của ezyarticle (
/ezyarticle/posts/{skillId}/edit), dùng khi cầncác tính năng soạn thảo đầy đủ hơn. - Xuất bản, Xuất bản nội bộ, Huỷ xuất bản: đổi trạng thái kỹnăng mà không cần mở form sửa.
- Xoá: chuyển kỹ năng vào thùng rác sau khi xác nhận. Kỹ năng trongthùng rác không còn hiện trong danh sách mặc định và không chặn việc tạokỹ năng mới cùng tiêu đề.
stateDiagram-v2
[*] --> DRAFT: Lưu
[*] --> INTERNAL_PUBLISHED: Xuất bản nội bộ
[*] --> PUBLISHED: Xuất bản
DRAFT --> PUBLISHED: Xuất bản
DRAFT --> INTERNAL_PUBLISHED: Xuất bản nội bộ
INTERNAL_PUBLISHED --> PUBLISHED: Xuất bản
PUBLISHED --> INTERNAL_PUBLISHED: Xuất bản nội bộ
PUBLISHED --> DRAFT: Huỷ xuất bản
INTERNAL_PUBLISHED --> DRAFT: Huỷ xuất bản
DRAFT --> TRASH: Xoá
INTERNAL_PUBLISHED --> TRASH: Xoá
PUBLISHED --> TRASH: Xoá
Thư viện kỹ năng trên website
Khi
ezyai-web-plugin được cài, website có trang công khai/ezyai/skill-library:- Chỉ hiển thị kỹ năng ở trạng thái
PUBLISHEDvà danh mục đangACTIVATED. - Người xem lọc theo danh mục, tìm theo từ khoá, phân trang.
- Mở một kỹ năng để xem nội dung, Sao chép Markdown hoặc Tải vềdưới dạng file
[slug].md. - Có thể dẫn link trực tiếp tới một danh mục hoặc kết quả tìm kiếm, ví dụ
/ezyai/skill-library?categoryId=1&keyword=release.
Trang web lấy dữ liệu từ hai API công khai:
| Method | Đường dẫn | Mô tả |
|---|---|---|
GET | /api/v1/skill-library/categories | Danh mục đang ACTIVATED, lọc theo keyword, mặc định 12 mục mỗi trang |
GET | /api/v1/skill-library/skills | Kỹ năng PUBLISHED, lọc theo categoryId, keyword, mặc định 12 mục mỗi trang |
API quản trị
Tất cả nằm dưới tiền tố
/ezyai/api/v1 của admin, yêu cầu đăng nhập vàquyền tính năng
skill_library_management.| Method | Đường dẫn | Mô tả |
|---|---|---|
GET | /skill-library | Danh sách kỹ năng, lọc theo status, categoryId, keyword, phân trang |
GET | /skill-library/categories | Danh sách danh mục, lọc theo status, keyword |
GET | /skill-library/{skillId} | Chi tiết kỹ năng |
POST | /skill-library/add | Thêm kỹ năng, trả về createdId |
PUT | /skill-library/{skillId} | Sửa kỹ năng |
PUT | /skill-library/{skillId}/publish | Xuất bản |
PUT | /skill-library/{skillId}/internal-publish | Xuất bản nội bộ |
PUT | /skill-library/{skillId}/unpublish | Huỷ xuất bản |
DELETE | /skill-library/{skillId} | Chuyển vào thùng rác |
Ví dụ body khi thêm kỹ năng:
{
"title": "Viết release notes",
"description": "Tổng hợp commit thành release notes cho người dùng",
"categoryName": "Viết tài liệu",
"content": "Kỹ năng này giúp AI viết release notes từ danh sách commit...",
"status": "PUBLISHED"
}