Bài học từ việc xây dựng Claude Code: Cách chúng tôi sử dụng các kỹ năng

@trq212
TIẾNG ANH4 tháng trước · 17 thg 3, 2026
6.9M
16.4K
2.3K
386
44.0K

TL;DR

Anthropic chia sẻ những thông tin chi tiết nội bộ về việc xây dựng các kỹ năng cho Claude Code, trình bày chi tiết chín danh mục thiết yếu cùng các phương pháp tối ưu cho kỹ thuật ngữ cảnh và phân phối trong nhóm.

Kỹ năng (Skills) đã trở thành một trong những điểm mở rộng được sử dụng nhiều nhất trong Claude Code. Chúng linh hoạt, dễ tạo và dễ dàng phân phối.

Nhưng sự linh hoạt này cũng khiến bạn khó biết đâu là cách tốt nhất. Nên tạo loại kỹ năng nào? Bí quyết để viết một kỹ năng tốt là gì? Khi nào bạn nên chia sẻ chúng với người khác?

Chúng tôi đã sử dụng kỹ năng trong Claude Code rất nhiều tại Anthropic với hàng trăm kỹ năng đang được sử dụng tích cực. Đây là những bài học chúng tôi đã học được về việc sử dụng kỹ năng để tăng tốc quá trình phát triển của mình.

Kỹ năng là gì?

Nếu bạn mới làm quen với kỹ năng, tôi khuyên bạn nên đọc tài liệu của chúng tôi hoặc xem khóa học mới nhất của chúng tôi trên Skilljar về Kỹ năng tác nhân. Bài viết này sẽ giả định rằng bạn đã có một số kiến thức nhất định về kỹ năng.

Một quan niệm sai lầm phổ biến mà chúng tôi nghe thấy về kỹ năng là chúng "chỉ là các tệp markdown", nhưng phần thú vị nhất của kỹ năng là chúng không chỉ là các tệp văn bản. Chúng là các thư mục có thể bao gồm các tập lệnh, tài sản, dữ liệu, v.v. mà tác nhân có thể khám phá, xem xét và thao tác.

Trong Claude Code, kỹ năng cũng có nhiều tùy chọn cấu hình bao gồm cả việc đăng ký các hook động.

Chúng tôi nhận thấy rằng một số kỹ năng thú vị nhất trong Claude Code sử dụng các tùy chọn cấu hình và cấu trúc thư mục một cách sáng tạo.

Các loại kỹ năng

Sau khi phân loại tất cả các kỹ năng của mình, chúng tôi nhận thấy chúng tập trung vào một vài danh mục lặp đi lặp lại. Các kỹ năng tốt nhất nằm gọn trong một danh mục; những kỹ năng khó hiểu hơn thường nằm giữa nhiều danh mục. Đây không phải là một danh sách cuối cùng, nhưng nó là một cách hay để suy nghĩ xem bạn có đang thiếu kỹ năng nào trong tổ chức của mình hay không.

Thariq - inline image

1. Tham khảo thư viện & API

Các kỹ năng giải thích cách sử dụng đúng một thư viện, CLI hoặc SDK. Chúng có thể dành cho cả thư viện nội bộ hoặc các thư viện phổ biến mà Claude Code đôi khi gặp khó khăn. Các kỹ năng này thường bao gồm một thư mục chứa các đoạn mã tham khảo và một danh sách các lỗi thường gặp để Claude tránh khi viết tập lệnh.

Ví dụ:

  • billing-lib — thư viện thanh toán nội bộ của bạn: các trường hợp ngoại lệ, các lỗi thường gặp, v.v.
  • internal-platform-cli — mọi lệnh con của trình bao bọc CLI nội bộ của bạn kèm ví dụ về thời điểm sử dụng chúng
  • frontend-design — giúp Claude làm việc tốt hơn với hệ thống thiết kế của bạn

2. Xác minh sản phẩm

