📦 Unbox Công Nghệ

Những bài học từ việc xây dựng Claude Code: Cách chúng tôi sử dụng Skills (Kỹ năng) — Thariq

Reading Time: 5 minutes

Một bài chia sẻ chuyên sâu về cách Anthropic sử dụng các “Skills” (Kỹ năng) trong môi trường nội bộ của họ, do kỹ sư Thariq viết. Skills đã trở thành một trong những điểm mở rộng (extension points) được sử dụng nhiều nhất trong Claude Code. Chúng linh hoạt, dễ tạo và rất dễ để phân phối. Nhưng chính sự linh hoạt này cũng khiến việc biết điều gì là tốt nhất trở nên khó khăn. Thariq chia sẻ những bài học rút ra từ việc sử dụng skills ở cường độ cao tại Anthropic với hàng trăm skills đang chạy thực tế.

Skills thực chất là gì?

Một quan niệm sai lầm phổ biến cho rằng skills “chỉ là các file markdown”, nhưng phần thú vị nhất là chúng thực chất là các thư mục (folders). Trong đó có thể bao gồm các tập lệnh (scripts), tài nguyên (assets), dữ liệu… — những thứ mà AI agent có thể tự mình khám phá, tìm hiểu và thao tác. Skills cũng đi kèm với rất nhiều tùy chọn cấu hình, bao gồm cả việc đăng ký các hook động (dynamic hooks).

9 Loại Skills phổ biến

Sau khi lập danh mục tất cả các skills của mình, team Anthropic nhận thấy chúng tập trung vào 9 danh mục sau. Một skill tốt thường chỉ nằm gọn trong 1 danh mục duy nhất.

  1. Thư viện & Tài liệu API (Library & API Reference): Giải thích cách sử dụng chính xác một thư viện, CLI hoặc SDK (đặc biệt hữu ích với thư viện nội bộ hoặc thư viện mà Claude hay nhầm lẫn). Nó thường chứa các đoạn code mẫu và danh sách các lỗi “gotchas” cần tránh. (Ví dụ: billing-lib, frontend-design)
  2. Xác minh Sản phẩm (Product Verification): Hướng dẫn Claude cách test hoặc xác minh code có chạy đúng không (thường kết hợp với Playwright, tmux). Rất đáng để kỹ sư dành cả tuần chỉ để hoàn thiện bộ skill này nhằm kiểm soát tính chính xác của Claude. (Ví dụ: checkout-verifier, tmux-cli-driver)
  3. Truy xuất & Phân tích Dữ liệu (Data Fetching & Analysis): Các skills kết nối với data stack và hệ thống giám sát. Hướng dẫn Claude cách lấy dữ liệu qua ID bảng điều khiển (dashboard) hoặc config thông tin đăng nhập. (Ví dụ: funnel-query, grafana)
  4. Tự động hóa Quy trình làm việc (Business Process & Team Automation): Gom các quy trình lặp đi lặp lại thành một lệnh duy nhất. Việc lưu các kết quả trước đó vào file log giúp Claude duy trì sự nhất quán. (Ví dụ: standup-post, create-ticket, weekly-recap)
  5. Tạo khung Code & Mẫu (Code Scaffolding & Templates): Tạo ra các boilerplate code cho framework. Hữu ích khi việc dựng khung code có những yêu cầu bằng ngôn ngữ tự nhiên mà code không thể tự diễn đạt hết. (Ví dụ: new-migration, create-app)
  6. Kiểm soát Chất lượng & Review Code (Code Quality & Review): Thực thi các tiêu chuẩn chất lượng code nội bộ. Bạn có thể chạy tự động các skills này như một phần của hooks hoặc bên trong GitHub Action. (Ví dụ: adversarial-review, code-style)
  7. CI/CD & Triển khai (CI/CD & Deployment): Giúp fetch, push và deploy code. Nó có thể tham chiếu đến các skills khác để thu thập dữ liệu tự động. (Ví dụ: babysit-pr, deploy-service)
  8. Sổ tay giải quyết sự cố (Runbooks): Nhận đầu vào là một “triệu chứng” (ví dụ tin nhắn Slack, log lỗi), hướng dẫn AI thực hiện từng bước điều tra đa công cụ và tạo ra báo cáo cuối cùng. (Ví dụ: service-debugging, oncall-runner)
  9. Vận hành Hạ tầng (Infrastructure Operations): Thực hiện các quy trình bảo trì định kỳ. Đặc biệt với các thao tác nguy hiểm (phá hủy dữ liệu), skill này đóng vai trò như các “rào chắn” (guardrails) an toàn. (Ví dụ: dependency-management, cost-investigation)

