Agent Skills: Trang bị kỷ luật kỹ sư cao cấp cho AI coding agents

04 tháng 5, 2026·7 phút đọc

Dự án Agent Skills của Addy Osmani giải quyết vấn đề cốt lõi của AI coding agents: xu hướng bỏ qua các bước không hiển thị trong diff như spec, test và review. Bài viết giới thiệu cách sử dụng quy trình thay vì văn bản thô, cùng các bảng "chống biện hộ" để đảm bảo AI hoạt động như một kỹ sư phần mềm chuyên nghiệp.

Agent Skills: Trang bị kỷ luật kỹ sư cao cấp cho AI coding agents

Công việc của một kỹ sư phần mềm cao cấp (Senior Engineer) phần lớn nằm ở những thứ không hiển thị trong diff: viết bản quy cách (specs), kiểm thử (tests), duyệt code (reviews) và kỷ luật về phạm vi (scope discipline). Tuy nhiên, các tác nhân AI viết code hiện nay thường mặc định bỏ qua các bước này. Agent Skills là nỗ lực của Addy Osmani nhằm biến những bước "tùy chọn" đó thành bắt buộc, giúp AI hoạt động với kỷ luật của một chuyên gia.

Hành vi mặc định của bất kỳ AI coding agent nào là tìm con đường ngắn nhất để "hoàn thành". Bạn yêu cầu một tính năng, nó viết tính năng đó. Nó không hỏi bạn có bản quy cách chưa, không viết test trước khi triển khai, không xem xét thay đổi có vi phạm ranh giới tin cậy hay không, và không kiểm tra Pull Request (PR) sẽ trông như thế nào với người duyệt. Nó chỉ tạo ra code, tuyên bố chiến thắng và chuyển sang việc khác.

Đây chính là "chế độ thất bại" mà mọi kỹ sư cao cấp đều dành cả sự nghiệp để tránh. Một nhiệm vụ ở cấp độ cao bao gồm những công việc không hiển thị trong code: làm rõ các giả định, viết spec, chia nhỏ công việc thành các phần có thể duyệt, chọn thiết kế nhàm chán nhưng an toàn, và để lại bằng chứng cho thấy kết quả là đúng đắn. Agent Skills cố gắng buộc các tác nhân AI phải tuân theo quy trình này.

"Skill" thực chất là gì?

Trong từ vựng của Claude Code và Anthropic, một "skill" là một tệp Markdown có phần frontmatter được đưa vào ngữ cảnh của tác nhân khi tình huống yêu cầu. Nó nằm ở giữa một đoạn system prompt và một sổ tay vận hành (runbook).

Quan trọng nhất, một skill không phải là tài liệu tham khảo. Nó không phải là "mọi thứ bạn cần biết về kiểm thử". Nó là một quy trình làm việc (workflow): một chuỗi các bước mà tác nhân phải tuân theo, với các điểm kiểm tra tạo ra bằng chứng, và kết thúc bằng một tiêu chí thoát xác định.

Sự phân biệt này là chìa khóa. Nếu bạn đưa một bài luận 2.000 từ về các phương pháp kiểm thử tốt nhất vào ngữ cảnh, tác nhân sẽ đọc nó, tạo ra văn bản có vẻ hợp lý và bỏ qua việc kiểm thử thực tế. Nhưng nếu bạn đưa một quy trình vào đó (viết test fail trước, chạy nó, xem nó fail, viết code tối thiểu để pass, xem nó pass, refactor), tác nhân có việc để làm và bạn có thứ để xác minh.

Quy trình hơn văn xuôi. Workflow hơn tài liệu tham khảo. Các bước có tiêu chí thoát hơn là những bài luận không có điểm kết.

Quy trình SDLC mà các skill mã hóa

Khoảng 20 skill trong kho lưu trữ được tổ chức xung quanh 6 giai đoạn vòng đời: Định nghĩa (/spec), Lập kế hoạch (/plan), Xây dựng (/build), Xác minh (/test), Duyệt (/review) và Phát hành (/ship). Điều này không phải ngẫu nhiên; nó là cùng một vòng đời SDLC mà mọi tổ chức kỹ thuật lành mạnh đều sử dụng, chỉ khác về thuật ngữ.

Điểm mới với AI coding agents là hầu hết chúng bỏ qua hầu hết các giai đoạn này theo mặc định. Bạn yêu cầu tính năng, bạn nhận được triển khai, còn spec, kế hoạch, test, review và danh sách kiểm tra phát hành thì không xảy ra. Các skill đẩy tác nhân qua cùng các giai đoạn mà một kỹ sư cao cấp tự ép mình phải trải qua, bởi vì phát hành code mà thiếu chúng là cách tạo ra sự cố.

Năm nguyên tắc cốt lõi