Các kỹ năng mô tả cách kiểm tra hoặc xác minh rằng mã của bạn đang hoạt động. Chúng thường được kết hợp với một công cụ bên ngoài như playwright, tmux, v.v. để thực hiện việc xác minh.

Các kỹ năng xác minh cực kỳ hữu ích để đảm bảo đầu ra của Claude là chính xác. Có thể đáng để một kỹ sư dành một tuần chỉ để làm cho các kỹ năng xác minh của bạn trở nên xuất sắc.

Hãy cân nhắc các kỹ thuật như yêu cầu Claude ghi lại video về đầu ra của nó để bạn có thể thấy chính xác những gì nó đã kiểm tra, hoặc thực thi các xác nhận có thể lập trình về trạng thái tại mỗi bước. Những điều này thường được thực hiện bằng cách bao gồm nhiều tập lệnh khác nhau trong kỹ năng.

Ví dụ:

  • signup-flow-driver — chạy qua quy trình đăng ký → xác minh email → onboarding trong trình duyệt không giao diện, với các hook để xác nhận trạng thái tại mỗi bước
  • checkout-verifier — điều khiển giao diện thanh toán bằng thẻ kiểm tra Stripe, xác minh hóa đơn thực sự ở đúng trạng thái
  • tmux-cli-driver — dành cho kiểm tra CLI tương tác khi thứ bạn đang xác minh cần một TTY

3. Truy xuất & phân tích dữ liệu

Các kỹ năng kết nối với dữ liệu và ngăn xếp giám sát của bạn. Các kỹ năng này có thể bao gồm các thư viện để truy xuất dữ liệu của bạn với thông tin đăng nhập, ID bảng điều khiển cụ thể, v.v. cũng như hướng dẫn về các quy trình làm việc phổ biến hoặc cách lấy dữ liệu.

Ví dụ:

  • funnel-query — "những sự kiện nào tôi cần kết hợp để xem quy trình đăng ký → kích hoạt → đã thanh toán" cùng với bảng thực sự có user_id chuẩn
  • cohort-compare — so sánh tỷ lệ giữ chân hoặc chuyển đổi của hai nhóm, đánh dấu các khác biệt có ý nghĩa thống kê, liên kết đến các định nghĩa phân khúc
  • grafana — UID nguồn dữ liệu, tên cụm, bảng tra cứu vấn đề → bảng điều khiển

4. Quy trình kinh doanh & tự động hóa nhóm

Các kỹ năng tự động hóa các quy trình làm việc lặp đi lặp lại thành một lệnh duy nhất. Các kỹ năng này thường là các hướng dẫn khá đơn giản nhưng có thể có các phụ thuộc phức tạp hơn vào các kỹ năng hoặc MCP khác. Đối với các kỹ năng này, việc lưu kết quả trước đó trong các tệp nhật ký có thể giúp mô hình duy trì tính nhất quán và suy ngẫm về các lần thực thi trước đó của quy trình làm việc.

Ví dụ:

  • standup-post — tổng hợp trình theo dõi vé, hoạt động GitHub và Slack trước đó → báo cáo standup đã định dạng, chỉ hiển thị thay đổi
  • create-<ticket-system>-ticket — thực thi lược đồ (các giá trị enum hợp lệ, các trường bắt buộc) cộng với quy trình làm việc sau khi tạo (ping người đánh giá, liên kết trong Slack)
  • weekly-recap — các PR đã hợp nhất + vé đã đóng + bản triển khai → bài đăng tổng kết đã định dạng

5. Tạo khung mã & mẫu

Các kỹ năng tạo ra mã nền tảng cho một chức năng cụ thể trong cơ sở mã. Bạn có thể kết hợp các kỹ năng này với các tập lệnh có thể kết hợp. Chúng đặc biệt hữu ích khi việc tạo khung của bạn có các yêu cầu ngôn ngữ tự nhiên mà không thể được bao phủ hoàn toàn bằng mã.

