Xây dựng skill tùy chỉnh đầu tiên trong OpenClaw

Xây dựng một SKILL.md hoạt động từ đầu. Từ một thư mục trống đến một skill đã được kiểm thử và đang chạy chỉ trong 15 phút - một công cụ định dạng ghi chú cuộc họp mà bạn thực sự sẽ sử dụng.

Hãy cùng xây dựng một thứ gì đó thực tế!

🔄 Tóm tắt nhanh: Trong bài học 1, bạn đã học được rằng các skill có 3 lớp: Siêu dữ liệu (tên + mô tả), hướng dẫn (nội dung SKILL.md) và các file được liên kết (script, tài liệu tham khảo, asset). Bây giờ hãy áp dụng kiến ​​thức đó vào thực tế.

Chúng ta sẽ xây dựng một công cụ định dạng ghi chú cuộc họp - một skill lấy các ghi chú cuộc họp thô và biến chúng thành một tài liệu có cấu trúc với những mục hành động, quyết định và các bước tiếp theo. Nó thiết thực, hữu ích và đủ đơn giản cho skill đầu tiên.

Đến cuối bài học này, bạn sẽ có một skill hoạt động trên agent của mình.

Bước 1: Tạo thư mục skill

Mỗi skill nằm trong thư mục riêng của nó. Tạo thư mục:

mkdir -p ~/.openclaw/skills/meeting-notes-formatter

Đối với Claude Code, đường dẫn sẽ là .claude/skills/meeting-notes-formatter/. Đối với VS Code Copilot, là .github/skills/meeting-notes-formatter/.

Bước 2: Viết frontmatter

Tạo một file có tên SKILL.md bên trong thư mục mới của bạn. Bắt đầu với frontmatter:

--- 
name: meeting-notes-formatter
description: >
  Định dạng các ghi chú cuộc họp thô thành một tài liệu có cấu trúc với những phần
  dành cho người tham dự, các quyết định chính, những mục hành động với người chịu trách nhiệm và các bước tiếp theo.
  Sử dụng khi người dùng chia sẻ ghi chú cuộc họp, yêu cầu sắp xếp
  biên bản cuộc họp hoặc muốn trích xuất các mục hành động từ một cuộc họp.
---

Hãy cùng phân tích lý do tại sao mô tả này hoạt động:

Yếu tốTại sao điều đó lại quan trọng
"Định dạng lại các ghi chú cuộc họp thô"Thông báo cho agent biết loại đầu vào
"Tài liệu có cấu trúc với các phần"Thông báo cho agent về định dạng đầu ra
"Người tham dự, các quyết định quan trọng, các mục hành động"Chỉ định các phần cần tạo
"Sử dụng khi..."Các yếu tố kích hoạt rõ ràng cho agent

Kiểm tra nhanh: Mô tả ghi rằng "Sử dụng khi người dùng chia sẻ ghi chú cuộc họp, yêu cầu sắp xếp biên bản cuộc họp hoặc muốn trích xuất các mục hành động". Tại sao lại liệt kê 3 yếu tố kích hoạt thay vì một?

Câu trả lời: Những người dùng khác nhau diễn đạt cùng một yêu cầu theo các cách khác nhau. Nhiều yếu tố kích hoạt làm tăng khả năng agent nhận biết khi nào cần kích hoạt skill của bạn.

Bước 3: Viết hướng dẫn

Bên dưới frontmatter, hãy viết các hướng dẫn mà agent sẽ tuân theo:

--- 
name: meeting-notes-formatter
description: >
  Định dạng ghi chú cuộc họp thô thành một tài liệu có cấu trúc với các phần
  dành cho người tham dự, những quyết định chính, các mục hành động với người chịu trách nhiệm và những bước tiếp theo.
  Sử dụng khi người dùng chia sẻ ghi chú cuộc họp, yêu cầu sắp xếp
  biên bản cuộc họp hoặc muốn trích xuất các mục hành động từ một cuộc họp.
---

# Công cụ định dạng ghi chú cuộc họp

Khi người dùng cung cấp ghi chú cuộc họp thô, hãy định dạng chúng theo cấu trúc sau:

## Template đầu ra

### Cuộc họp: [Tiêu đề hoặc Chủ đề]
**Ngày:** [Trích từ ghi chú hoặc hỏi]
**Người tham dự:** [Liệt kê tên những người được đề cập]

### Các quyết định quan trọng
- [Quyết định 1]
- [Quyết định 2]