Năm quyết định thiết kế sau đây là nền tảng của dự án:

  1. Quy trình hơn văn xuôi: Workflow có thể thực thi được bởi tác nhân; bài luận thì không. Điều này đúng với cả đội ngũ con người. Nếu sổ tay đội ngũ bạn dài 200 trang, không ai đọc nó dưới áp lực thời gian. Nếu đó là một tập hợp nhỏ các workflow với điểm kiểm tra, mọi người sẽ thực sự chạy chúng.

  2. Bảng chống biện hộ (Anti-rationalization tables): Đây là quyết định thiết kế độc đáo nhất. Mỗi skill bao gồm một bảng các lý do phổ biến mà một tác nhân (hoặc kỹ sư mệt mỏi) có thể dùng để bỏ qua quy trình, đi kèm với sự phản bác bằng văn bản.

    • Ví dụ: "Nhiệm vụ này quá đơn giản để cần spec." -> "Tiêu chí chấp nhận vẫn áp dụng. Năm dòng là ổn. Không dòng nào là không."
    • LLMs rất giỏi trong việc lý do hóa (rationalization). Chúng sẽ tạo ra một đoạn văn có vẻ hợp lý để giải thích tại sao không cần spec. Các bảng chống biện hộ là những sự phản bác đã được viết sẵn cho những lời nói dối mà tác nhân chưa kịp nói.
  3. Xác minh là không thể thương lượng: Mọi skill đều kết thúc bằng bằng chứng cụ thể. Test pass, đầu ra build sạch, vết runtime cho thấy hành vi mong đợi. "Có vẻ đúng" không bao giờ đủ.

  4. Tiết lộ tiến bộ (Progressive disclosure): Không tải tất cả 20 skill vào ngữ cảnh khi bắt đầu phiên. Chỉ kích hoạt chúng dựa trên giai đoạn. Một meta-skill nhỏ đóng vai trò là bộ định tuyến quyết định skill nào áp dụng cho nhiệm vụ hiện tại.

  5. Kỷ luật phạm vi: Meta-skill mã hóa một quy tắc bất di bất dịch: "chỉ chạm vào những gì bạn được yêu cầu chạm". Đừng refactor các hệ thống lân cận. Đừng xóa code bạn không hiểu đầy đủ. Kỷ luật phạm vi là yếu tố quyết định lớn nhất việc một PR của tác nhân có thể gộp được hay phải hoàn tác.

DNA của Google

Các skill được thấm đẫm các thực hành từ "Software Engineering at Google". Điều này có chủ đích. Hầu hết những gì làm cho phần mềm quy mô Google hoạt động đều được tài liệu hóa và công khai, và đó chính là phần mà các tác nhân có khả năng bỏ qua nhất.

Ví dụ, skill api-and-interface-design mã hóa Định luật Hyrum (Hyrum's Law): mọi hành vi có thể quan sát được của API sẽ sớm được ai đó phụ thuộc vào. Skill test-driven-development áp dụng Quy tắc Beyoncé: "Nếu bạn thích nó, bạn nên đặt một test lên nó". Skill code-review-and-quality áp dụng quy tắc PR khoảng 100 dòng của Google.

Cách sử dụng

Có ba chế độ sử dụng:

  1. Cài đặt qua marketplace: Nếu bạn dùng Claude Code, chỉ cần cài đặt plugin addyosmani/agent-skills. Bạn sẽ nhận được các lệnh slash và tác nhân sẽ tự động kích hoạt skill phù hợp.
  2. Thả markdown vào công cụ bạn chọn: Các skill là markdown thuần túy. Người dùng Cursor có thể đặt chúng trong .cursor/rules/. Bất kỳ công cụ nào chấp nhận system prompt đều có thể đọc chúng.
  3. Đọc như một bản spec: Ngay cả khi bạn không cài đặt gì, các skill là mô tả tài liệu hóa về kỹ thuật tốt với tác nhân AI trông như thế nào. Bạn có thể đọc chúng và áp dụng khung năm trục vào quy trình duyệt code của đội ngũ mình.

Kết luận

Điều quan trọng nhất cần rút ra từ dự án này không phải là các skill riêng lẻ, mà là cách nhìn nhận.

AI coding agents là những kỹ sư cấp dưới cực kỳ tài năng nhưng không có bản năng đối với những phần công việc không hiển thị trong diff. Công việc kỹ thuật cấp cao (làm rõ giả định, định kích thước thay đổi, viết spec, để lại bằng chứng) chính là những gì tác nhân sẽ bỏ qua trừ khi bạn làm cho việc bỏ qua chúng là không thể.

Bạn có thể cài đặt phiên bản của Addy Osmani hoặc tự xây dựng của riêng bạn. Bài học vẫn vậy: các phần công việc của kỹ sư cao cấp không còn là tùy chọn, ngay cả khi kỹ sư đó là một mô hình AI.

Kho lưu trữ dự án có tại github.com/addyosmani/agent-skills (MIT).

Bài viết được tổng hợp và biên soạn bằng AI từ các nguồn tin tức công nghệ. Nội dung mang tính tham khảo. Xem bài gốc ↗