Ví dụ:

  • new-<framework>-workflow — tạo ra một dịch vụ/quy trình làm việc/trình xử lý mới với các chú thích của bạn
  • new-migration — mẫu tệp di chuyển của bạn cùng với các lỗi thường gặp
  • create-app — ứng dụng nội bộ mới với xác thực, ghi nhật ký và cấu hình triển khai được kết nối sẵn

6. Chất lượng mã & đánh giá

Các kỹ năng thực thi chất lượng mã trong tổ chức của bạn và giúp đánh giá mã. Chúng có thể bao gồm các tập lệnh hoặc công cụ xác định để đảm bảo độ mạnh mẽ tối đa. Bạn có thể muốn chạy các kỹ năng này tự động như một phần của hook hoặc bên trong một GitHub Action.

  • adversarial-review — tạo ra một tác nhân phụ với góc nhìn mới mẻ để phê bình, thực hiện các sửa chữa, lặp lại cho đến khi các phát hiện chỉ còn là những chi tiết nhỏ nhặt
  • code-style — thực thi phong cách mã, đặc biệt là những phong cách mà Claude không làm tốt theo mặc định.
  • testing-practices — hướng dẫn về cách viết bài kiểm tra và những gì cần kiểm tra.

7. CI/CD & Triển khai

Các kỹ năng giúp bạn truy xuất, đẩy và triển khai mã trong cơ sở mã của mình. Các kỹ năng này có thể tham chiếu đến các kỹ năng khác để thu thập dữ liệu.

Ví dụ:

  • babysit-pr — giám sát một PR → thử lại CI không ổn định → giải quyết xung đột hợp nhất → bật tự động hợp nhất
  • deploy-<service> — xây dựng → kiểm tra khói → triển khai lưu lượng dần dần với so sánh tỷ lệ lỗi → tự động quay lại nếu có suy thoái
  • cherry-pick-prod — cây làm việc biệt lập → cherry-pick → giải quyết xung đột → PR với mẫu

8. Sổ tay vận hành

Các kỹ năng nhận một triệu chứng (chẳng hạn như một chuỗi Slack, cảnh báo hoặc dấu hiệu lỗi), đi qua một cuộc điều tra đa công cụ và tạo ra một báo cáo có cấu trúc.

Ví dụ:

  • <service>-debugging — ánh xạ triệu chứng → công cụ → mẫu truy vấn cho các dịch vụ có lưu lượng truy cập cao nhất của bạn
  • oncall-runner — truy xuất cảnh báo → kiểm tra các nghi phạm thông thường → định dạng một phát hiện
  • log-correlator — với một ID yêu cầu, kéo các nhật ký phù hợp từ mọi hệ thống có thể đã chạm vào nó

9. Vận hành cơ sở hạ tầng

Các kỹ năng thực hiện bảo trì định kỳ và các quy trình vận hành — một số trong đó liên quan đến các hành động phá hủy có lợi khi có các rào cản bảo vệ. Chúng giúp các kỹ sư dễ dàng tuân theo các phương pháp hay nhất trong các hoạt động quan trọng.

Ví dụ:

  • <resource>-orphans — tìm các pod/volume mồ côi → đăng lên Slack → thời gian chờ → người dùng xác nhận → dọn dẹp theo tầng
  • dependency-management — quy trình phê duyệt phụ thuộc của tổ chức bạn
  • cost-investigation — "tại sao hóa đơn lưu trữ/băng thông của chúng ta tăng đột biến" với các bucket và mẫu truy vấn cụ thể

Mẹo để tạo kỹ năng

Thariq - inline image

Khi bạn đã quyết định tạo kỹ năng nào, làm thế nào để viết nó? Đây là một số phương pháp hay nhất, mẹo và thủ thuật mà chúng tôi đã tìm ra.

Gần đây chúng tôi cũng đã phát hành Skill Creator để giúp việc tạo kỹ năng trong Claude Code dễ dàng hơn.

Đừng nói những điều hiển nhiên

