Hướng dẫn tạo một kỹ năng AI trong EzyAI
Back to ezyaiKỹ năng AI (AI skill) là một bộ chỉ dẫn được gắn vào chat profile để quyết
định AI đóng vai trò gì, trả lời theo cách nào và được phép gọi những công
cụ (tool) nào. Một kỹ năng gồm hai phần:
- Chỉ dẫn hệ thống (system prompt): đoạn văn bản được gửi kèm mọi tinnhắn để AI biết vai trò và cách trả lời, người dùng không nhìn thấy.
- Tên công cụ được phép: danh sách tool AI được gọi khi trả lời, ví dụtra cứu bài viết kiến thức, tìm sản phẩm.
Kỹ năng được quản lý ở màn hình EzyAI → Các kỹ năng AI
(
/ezyai/ai-skills).Kỹ năng hoạt động thế nào
flowchart LR
subgraph Skill["Kỹ năng AI"]
SP["Chỉ dẫn hệ thống"]
TL["Tên công cụ được phép"]
end
Skill -->|gắn vào| P["Chat profile"]
P --> CHAT["Mỗi lượt chat"]
SP --> SM["System message gửi cho AI"]
TL --> TOOLS["Tool AI được gọi"]
CHAT --> SM
CHAT --> TOOLS
Khi người dùng chat với một profile:
- Chỉ dẫn hệ thống của tất cả kỹ năng gắn với profile được ghép lại và đặttrước system message của lượt chat.
- AI chỉ thấy các tool nằm trong hợp các tool được phép của những kỹnăng đó. Không có kỹ năng nào cho phép tool thì AI trả lời thuần văn bản,không gọi tool.
- Nếu cấu hình topic guard (
ezyai_topic_guard_allowed_topics), chỉ dẫngiới hạn chủ đề được thêm vào sau cùng.
Ví dụ một profile gắn hai kỹ năng:
| Kỹ năng | Chỉ dẫn hệ thống | Tool được phép |
|---|---|---|
| Tư vấn sản phẩm | Bạn là nhân viên tư vấn, luôn tìm sản phẩm trước khi trả lời | search_knowledge_data_list, search_knowledge_data_by_type_and_id |
| Giọng văn thương hiệu | Xưng "mình", gọi khách là "bạn", trả lời ngắn gọn | (không có) |
AI sẽ nhận cả hai chỉ dẫn và được dùng hai tool tìm kiếm.
Danh sách kỹ năng
Màn hình
/ezyai/ai-skills hiển thị các kỹ năng với cột ID, **Tênhiển thị, Trạng thái, Cập nhật lúc và Hành động** (xem, sửa,
xoá).
- Lọc theo Trạng thái: tất cả, bản nháp, đã xuất bản, ...
- Chọn Số lượng mỗi trang: 12, 24, 50, 100, 200.
- Dùng nút Trước / Sau để chuyển trang.
Tạo kỹ năng
Bấm Thêm ở màn hình danh sách để mở form
/ezyai/ai-skills/add.| Trường | Bắt buộc | Mô tả |
|---|---|---|
| Tên hiển thị | Có | Chỉ hiển thị trong danh sách và giao diện quản trị, không gửi cho AI |
| Mô tả | Không | Ghi chú cho quản trị viên, không gửi cho AI và không dùng để chọn kỹ năng |
| Chỉ dẫn hệ thống | Không | Nội dung gửi cho AI ở mọi tin nhắn; để trống thì kỹ năng không thêm chỉ dẫn nào |
| Trạng thái | Có | Bản nháp (DRAFT) hoặc Đã xuất bản (PUBLISHED) |
Bấm Lưu (hoặc nhấn Enter trong ô nhập). Lưu thành công sẽ chuyển sang
trang chi tiết của kỹ năng vừa tạo. Nếu thiếu Tên hiển thị, form báo
lỗi
displayName: required.Kỹ năng được lưu như một bài viết có
type = AI_SKILL: tên hiển thị làtiêu đề, mô tả là phần tóm tắt, chỉ dẫn hệ thống là nội dung. Mỗi lần thêm,
sửa, xoá đều được ghi lịch sử bài viết.
Viết chỉ dẫn hệ thống
Một số gợi ý để chỉ dẫn hiệu quả:
- Nêu vai trò rõ ràng: AI là ai, phục vụ ai, mục tiêu là gì.
- Nói rõ khi nào dùng tool: ví dụ "khi khách hỏi về sản phẩm, luôn tìmtrong dữ liệu cửa hàng trước khi trả lời". AI chỉ gọi được tool đã đượctick ở phần công cụ được phép.
- Quy định cách trình bày: độ dài, giọng văn, ngôn ngữ, có kèm linknguồn hay không.
- Mỗi kỹ năng một mục đích: tách vai trò, giọng văn, chính sách thànhcác kỹ năng riêng để dễ tái sử dụng cho nhiều profile.
- Không đưa thông tin nhạy cảm (api key, mật khẩu, dữ liệu cá nhân) vàochỉ dẫn, vì nội dung này được gửi tới nhà cung cấp AI ở mọi tin nhắn.
Ví dụ:
Bạn là trợ lý tư vấn của cửa hàng. Trả lời bằng tiếng Việt, ngắn gọn, thân thiện. Khi khách hỏi về sản phẩm, bài viết hay chính sách, hãy dùng công cụ tìm kiếm dữ liệu của cửa hàng trước khi trả lời. Luôn giữ nguyên link nguồn trong câu trả lời. Nếu không tìm thấy thông tin, hãy nói rõ là chưa có thông tin thay vì tự đoán.
Chọn công cụ được phép
Công cụ được chọn ở trang chi tiết kỹ năng (
/ezyai/ai-skills/{skillId}),mục Tên công cụ được phép, không nằm trong form thêm/sửa.
- Chọn Nguồn công cụ:
Nguồn Lấy danh sách tool từ AdminCác tool đăng ký ở admin, qua /graphql/api/v1/mcp/toolsWebCác tool đăng ký ở web, qua /graphql/api/v1/mcp/web/toolsSocketCác tool trong zone socket, qua command mcpToolListcủa socket monitor (cần bật socket ở admin)Nguồn Lấy danh sách tool từ AdminCác tool đăng ký ở admin, qua /graphql/api/v1/mcp/toolsWebCác tool đăng ký ở web, qua /graphql/api/v1/mcp/web/toolsSocketCác tool trong zone socket, qua command mcpToolListcủa socket monitor (cần bật socket ở admin) - Tick các tool muốn cho phép. Di chuột lên tên tool để xem mô tả. Có nútChọn tất cả và Bỏ chọn tất cả.
- Có thể đổi nguồn để tick thêm tool ở nguồn khác, các lựa chọn trước đóvẫn được giữ.
- Bấm Lưu ở mục này để lưu danh sách tool.
Chọn nguồn theo nơi profile được dùng: chatbot chạy trong ezychat (khung
chat nhúng lên website) gọi AI từ socket plugin, nên chọn tool ở nguồn
Socket; chat thử ở trang quản trị chạy trong admin plugin.Tool có sẵn của EzyAI:
| Tool | Chức năng |
|---|---|
search_knowledge_data_list | Tìm dữ liệu tri thức (bài viết, sản phẩm, ...) theo từ khoá, trả về danh sách đoạn trích kèm link nguồn |
search_knowledge_data_by_type_and_id | Lấy chi tiết một mục tri thức theo loại và id/mã |
Các plugin khác có thể đăng ký thêm tool (cặp event handler
[tool]_mcp_tool_schema_event và [tool]_mcp_tool_event), tool mới sẽ xuấthiện ngay trong danh sách mà không cần sửa EzyAI.
sequenceDiagram
participant A as Admin
participant UI as Trang chi tiết kỹ năng
participant SRC as Nguồn tool<br/>(admin / web / socket)
participant API as Admin API
A->>UI: Mở trang chi tiết
UI->>API: GET /api/v1/ai-skills/{skillId}/allowed-tool-names
A->>UI: Chọn nguồn công cụ
UI->>SRC: Lấy danh sách tool
SRC-->>UI: name, description
A->>UI: Tick tool, bấm Lưu
UI->>API: PUT /api/v1/ai-skills/{skillId}/allowed-tool-names
Gắn kỹ năng vào chat profile
- Vào EzyAI → Các dịch vụ AI chat, chọn dịch vụ, mở chi tiết profile.
- Ở mục Các kỹ năng AI, gõ tên kỹ năng vào ô Tìm kỹ năng AI, chọnkỹ năng rồi bấm Thêm.
- Lặp lại để gắn nhiều kỹ năng. Có thể gỡ kỹ năng khỏi profile ở bảng bêndưới.
Thay đổi kỹ năng (chỉ dẫn, tool) có hiệu lực ngay ở lượt chat tiếp theo của
mọi profile đang gắn kỹ năng đó, không cần khởi động lại.
Xem thêm hướng dẫn tạo profile ở
Sửa và xoá kỹ năng
- Sửa: bấm biểu tượng sửa ở danh sách, hoặc vào
/ezyai/ai-skills/{skillId}/edit. Form giống form thêm. Danh sách toolđược sửa ở trang chi tiết. - Xoá: bấm Xoá ở danh sách hoặc trang chi tiết, xác nhận ở hộpthoại. Kỹ năng và toàn bộ tool được phép của nó bị xoá. Nên gỡ kỹ năngkhỏi các profile trước khi xoá.
Kiểm tra kỹ năng
Sau khi gắn kỹ năng vào profile, dùng khung Trò chuyện ở trang chi tiết
dịch vụ để thử:
| Hiện tượng | Hướng xử lý |
|---|---|
| AI không làm theo chỉ dẫn | Kiểm tra kỹ năng đã được gắn vào đúng profile và chỉ dẫn hệ thống không trống |
| AI không tìm dữ liệu của hệ thống | Kiểm tra đã tick tool tìm kiếm ở đúng nguồn, và chỉ dẫn có yêu cầu dùng tool |
| AI gọi tool nhưng trả lời thiếu | Tăng setting ezyai_max_allowed_tool_interactions (mặc định 2 vòng gọi tool) |
Không thấy tool ở nguồn Socket | Socket chưa được bật hoặc chưa kết nối, tải lại trang và kiểm tra cấu hình socket của admin |
API liên quan
Tất cả nằm dưới tiền tố
/ezyai/api/v1 của admin và yêu cầu đăng nhập.| Method | Đường dẫn | Mô tả |
|---|---|---|
GET | /ai-skills | Danh sách kỹ năng, lọc theo status, phân trang |
POST | /ai-skills/add | Thêm kỹ năng, trả về skillId |
PUT | /ai-skills/{skillId} | Sửa kỹ năng |
DELETE | /ai-skills/{skillId} | Xoá kỹ năng |
GET | /ai-skills/{skillId}/allowed-tool-names | Lấy danh sách tool được phép |
PUT | /ai-skills/{skillId}/allowed-tool-names | Lưu danh sách tool được phép |
Ví dụ body khi thêm kỹ năng:
{
"displayName": "Tư vấn sản phẩm",
"description": "Dùng cho chatbot bán hàng",
"systemPrompt": "Bạn là nhân viên tư vấn của cửa hàng...",
"status": "PUBLISHED"
}
Ví dụ body khi lưu tool được phép:
{
"allowedToolNames": [
"search_knowledge_data_list",
"search_knowledge_data_by_type_and_id"
]
}