- 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 và đặ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
Ý 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
ghCLICó 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
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
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
Đ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
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
Đâ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
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.mdKhi 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
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ể
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
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
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
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
<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
Đâ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ẫnSkills lấy môi trường thực thi code làm tiề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
Nếu có một chợ skills.md thì có lẽ sẽ giúp công nghệ lan rộng hơ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
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
nên động lực dùng prompt của người khác là không cao
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
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