Claude Code biết rất nhiều về cơ sở mã của bạn và Claude biết rất nhiều về việc viết mã, bao gồm nhiều quan điểm mặc định. Nếu bạn đang xuất bản một kỹ năng chủ yếu về kiến thức, hãy cố gắng tập trung vào thông tin đẩy Claude ra khỏi cách suy nghĩ thông thường của nó.

Kỹ năng thiết kế giao diện người dùng là một ví dụ tuyệt vời — nó được xây dựng bởi một trong các kỹ sư tại Anthropic bằng cách lặp đi lặp lại với khách hàng để cải thiện gu thiết kế của Claude, tránh các mẫu cổ điển như phông chữ Inter và gradient màu tím.

Xây dựng phần Lỗi thường gặp

Thariq - inline image

Nội dung có tín hiệu cao nhất trong bất kỳ kỹ năng nào là phần Lỗi thường gặp. Các phần này nên được xây dựng từ các điểm thất bại phổ biến mà Claude gặp phải khi sử dụng kỹ năng của bạn. Lý tưởng nhất là bạn sẽ cập nhật kỹ năng của mình theo thời gian để ghi lại những lỗi thường gặp này.

Sử dụng hệ thống tệp & Tiết lộ dần dần

Thariq - inline image

Như chúng tôi đã nói trước đó, một kỹ năng là một thư mục, không chỉ là một tệp markdown. Bạn nên coi toàn bộ hệ thống tệp như một hình thức kỹ thuật ngữ cảnh và tiết lộ dần dần. Hãy cho Claude biết những tệp nào có trong kỹ năng của bạn và nó sẽ đọc chúng vào những thời điểm thích hợp.

Hình thức đơn giản nhất của tiết lộ dần dần là chỉ đến các tệp markdown khác để Claude sử dụng. Ví dụ: bạn có thể chia các chữ ký hàm chi tiết và ví dụ sử dụng thành references/api.md.

Một ví dụ khác: nếu đầu ra cuối cùng của bạn là một tệp markdown, bạn có thể bao gồm một tệp mẫu cho nó trong assets/ để sao chép và sử dụng.

Bạn có thể có các thư mục chứa tài liệu tham khảo, tập lệnh, ví dụ, v.v., giúp Claude làm việc hiệu quả hơn.

Tránh ép buộc Claude

Claude thường sẽ cố gắng tuân theo hướng dẫn của bạn và vì Kỹ năng có thể tái sử dụng cao, bạn nên cẩn thận không quá cụ thể trong hướng dẫn của mình. Hãy cung cấp cho Claude thông tin nó cần, nhưng hãy cho nó sự linh hoạt để thích ứng với tình huống. Ví dụ:

Thariq - inline image

Suy nghĩ về việc thiết lập

Thariq - inline image

Một số kỹ năng có thể cần được thiết lập với ngữ cảnh từ người dùng. Ví dụ: nếu bạn đang tạo một kỹ năng đăng bài standup của bạn lên Slack, bạn có thể muốn Claude hỏi kênh Slack nào để đăng bài.

Một mẫu tốt để làm điều này là lưu trữ thông tin thiết lập này trong một tệp config.json trong thư mục kỹ năng như ví dụ trên. Nếu cấu hình chưa được thiết lập, tác nhân sau đó có thể hỏi người dùng để biết thông tin.

Nếu bạn muốn tác nhân trình bày các câu hỏi trắc nghiệm có cấu trúc, bạn có thể hướng dẫn Claude sử dụng công cụ AskUserQuestion.

Trường Mô tả dành cho Mô hình

Khi Claude Code bắt đầu một phiên, nó xây dựng một danh sách mọi kỹ năng có sẵn kèm theo mô tả của nó. Danh sách này là thứ Claude quét để quyết định "có kỹ năng nào cho yêu cầu này không?" Điều đó có nghĩa là trường mô tả không phải là một bản tóm tắt — nó là mô tả về thời điểm kích hoạt PR này.

