16 điểm bởi GN⁺ 2025-12-22 | 1 bình luận | Chia sẻ qua WhatsApp
  • Agent Skills là một cấu trúc mở rộng bổ sung năng lực chuyên biệt theo từng tác vụ vào Codex để thực hiện ổn định các quy trình làm việc cụ thể
  • Mỗi skill gồm tệp SKILL.md cùng với script, tài nguyên và asset tùy chọn, nên có thể chia sẻ giữa các nhóm hoặc cộng đồng
  • Codex chạy skill theo hai cách: gọi tường minh (lệnh /skills hoặc nhập $) và gọi ngầm (tự động dùng khi khớp với mô tả tác vụ)
  • Skill được quản lý thông qua nhiều vị trí lưu trữ và hệ thống ưu tiên như REPO, USER, ADMIN, SYSTEM, và có thể tạo skill mới bằng $skill-creator
  • Tính năng này có thể dùng trên cả CLI lẫn tiện ích mở rộng IDE của Codex, đồng thời có thể cài thêm skill từ GitHub để mở rộng chức năng

Tổng quan về Agent Skills

  • Agent Skills là cấu trúc mang lại chức năng và chuyên môn mới cho Codex
    • Skill đóng gói hướng dẫn, tài nguyên và script tùy chọn để thực hiện một tác vụ cụ thể
    • Có thể chia sẻ giữa các nhóm hoặc cộng đồng, và dựa trên open Agent Skills standard
  • Có thể dùng trên cả CLI và tiện ích mở rộng IDE của Codex

Cấu trúc và thành phần của skill

  • Mỗi skill được tổ chức xoay quanh tệp SKILL.md, với cấu trúc thư mục như sau
    • SKILL.md: bắt buộc, chứa hướng dẫn và metadata
    • scripts/: mã thực thi tùy chọn
    • references/: tài liệu tùy chọn
    • assets/: mẫu và tài nguyên tùy chọn
  • Codex sử dụng cách tiếp cận progressive disclosure để quản lý ngữ cảnh hiệu quả
    • Khi khởi động chỉ tải tên và mô tả của skill, rồi đọc toàn bộ hướng dẫn khi cần

Cách gọi skill

  • Gọi tường minh (Explicit invocation)
    • Chỉ định trực tiếp skill bằng lệnh /skills hoặc nhập $
    • Phiên bản web và iOS của Codex hiện chưa hỗ trợ gọi tường minh, nhưng các skill có trong kho vẫn có thể dùng qua prompt
  • Gọi ngầm (Implicit invocation)
    • Khi tác vụ của người dùng khớp với mô tả của skill, Codex sẽ tự động dùng skill đó

Vị trí lưu trữ và độ ưu tiên của skill

  • Codex tải skill từ nhiều vị trí, và skill ở vị trí có ưu tiên cao hơn sẽ ghi đè skill cấp thấp hơn có cùng tên
  • Các scope và vị trí chính
    • REPO: $CWD/.codex/skills, $CWD/../.codex/skills, $REPO_ROOT/.codex/skills
    • USER: $CODEX_HOME/skills hoặc ~/.codex/skills
    • ADMIN: /etc/codex/skills
    • SYSTEM: các skill được tích hợp sẵn trong Codex
  • Mỗi scope được dùng theo mục đích quản lý ở cấp cá nhân, nhóm và hệ thống

Cách tạo skill

  • Có thể tự động tạo skill mới bằng skill tích hợp sẵn $skill-creator của Codex
    • Khi kết hợp với skill $plan, có thể lập kế hoạch trước khi tạo skill
  • Nếu tạo thủ công, hãy tạo thư mục ở vị trí hợp lệ rồi viết tệp SKILL.md
    • Mục bắt buộc: name, description
    • Mục tùy chọn: metadata.short-description
  • Skill dựa trên Agent Skills specification

Cài đặt skill và ví dụ

  • Có thể dùng skill $skill-installer để cài skill từ kho skill công khai trên GitHub
    • Ví dụ: $skill-installer linear
    • Cũng có thể cài skill từ các kho khác
  • Ví dụ về skill tích hợp sẵn
    • $plan: lập kế hoạch cho việc phát triển tính năng mới hoặc giải quyết vấn đề phức tạp
    • $skill-installer linear: truy cập ngữ cảnh Linear
    • $skill-installer notion-spec-to-implementation: truy cập dữ liệu Notion

Ý nghĩa với nhà phát triển Codex

  • Agent Skills là thành phần cốt lõi giúp tăng khả năng mở rộng và cộng tác của Codex
  • Nhà phát triển có thể định nghĩa skill riêng để xây dựng quy trình phát triển tự động hóa
  • Tích hợp CLI·IDE, kết nối GitHubđặc tả skill được chuẩn hóa giúp củng cố khả năng mở rộng của hệ sinh thái Codex

1 bình luận

 
GN⁺ 2025-12-22
Ý kiến trên Hacker News
  • Thật sự rất vui khi Skills đang trở thành tiêu chuẩn
    Có thể viết chỉ bằng file Markdown đơn giản, và mặc định là hiệu quả về context
    Có thể đặt lên trên các công cụ sẵn có, nên thay vì GitHub MCP còn có thể tạo một skill hướng dẫn cách dùng gh CLI
    Có thể kết hợp nhiều skill với nhau, và cũng có thể kèm script Python hoặc JS
    Nhờ vậy có thể tiếp cận đơn giản và linh hoạt hơn nhiều mà không cần phải lộ ra một máy chủ MCP riêng

    • Ngoài ra, chính agent còn có thể chỉnh sửa·cải thiện·bổ sung skill
      Ví dụ có thể tự động hóa theo kiểu “hãy thêm các điểm cốt lõi của phiên này thành một skill”
      Không chỉ với những phiên tốt mà cả những phiên có nhiều thử-và-sai, nội dung học được cũng có thể được lưu lại thành skill
      Điều này mang lại một luồng mở rộng tính năng nhanh hơn và dễ tiếp cận hơn nhiều so với MCP
    • Tôi đang nghĩ xem có thể tận dụng skill như thế nào trong một web app Django + PostgreSQL + Python quy mô vừa
      Cũng tò mò không biết liệu nó có hữu ích hơn ở phía data science hoặc DevOps thay vì các tác vụ CRUD hay không
    • Cuối cùng thì skill được hiểu như một khái niệm kiểu cache công thức use case / workflow
  • Điểm cốt lõi của Skills là, theo đặc tả thì phần nội dung chính của code hay markdown trong skill không áp dụng RAG
    Tức là chỉ tên và mô tả trong front-matter được đưa vào prompt để dùng cho việc chọn skill
    Vì vậy, những logic không được nhắc đến trong phần mô tả có thể hoàn toàn không được phát hiện
    Ngoài ra, mô tả skill cũng là một dạng prompt injection, nên cũng ảnh hưởng đến giọng điệu tổng thể và chi phí token
    Có thể tham khảo ví dụ liên quan ở liên kết mã này

    • Cá nhân tôi thấy chỉ mục skill có thể trở thành gánh nặng hơn là trợ giúp
      Vì việc giữ context gọn gàng là quan trọng, tôi thích cách chỉ thêm trực tiếp file md khi thực sự cần
      MCP thì quá phức tạp, còn ngay cả skill cũng hơi có cảm giác bị thiết kế quá mức
    • Một số hệ thống agentic có áp dụng RAG cho skill
      Đây là vấn đề thiết kế agentic harness hơn là của bản thân LLM
      Có vẻ sau này LLM và harness sẽ được tích hợp chặt chẽ hơn
    • MCP hay tools cuối cùng cũng gặp cùng một vấn đề
  • Tôi đã dùng cách tương tự từ lâu rồi
    Tôi tạo thư mục cho từng chức năng, rồi cấu trúc README.md, scripts, GUIDE.md
    Khi phát hiện đoạn mã có thể tái sử dụng được (ví dụ tích hợp clerk.dev), tôi gom lại thành thư mục,
    rồi khi cần thì gộp bằng merge-to-md để sử dụng
    Cách tiếp cận này hoạt động hoàn hảo, nên giờ thấy loại tính năng này được tích hợp sẵn trong agent thì rất vui

    • Nhờ phần giải thích này mà khái niệm skill trở nên dễ hiểu
  • Về lâu dài, Skills có vẻ có thể phát triển giống như thư viện mã nguồn mở
    Nếu cung cấp các giải pháp chuẩn hóa như xác thực, multi-tenancy dưới dạng skill
    thì tính bảo mật và chất lượng mã sẽ được cải thiện đáng kể

    • Hơn nữa, nếu mô hình có thể tìm kiếm·tải về các skill cần thiết từ một chỉ mục skill toàn cục
      và dùng ngay lập tức, thì nó thậm chí có thể trở thành một giải pháp thay thế cho việc học liên tục
  • Skills, plugins, apps, connectors, MCPs, agents… nói thật là rất rối

    • Sự hỗn loạn này là do công nghệ còn non và thay đổi quá nhanh
      Vẫn chưa có cách tiếp cận tối ưu nào được chốt, và thuật ngữ cũng chưa được chuẩn hóa
      Ngay cả “Agent” cũng có nghĩa khác nhau tùy từng nhóm
    • Thật ra tất cả những thứ này chỉ là thiết bị tiện lợi để nạp context
      Ngoài việc chạy công cụ, chúng chỉ là nhiều cách khác nhau để thêm ngữ cảnh vào prompt
    • Có người gọi tất cả những thứ này là giải pháp chắp vá tạm thời (bandaid)
    • Người khác lại xem chúng chỉ là tên gọi tiếp thị cho API và prompt
    • Nó cũng giống với hiện tượng LLM tạo ra hàng loạt ý tưởng tương tự nhau nhưng hơi khác nhau
  • Gần đây trong bài viết này,
    người ta mô tả một cấu trúc nơi agent gọi lặp lại LLM và trao đổi các yêu cầu sử dụng công cụ ở định dạng JSON,
    và tôi tò mò không biết skill sẽ có hình thức như thế nào trong framework này

    • Trước vòng lặp đầu tiên, harness gửi cho LLM một khối <Skills>
      Ví dụ: <Skill><Name>postgres</Name><Description>cách truy vấn DB pre-prod</Description><File>skills/postgres.md</File></Skill>
      Thông báo này được gửi lại định kỳ để LLM không “quên” skill
      Cuối cùng chỉ truyền tên + mô tả + đường dẫn file, nên chi phí token thấp
      Nhưng nếu là một LLM đủ thông minh thì có thể nó vẫn hoạt động tốt ngay cả không cần cấu trúc như vậy
    • Agent sẽ tải có chọn lọc một hoặc nhiều skill khi cần
      Đây là cách chuẩn hóa để nạp prompt của skill cùng các script liên quan và sử dụng chúng
  • Nhiều người đang hiểu sai về Skills
    Điểm cốt lõi không phải là file .md, mà là đóng gói code và chỉ dẫn
    Skills lấy môi trường thực thi code làm tiền đề

    • Có thể phê duyệt trước mã có thể thực thi, rồi gọi nó từ prompt khi cần
      Ưu điểm lớn là tiết kiệm context thông qua lập chỉ mục metadata và tải chậm
    • Có người mô tả đây là sự trở lại của literate programming
  • Nếu có một chợ skills.md thì có lẽ sẽ giúp công nghệ lan rộng hơn

    • Nhưng thực tế thì việc vận hành sẽ khó vì vấn đề spam, bảo mật, thiếu lợi nhuận
      Chỉ nhìn các trường hợp spam liên quan đến MCP là đủ thấy
      Cuối cùng có khả năng cao nó chỉ được duy trì xoay quanh các công ty đáng tin cậy hoặc các lập trình viên nổi tiếng
    • Đã có kho lưu trữ skills của Anthropic
      Không có chấm điểm hay bình luận, nhưng có thể kỳ vọng vào chất lượng
    • Những thử nghiệm kiểu này xuất hiện thường xuyên, nhưng vì chi phí tạo skill tùy chỉnh gần như bằng 0
      nên động lực dùng prompt của người khác là không cao
    • Tôi cũng đã tham khảo tài liệu của Anthropic để tạo một skill viết skill
      Cuối cùng điều quan trọng là tối ưu theo workflow và codebase của chính mình
  • Tôi tự hỏi liệu có thể dùng các skill được tạo ra để agent tổng hợp lời giải cuối cùng mà nó tìm ra sau nhiều lần thử hay không

    • Tôi cũng tạo một “meta skill” để sau khi kết thúc phiên thì nó tự cập nhật quy tắc
      Theo cách này tôi đang tạo ra một hiệu ứng flywheel
  • Có một câu đùa rằng Anthropic trông như Chief Product Officer của OpenAI

    • Sau đó còn có người đùa thêm rằng “lại còn không được trả công”