Các khả năng được hỗ trợ

Điều kiện tiên quyết

Trước khi đọc trang này, hãy đảm bảo bạn đã chuẩn bị môi trường theo Bắt đầu nhanh với AI Development Plugin.

Khả năng AI Development Plugin được xây dựng dựa trên Skill nocobase-plugin-development. Nếu bạn đã khởi tạo qua NocoBase CLI (nb init), Skill này sẽ được cài đặt tự động.

Dưới đây liệt kê tất cả những việc AI hiện có thể giúp bạn. Mỗi khả năng đều kèm prompt mẫu, bạn có thể trực tiếp sao chép, chỉnh sửa mô tả nhu cầu là dùng được.

Lưu ý
  • NocoBase đang chuyển từ client (v1) sang client-v2, hiện client-v2 vẫn đang trong quá trình phát triển. Mã client do AI Development sinh ra dựa trên client-v2, chỉ có thể dùng dưới đường dẫn /v2/, dùng để trải nghiệm trước, không khuyến nghị dùng trực tiếp trong môi trường production.
  • Mã do AI sinh ra không phải lúc nào cũng đúng 100%, khuyến nghị review trước khi enable. Nếu gặp vấn đề khi runtime, có thể gửi thông báo lỗi cho AI để nó tiếp tục kiểm tra và sửa — thường vài lượt trao đổi là giải quyết được.
  • Khuyến nghị dùng các mô hình lớn họ GPT hoặc Claude để phát triển, hiệu quả tốt nhất. Các mô hình khác cũng có thể dùng, tuy nhiên chất lượng sinh có thể có sự khác biệt.

Best Practices

  • Nói rõ với AI là tạo hoặc sửa đổi một plugin NocoBase, và cung cấp tên plugin — ví dụ "Hãy dùng nocobase-plugin-development skill giúp tôi phát triển một plugin NocoBase, tên là @my-scope/plugin-rating". Nếu không cung cấp tên plugin, AI có thể không biết sinh code vào đâu.
  • Trong prompt nói rõ là dùng skill nocobase-plugin-development — ví dụ "Hãy dùng nocobase-plugin-development skill giúp tôi phát triển một plugin NocoBase…". Như vậy AI Agent có thể trực tiếp đọc khả năng của Skills, tránh việc vào plan mode mà bỏ qua Skills.
  • Chạy AI Agent ở thư mục gốc của repository mã nguồn NocoBase — như vậy AI có thể tự động tìm cấu trúc dự án, dependencies và các plugin sẵn có. Nếu bạn không ở thư mục gốc mã nguồn, cần nói thêm với AI Agent về đường dẫn repository mã nguồn.

Mục lục nhanh

Tôi muốn…AI có thể giúp bạn
Tạo một plugin mớiSinh scaffold hoàn chỉnh, bao gồm cấu trúc thư mục frontend/backend
Định nghĩa bảng dữ liệuSinh định nghĩa Collection, hỗ trợ tất cả kiểu Field và quan hệ liên kết
Tạo một Block tùy chỉnhSinh BlockModel + bảng cấu hình + đăng ký vào menu "Thêm Block"
Tạo một Field tùy chỉnhSinh FieldModel + ràng buộc với interface Field
Thêm nút Action tùy chỉnhSinh ActionModel + popup/drawer/hộp xác nhận
Tạo trang cài đặt pluginSinh form frontend + API backend + lưu trữ
Viết API tùy chỉnhSinh Resource Action + đăng ký route + cấu hình ACL
Cấu hình quyềnSinh quy tắc ACL, kiểm soát truy cập theo vai trò
Hỗ trợ đa ngôn ngữTự động sinh language pack tiếng Trung và tiếng Anh
Viết script nâng cấpSinh Migration, hỗ trợ DDL và migration dữ liệu

Scaffold plugin

AI có thể dựa vào mô tả nhu cầu của bạn, sinh ra một cấu trúc thư mục plugin NocoBase hoàn chỉnh — bao gồm các file entry frontend/backend, định nghĩa kiểu và cấu hình cơ bản.

Prompt mẫu:

Hãy giúp tôi tạo một plugin NocoBase, tên plugin là @my-scope/plugin-todo

AI sẽ chạy yarn pm create @my-scope/plugin-todo và sinh thư mục chuẩn:

packages/plugins/@my-scope/plugin-todo/
├── src/
│   ├── server/
│   │   └── plugin.ts
│   ├── client-v2/
│   │   └── plugin.tsx
│   └── locale/
│       ├── zh-CN.json
│       └── en-US.json
├── package.json
└── ...

Định nghĩa bảng dữ liệu

AI hỗ trợ sinh định nghĩa Collection cho tất cả kiểu Field của NocoBase, bao gồm cả các quan hệ liên kết (one-to-many, many-to-many, v.v.).

Prompt mẫu:

Hãy dùng nocobase-plugin-development skill giúp tôi phát triển một plugin NocoBase, tên là @my-scope/plugin-order,
sau đó định nghĩa bên trong một bảng "đơn hàng", các Field bao gồm: Mã đơn hàng (auto increment), tên Khách hàng (string),
số tiền (decimal), trạng thái (single select: chờ xử lý/đang xử lý/đã hoàn thành), thời gian tạo.
Đơn hàng và Khách hàng là quan hệ many-to-one.

AI sẽ sinh định nghĩa defineCollection, bao gồm kiểu Field, giá trị mặc định, cấu hình liên kết, v.v.

Block tùy chỉnh

Block là cách mở rộng cốt lõi nhất của frontend NocoBase. AI có thể giúp bạn sinh model Block, bảng cấu hình và đăng ký menu.

Prompt mẫu:

Hãy dùng nocobase-plugin-development skill giúp tôi phát triển một plugin NocoBase, tên là @my-scope/plugin-simple-block,
tạo một Block hiển thị tùy chỉnh (BlockModel), Người dùng có thể nhập nội dung HTML trong bảng cấu hình,
Block sẽ render những HTML này ra. Đăng ký Block này vào menu "Thêm Block".

AI sẽ sinh BlockModel, tạo bảng cấu hình thông qua registerFlow + uiSchema, và đăng ký vào menu "Thêm Block".

Xem ví dụ đầy đủ tại Tạo một Block hiển thị tùy chỉnh.

Component Field tùy chỉnh

Nếu component render Field tích hợp sẵn của NocoBase không đáp ứng nhu cầu, AI có thể giúp bạn tạo một component hiển thị tùy chỉnh, thay thế cách render Field mặc định.

Prompt mẫu:

Hãy dùng nocobase-plugin-development skill giúp tôi phát triển một plugin NocoBase, tên là @my-scope/plugin-rating,
tạo một component hiển thị Field tùy chỉnh (FieldModel), render Field kiểu integer thành biểu tượng ngôi sao,
hỗ trợ 1-5 điểm, click vào sao có thể trực tiếp sửa giá trị đánh giá và lưu vào cơ sở dữ liệu.

Hiệu ứng hiển thị component Rating

AI sẽ sinh FieldModel tùy chỉnh, thay thế component render mặc định của Field integer.

Action tùy chỉnh

Nút Action có thể xuất hiện ở đầu Block (cấp collection), ở cột Action của mỗi hàng trong bảng (cấp record), hoặc xuất hiện đồng thời ở cả hai vị trí. Sau khi click có thể bật toast, mở popup form, gọi API, v.v.

Prompt mẫu:

Hãy dùng nocobase-plugin-development skill giúp tôi phát triển một plugin NocoBase, tên là @my-scope/plugin-simple-action,
tạo ba nút Action tùy chỉnh (ActionModel):
1. Một nút cấp collection, xuất hiện ở đầu Block, click xong bật toast thành công
2. Một nút cấp record, xuất hiện ở cột Action của mỗi hàng trong bảng, click xong hiển thị ID của record hiện tại
3. Một nút cấp both, đồng thời xuất hiện ở cả hai vị trí, click xong bật toast thông tin

AI sẽ sinh ActionModel, kiểm soát vị trí xuất hiện của nút thông qua ActionSceneEnum, xử lý sự kiện click thông qua registerFlow({ on: 'click' }).

Xem ví dụ đầy đủ tại Tạo một nút Action tùy chỉnh.

Trang cài đặt plugin

Nhiều plugin cần một trang cài đặt để Người dùng cấu hình tham số — như API Key của dịch vụ bên thứ ba, địa chỉ Webhook, v.v.

Prompt mẫu:

Hãy dùng nocobase-plugin-development skill giúp tôi phát triển một plugin NocoBase, tên là @my-scope/plugin-settings-page,
tạo một trang cài đặt plugin, đăng ký một entry "Cấu hình dịch vụ bên ngoài" trong menu "Cấu hình plugin", bao gồm hai Tab:
1. Tab "Cấu hình API": form bao gồm API Key (string, bắt buộc), API Secret (password, bắt buộc), Endpoint (string, tùy chọn), lưu vào cơ sở dữ liệu thông qua API backend
2. Tab "Giới thiệu": hiển thị tên plugin và thông tin phiên bản
Frontend dùng component form Ant Design, backend định nghĩa hai interface externalApi:get và externalApi:set.

Hiệu ứng trang cài đặt plugin

AI sẽ sinh component trang cài đặt frontend, Resource Action backend, định nghĩa bảng dữ liệu và cấu hình ACL.

Xem ví dụ đầy đủ tại Tạo một trang cài đặt plugin.

API tùy chỉnh

Nếu interface CRUD tích hợp sẵn không đủ dùng, AI có thể giúp bạn viết REST API tùy chỉnh. Dưới đây là một ví dụ đầy đủ về tương tác frontend-backend — backend định nghĩa bảng dữ liệu và API, frontend tạo Block tùy chỉnh hiển thị dữ liệu.

Prompt mẫu:

Hãy dùng nocobase-plugin-development skill giúp tôi phát triển một plugin NocoBase, tên là @my-scope/plugin-todo,
tạo một plugin quản lý dữ liệu Todo có tương tác frontend-backend:
1. Backend định nghĩa một bảng todoItems, các Field bao gồm title (string), completed (bool), priority (string, mặc định medium)
2. Frontend tạo một TableBlock tùy chỉnh, chỉ hiển thị dữ liệu của todoItems
3. Field priority hiển thị bằng Tag màu sắc (high màu đỏ, medium màu cam, low màu xanh lá)
4. Thêm một nút "Tạo Todo mới", click xong bật form để tạo record
5. Người dùng đã đăng nhập có thể thực hiện tất cả thao tác CRUD

Hiệu ứng plugin quản lý dữ liệu Todo

AI sẽ sinh định nghĩa Collection phía server, Resource Action, cấu hình ACL, cũng như TableBlockModel, FieldModel tùy chỉnh và ActionModel phía client.

Xem ví dụ đầy đủ tại Tạo một plugin quản lý dữ liệu có tương tác frontend-backend.

Cấu hình quyền

AI sẽ tự động cấu hình các quy tắc ACL hợp lý cho API và resource được sinh ra. Bạn cũng có thể chỉ định rõ yêu cầu quyền trong prompt:

Prompt mẫu:

Hãy dùng nocobase-plugin-development skill giúp tôi phát triển một plugin NocoBase, tên là @my-scope/plugin-todo,
định nghĩa một bảng dữ liệu todoItems (Field title, completed, priority),
yêu cầu quyền: Người dùng đã đăng nhập có thể xem, tạo và chỉnh sửa, chỉ vai trò admin mới có thể xóa.

AI sẽ cấu hình các quy tắc truy cập tương ứng phía server thông qua this.app.acl.allow().

Quốc tế hóa

AI mặc định sẽ sinh hai language pack tiếng Trung và tiếng Anh (zh-CN.jsonen-US.json), bạn không cần phải nhắc thêm.

Nếu cần ngôn ngữ khác:

Hãy dùng nocobase-plugin-development skill giúp tôi phát triển một plugin NocoBase, tên là @my-scope/plugin-order,
cần hỗ trợ ba language pack tiếng Trung, tiếng Anh và tiếng Nhật

Script nâng cấp

Khi plugin cần cập nhật cấu trúc cơ sở dữ liệu hoặc migration dữ liệu, AI có thể giúp bạn sinh script Migration.

Prompt mẫu:

Hãy dùng nocobase-plugin-development skill giúp tôi viết một script nâng cấp cho plugin NocoBase @my-scope/plugin-order,
thêm một Field "ghi chú" (long text, tùy chọn) vào bảng "đơn hàng", và điền mặc định "không" cho Field ghi chú của các đơn hàng hiện có.

AI sẽ sinh file Migration có version number, bao gồm thao tác DDL và logic migration dữ liệu.

Liên kết liên quan