Thariq - inline image

Bộ nhớ & Lưu trữ dữ liệu

Thariq - inline image

Một số kỹ năng có thể bao gồm một hình thức bộ nhớ bằng cách lưu trữ dữ liệu trong chúng. Bạn có thể lưu trữ dữ liệu trong bất cứ thứ gì đơn giản như tệp nhật ký văn bản chỉ nối thêm hoặc tệp JSON, hoặc phức tạp như cơ sở dữ liệu SQLite.

Ví dụ: một kỹ năng standup-post có thể giữ một tệp standups.log với mọi bài đăng nó đã viết, có nghĩa là lần tiếp theo bạn chạy nó, Claude đọc lịch sử của chính nó và có thể biết những gì đã thay đổi kể từ ngày hôm qua.

Dữ liệu được lưu trữ trong thư mục kỹ năng có thể bị xóa khi bạn nâng cấp kỹ năng, vì vậy bạn nên lưu trữ dữ liệu này trong một thư mục ổn định. Hiện tại, chúng tôi cung cấp ${**CLAUDE_PLUGIN_DATA**} làm một thư mục ổn định cho mỗi plugin để lưu trữ dữ liệu.

Lưu trữ tập lệnh & Tạo mã

Một trong những công cụ mạnh mẽ nhất bạn có thể cung cấp cho Claude là mã. Việc cung cấp cho Claude các tập lệnh và thư viện cho phép Claude dành các lượt của mình cho việc kết hợp, quyết định việc cần làm tiếp theo thay vì xây dựng lại mã nền tảng.

Ví dụ: trong kỹ năng khoa học dữ liệu của bạn, bạn có thể có một thư viện các hàm để truy xuất dữ liệu từ nguồn sự kiện của bạn. Để Claude có thể thực hiện phân tích phức tạp, bạn có thể cung cấp cho nó một bộ các hàm trợ giúp như sau:

Thariq - inline image

Claude sau đó có thể tạo các tập lệnh ngay lập tức để kết hợp chức năng này nhằm thực hiện phân tích nâng cao hơn cho các lời nhắc như "Chuyện gì đã xảy ra vào thứ Ba?"

Thariq - inline image

Hook theo yêu cầu

Kỹ năng có thể bao gồm các hook chỉ được kích hoạt khi kỹ năng được gọi và kéo dài trong suốt phiên. Sử dụng tính năng này cho các hook có tính chủ quan cao hơn mà bạn không muốn chạy mọi lúc, nhưng đôi khi cực kỳ hữu ích.

Ví dụ:

  • /careful — chặn rm -rf, DROP TABLE, force-push, kubectl delete thông qua bộ so khớp PreToolUse trên Bash. Bạn chỉ muốn điều này khi bạn biết mình đang chạm vào sản phẩm thực tế — việc luôn bật nó sẽ khiến bạn phát điên
  • /freeze — chặn mọi thao tác Edit/Write không nằm trong một thư mục cụ thể. Hữu ích
  • khi gỡ lỗi: "Tôi muốn thêm nhật ký nhưng tôi liên tục vô tình 'sửa' những thứ không liên quan

Phân phối kỹ năng

Một trong những lợi ích lớn nhất của Kỹ năng là bạn có thể chia sẻ chúng với phần còn lại của nhóm.

Có hai cách bạn có thể chia sẻ kỹ năng với người khác:

  • kiểm tra kỹ năng của bạn vào kho lưu trữ (dưới ./.claude/skills)
  • tạo một plugin và có một Chợ plugin Claude Code nơi người dùng có thể tải lên và cài đặt plugin (đọc thêm trong tài liệu tại đây)

Đối với các nhóm nhỏ hơn làm việc trên tương đối ít kho lưu trữ, việc kiểm tra kỹ năng vào kho lưu trữ hoạt động tốt. Nhưng mọi kỹ năng được kiểm tra cũng thêm một chút vào ngữ cảnh của mô hình. Khi bạn mở rộng quy mô, một chợ plugin nội bộ cho phép bạn phân phối kỹ năng và để nhóm của bạn quyết định cài đặt cái nào.

Quản lý một Chợ

Làm thế nào để bạn quyết định kỹ năng nào sẽ vào chợ? Làm thế nào để mọi người gửi chúng?

Chúng tôi không có một nhóm tập trung quyết định; thay vào đó, chúng tôi cố gắng tìm ra những kỹ năng hữu ích nhất một cách tự nhiên. Nếu bạn có một kỹ năng mà bạn muốn mọi người dùng thử, bạn có thể tải nó lên một thư mục sandbox trong GitHub và chỉ cho mọi người đến đó trong Slack hoặc các diễn đàn khác.

Khi một kỹ năng đã đạt được sức hút (tùy thuộc vào chủ sở hữu kỹ năng quyết định), họ có thể tạo một PR để chuyển nó vào chợ.

Một lưu ý cảnh báo, việc tạo ra các kỹ năng tồi hoặc trùng lặp có thể khá dễ dàng, vì vậy việc đảm bảo bạn có một số phương pháp quản lý trước khi phát hành là rất quan trọng.

Kết hợp kỹ năng

Bạn có thể muốn có các kỹ năng phụ thuộc lẫn nhau. Ví dụ: bạn có thể có một kỹ năng tải tệp lên tải một tệp và một kỹ năng tạo CSV tạo một CSV và tải nó lên. Loại quản lý phụ thuộc này chưa được tích hợp sẵn trong các chợ hoặc kỹ năng, nhưng bạn có thể chỉ cần tham chiếu các kỹ năng khác bằng tên và mô hình sẽ gọi chúng nếu chúng được cài đặt.

Đo lường kỹ năng

Để hiểu một kỹ năng đang hoạt động như thế nào, chúng tôi sử dụng một hook PreToolUse cho phép chúng tôi ghi lại việc sử dụng kỹ năng trong công ty (mã ví dụ tại đây). Điều này có nghĩa là chúng tôi có thể tìm thấy các kỹ năng phổ biến hoặc các kỹ năng ít được kích hoạt hơn so với kỳ vọng của chúng tôi.

Kết luận

Kỹ năng là những công cụ cực kỳ mạnh mẽ, linh hoạt cho các tác nhân, nhưng vẫn còn sớm và tất cả chúng ta đang tìm ra cách sử dụng chúng tốt nhất.

Hãy coi đây giống như một bộ sưu tập các mẹo hữu ích mà chúng tôi đã thấy hiệu quả hơn là một hướng dẫn cuối cùng. Cách tốt nhất để hiểu kỹ năng là bắt đầu, thử nghiệm và xem điều gì hiệu quả với bạn. Hầu hết các kỹ năng của chúng tôi bắt đầu chỉ với một vài dòng và một lỗi thường gặp duy nhất, và trở nên tốt hơn vì mọi người tiếp tục thêm vào chúng khi Claude gặp các trường hợp ngoại lệ mới.

Tôi hy vọng điều này hữu ích, hãy cho tôi biết nếu bạn có bất kỳ câu hỏi nào.

Save to YouMind

Use YouMind to read viral articles deeply

Save the source, ask focused questions, summarize the argument, and turn a viral article into reusable notes in one AI workspace.

Explore YouMind
Dành cho nhà sáng tạo

Biến Markdown của bạn thành bài viết 𝕏 gọn gàng

Khi bạn đăng bài viết dài của riêng mình, việc định dạng hình ảnh, bảng và khối mã cho 𝕏 rất mệt mỏi. YouMind biến cả bản nháp Markdown thành một bài viết 𝕏 gọn gàng, sẵn sàng để đăng.

Thử Markdown sang 𝕏

Thêm pattern để giải mã

Bài viết viral gần đây

Khám phá thêm bài viết viral