### Các mục hành động
| Hành động | Người chịu trách nhiệm | Hạn chót |
|--------|-------|----------|
| [Nhiệm vụ] | [Người phụ trách] | [Ngày nếu được đề cập, nếu không thì ghi "TBD"] |

### Tóm tắt thảo luận
[Tóm tắt 2-3 câu về các chủ đề chính đã thảo luận]

### Các bước tiếp theo
- [Điều gì sẽ xảy ra tiếp theo]
- [Các cuộc họp tiếp theo nếu có đề cập]

## Quy tắc
- Nếu không đề cập đến người tham dự, hãy hỏi người dùng
- Nếu không đề cập đến thời hạn, hãy đánh dấu là "TBD"
- Giữ tóm tắt ngắn gọn - không quá 3 câu
- Giữ nguyên các trích dẫn trực tiếp nếu chúng chứa những quyết định
- Luôn kết thúc bằng "Các bước tiếp theo" ngay cả khi chỉ là "Không cần theo dõi"

Bước 4: Kiểm tra

Khởi động lại agent của bạn (hoặc load lại skill nếu nền tảng của bạn hỗ trợ load lại ngay). Sau đó gửi một tin nhắn thử nghiệm:

"Đây là ghi chú cuộc họp của tôi hôm nay: Gặp Sarah và David để thảo luận về kế hoạch tiếp thị quý 2. Sarah nói chúng ta nên tăng ngân sách mạng xã hội lên 20%. David đồng ý nhưng muốn xem số liệu ROI trước. Chúng tôi quyết định chạy thử nghiệm trong 2 tuần. Sarah sẽ tạo bản tóm tắt chiến dịch vào thứ Sáu. David sẽ lấy số liệu mạng xã hội của quý trước vào thứ Tư. Cuộc họp tiếp theo là ngày 20 tháng 2".

Agent của bạn nên định dạng đoạn văn này theo template có cấu trúc mà bạn đã xác định.

Bước 5: Xem xét và chỉnh sửa

So sánh kết quả với template của bạn. Các vấn đề thường gặp:

Vấn đềCách khắc phục
Các phần bị thiếuThêm điều khoản rõ ràng "Luôn bao gồm TẤT CẢ các phần" vào quy tắc
Tóm tắt quá dài dòngThêm giới hạn từ: "Tóm tắt phải dưới 50 từ"
Không trích xuất các mục hành độngThêm ví dụ: "Các mục hành động là những việc mà ai đó đã cam kết SẼ LÀM".
Định dạng ngày tháng saiGhi rõ: "Sử dụng định dạng YYYY-MM-DD cho tất cả các ngày tháng"

Gửi phản hồi trực tiếp cho agent và điều chỉnh file SKILL.md. Điều tuyệt vời của skill là chúng chỉ là các file văn bản - chỉnh sửa, lưu, load lại.

Điều gì tạo nên một nội dung hướng dẫn tốt?

Sau khi xây dựng hàng chục skill, đây là những mẫu hiệu quả:

Cấu trúc đầu ra một cách rõ ràng. Đừng chỉ nói "định dạng đẹp mắt" - hãy chỉ rõ template cụ thể. Agent làm theo ví dụ tốt hơn là những hướng dẫn mơ hồ.

Bao gồm các quy tắc và ràng buộc. "Hãy viết ngắn gọn" quá mơ hồ. "Tối đa 3 câu mỗi phần" sẽ rõ ràng hơn. "Đừng bịa đặt thông tin" giúp tránh hiểu sai.

Xử lý các trường hợp ngoại lệ. Điều gì xảy ra nếu ghi chú cuộc họp không đề cập đến người tham dự? Điều gì xảy ra nếu không có mục hành động nào? Hướng dẫn của bạn nên bao gồm các tình huống này.

Viết cho agent, không phải cho người dùng. File SKILL.md được đọc bởi AI, không phải con người. Hãy nói rõ ràng về những việc cần làm, khi nào cần đặt câu hỏi và định dạng cần sử dụng.

Kiểm tra nhanh: Đầu ra của skill của bạn luôn bao gồm phần "Thảo luận ngân sách" ngay cả đối với các cuộc họp không thảo luận về ngân sách. Làm thế nào để khắc phục điều này?

Câu trả lời: Template quá cứng nhắc. Hãy thay đổi để chỉ bao gồm những phần khi có nội dung liên quan: "Chỉ bao gồm các phần khi biên bản cuộc họp chứa nội dung liên quan. Bỏ qua những phần trống".

Thêm thư mục tham khảo

Hãy nâng cao skill với hướng dẫn về kiểu viết. Tạo thư mục tham khảo:

meeting-notes-formatter/
├── SKILL.md
└── references/
    └── style-guide.md

Trong references/style-guide.md:

# Hướng dẫn về kiểu ghi chú cuộc họp

## Giọng văn
- Chuyên nghiệp nhưng không cứng nhắc
- Sử dụng thể chủ động: "Sarah sẽ tạo" chứ không phải "Bản tóm tắt sẽ được tạo bởi Sarah"

## Định dạng
- Sử dụng chữ hoa đầu mỗi từ cho tiêu đề phần
- Sử dụng dấu chấm đầu dòng cho danh sách từ 3 mục trở lên
- Sử dụng bảng cho các mục hành động (luôn bao gồm cột Người phụ trách và Hạn chót)

## Mục hành động
- Phải bắt đầu bằng một động từ: "Tạo...", "Xem xét...", "Gửi..."
- Phải có người phụ trách (nếu không được đề cập, hãy viết "Chưa được phân công")
- Phải có hạn chót (nếu không được đề cập, hãy viết "Chưa xác định")

Sau đó tham chiếu nó trong SKILL.md của bạn:

## Kiểu dáng
Tuân theo các quy ước trong references/style-guide.md về giọng văn,
định dạng và cấu trúc mục hành động.

Hệ thống sẽ đọc hướng dẫn kiểu dáng khi cần hướng dẫn định dạng - Tiết lộ dần dần Lớp 3 đang hoạt động.

Skill là loại portable

Đây là phần tuyệt vời nhất: Skill bạn vừa xây dựng không chỉ hoạt động trong OpenClaw. Sao chép thư mục vào:

  • .claude/skills/ - hoạt động trong Claude Code
  • .github/skills/ - hoạt động trong VS Code Copilot
  • Thư mục Codex CLI skills của bạn - cũng hoạt động ở đó

Cùng một skill, nhiều nền tảng. Đó là sức mạnh của một tiêu chuẩn mở.

Những điểm chính cần ghi nhớ

  • Skill là một thư mục chứa file SKILL.md và các file hỗ trợ tùy chọn
  • Phần frontmatter cần có namedescription - mô tả xác định khi nào agent sử dụng nó
  • Phần body là hướng dẫn dành cho agent - hãy nêu rõ ràng, hiển thị các template, xác định những quy tắc
  • Kiểm tra ngay lập tức và lặp lại dựa trên chất lượng đầu ra
  • Các thư mục tham chiếu bổ sung chiều sâu mà không làm phình to những hướng dẫn chính
  • Các skill có thể được sử dụng trên Claude Code, VS Code, Codex CLI và OpenClaw
  • Câu 1:

    Bạn đã xây dựng một skill nhưng agent không bao giờ sử dụng nó. Vấn đề có khả năng nhất là gì?

    GIẢI THÍCH:

    Phần mô tả là cách agent quyết định xem một skill có phù hợp hay không. Nếu nó mơ hồ hoặc không khớp với yêu cầu của người dùng, agent sẽ không kích hoạt nó. Hãy sửa phần mô tả để nêu rõ khi nào và cách thức sử dụng skill.

  • Câu 2:

    Mục đích của phần nội dung hướng dẫn (bên dưới YAML frontmatter) trong SKILL.md là gì?

     

    GIẢI THÍCH:

    Phần nội dung hướng dẫn là cốt lõi của skill - nó được load vào ngữ cảnh của agent khi skill được kích hoạt. Agent sẽ tuân theo các hướng dẫn này để hoàn thành nhiệm vụ. Hãy viết chúng dưới dạng các chỉ dẫn rõ ràng dành cho trợ lý thông minh.

  • Câu 3:

    Bạn nên đặt thư mục skill ở đâu để OpenClaw có thể tìm thấy?

     

    GIẢI THÍCH:

    OpenClaw tìm kiếm các skill trong các đường dẫn đã được cấu hình - thường là .openclaw/skills/ hoặc một thư mục tùy chỉnh. Claude Code sử dụng .claude/skills/ và VS Code sử dụng .github/skills/. Vị trí phụ thuộc vào agent của bạn, nhưng các skill luôn nằm trong một thư mục skill chuyên dụng.

Thứ Hai, 20/04/2026 08:50
51 👨
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
    ❖ Học OpenClaw