9 Mẹo (Tips) “Vàng” để tạo Skills hiệu quả

  1. Đừng nhắc lại những điều hiển nhiên: Claude Code đã biết rất nhiều về lập trình. Đừng dạy lại những thứ cơ bản. Hãy tập trung vào thông tin “kéo” Claude ra khỏi tư duy mặc định. Ví dụ: Kỹ năng “frontend-design” được tạo ra để cấm Claude dùng các pattern cũ rích.
  2. Luôn có mục “Gotchas” (Lỗi thường gặp): Nội dung giá trị nhất trong bất kỳ skill nào chính là “Gotchas”. Hãy tổng hợp lại những sai lầm phổ biến mà Claude hay mắc phải khi dùng skill của bạn và liên tục cập nhật chúng.
  3. Sử dụng File System & Tiết lộ dần dần (Progressive Disclosure): Skill là một thư mục, hãy thiết kế ngữ cảnh bằng cách phân bổ tệp. Báo cho Claude biết có những tệp nào (scripts, api.md, examples…) để nó tự tìm đọc khi cần, tránh nhồi nhét mọi thứ vào một file duy nhất.
  4. Tránh “cầm tay chỉ việc” quá mức (Avoid Railroading Claude): Claude rất nghe lời, nếu bạn chỉ dẫn quá cứng nhắc từng bước một, nó sẽ mất đi sự linh hoạt. Hãy cung cấp “Mục tiêu” và “Ràng buộc” (Constraints) để Claude tự tìm cách giải quyết tốt nhất.
  5. Suy tính kỹ về khâu Thiết lập (Setup): Nên dùng file config.json để lưu thông tin thiết lập ngữ cảnh trong thư mục skill. Nếu thiếu config, hãy yêu cầu Claude dùng công cụ AskUserQuestion để hỏi trực tiếp người dùng các câu hỏi trắc nghiệm cấu trúc.
  6. Trường Mô tả (Description) là viết cho AI đọc: Khi chạy, Claude sẽ quét qua Description của mọi skill để xem “khi nào thì nên dùng skill này”. Vì vậy, Description không phải là tóm tắt tính năng, mà là “Điều kiện kích hoạt” (Trigger). Hãy viết cho AI hiểu.
  7. Cấp Bộ nhớ & Lưu trữ Dữ liệu: Bạn có thể cho phép skill lưu file (như text log, JSON, hoặc SQLite) để có tính “nhớ”. Tuy nhiên do nâng cấp skill có thể xóa file, hãy sử dụng đường dẫn ${CLAUDE_PLUGIN_DATA} làm thư mục chứa dữ liệu ổn định.
  8. Cung cấp Script có sẵn thay vì bắt AI tự viết từ đầu: Sức mạnh lớn nhất là đưa cho Claude các scripts hoặc thư viện viết sẵn. Điều này giúp Claude dành thời gian suy nghĩ để “lắp ráp” và “điều phối” các bước thay vì hì hục ngồi code lại những hàm cơ bản (boilerplate).
  9. Sử dụng On-Demand Hooks (Hook kích hoạt theo yêu cầu): Bạn có thể chèn các Hook chỉ hoạt động khi skill đó được gọi. Ví dụ: /careful chặn các lệnh nguy hiểm như rm -rf, /freeze cấm AI sửa file ngoài thư mục chỉ định.

Phân phối và Quản lý Skills

Cách chia sẻ Skills: Gắn trực tiếp vào repo mã nguồn (trong thư mục .claude/skills) rất tốt cho các team nhỏ. Hoặc đóng gói thành Plugin và đưa lên Marketplace nội bộ.

Quản lý Marketplace: Đừng để một nhóm trung tâm kiểm duyệt khắt khe. Cứ tạo một thư mục Sandbox trên GitHub để mọi người tự do upload và chia sẻ. Khi một skill thực sự hữu ích, chủ sở hữu có thể tạo Pull Request đẩy nó lên Marketplace chính thức.

Kết hợp các Skills (Composing Skills): Bạn vẫn có thể bắt AI gọi skill này bên trong skill khác. Ví dụ: “hãy dùng skill A để tạo CSV, sau đó gọi skill B để upload nó”.

Đo lường mức độ hiệu quả: Sử dụng hook PreToolUse để ghi log nội bộ số lần các skills được AI gọi. Bằng cách này, bạn sẽ biết được skill nào đang “hot” và skill nào đang bị AI bỏ qua để tối ưu.

Kết luận

Skills là công cụ cực kỳ mạnh mẽ cho các AI Agent. Tuy nhiên công nghệ này còn khá mới. Không có gì là tuyệt đối, cách tốt nhất là “hãy bắt tay vào làm và thử nghiệm”. Hầu hết các skills của Anthropic đều khởi đầu bằng vài dòng text và một cái “gotcha” nhỏ, sau đó lớn dần lên khi mọi người bổ sung thêm mỗi khi Claude xử lý sai một trường hợp khó nào đó.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *