TL;DR

Hai công cụ — hai vai trò khác nhau. System prompt là lớp identity luôn bật cho mọi lượt: agent là ai, không bao giờ được làm gì, context gì luôn cần giữ. Agent Skills là các gói năng lực modular mà agent tự chọn nạp khi task khớp — bundle được instructions, scripts, reference docs.

  • Đặc trưng action cụ thể (viết landing page theo AIDA, trích form PDF, review compliance GDPR) → đi vào Skill.
  • Identity hoặc ràng buộc luôn đúng (giọng thương hiệu tổng, boundary an toàn, kiểu suy luận) → đi vào system prompt.
  • Thay đổi theo request → Skill. Ổn định mọi request → system prompt.

Chuyện gì đang xảy ra

Agent Skills được Anthropic ra mắt ngày 16/10/2025 và công bố làm open standard vào 18/12/2025. Định dạng SKILL.md đã được OpenAI Codex CLI, VS Code Copilot, Cursor và Spring AI adopt. Lần đầu tiên có một chuẩn chung cho "cách đóng gói chuyên môn" mà agent có thể tự khám phá và nạp — tương tự như cách một developer mới gia nhập team đọc onboarding doc.

Bài tweet của Leonie đã chạm đúng câu hỏi mà hầu hết đội xây agent đang loay hoay: cái gì bỏ vào system prompt, cái gì tách ra làm Skill. Trả lời sai là trả giá bằng context window, độ ổn định output, và chi phí bảo trì về sau.

Vì sao quan trọng

System prompt luôn bật và có authority cao hơn user message. Nhét mọi thứ "để cho chắc" vào đó là đốt token cho từng lượt chat — kể cả khi user chỉ hỏi một câu lãng xẹt. Với context window 200K có vẻ rộng, nhưng khi task thật (nhiều input, reference file, tool call) cộng lại, phần dành cho output bị nuốt dần.

Agent Skills áp dụng kỹ thuật progressive disclosure: chỉ metadata (name + description, ~50 token) luôn được nạp; body đầy đủ (~500 token) nạp khi Claude thấy task khớp; reference files (2,000+ token) chỉ nạp khi instruction bên trong skill yêu cầu. Cài 30 skill nhưng mỗi lượt chỉ vài trăm token đi vào context.

Technical facts (các con số cần nhớ)

  • 3 tầng progressive disclosure: metadata ~50 token → SKILL.md ~500 token → references/ 2,000+ token.
  • Budget: danh sách skill list capped 15,000 ký tự. Trường description + when_to_use bị truncate ở 1,536 ký tự. Body SKILL.md khuyến nghị ≤ 5,000 từ (~500–800 dòng).
  • Auto-compaction: khi context bị summary, mỗi skill gần nhất được re-attach với 5,000 token đầu, tổng budget 25,000 token chia sẻ.
  • Cấu trúc thư mục: SKILL.md (bắt buộc, YAML frontmatter + markdown) + scripts/ (code chạy qua Bash) + references/ (text loaded vào context) + assets/ (template chỉ trỏ path, KHÔNG load).
  • Frontmatter: name (kebab-case, ≤64 ký tự), description, allowed-tools (vd Bash(git:*)), model, effort, disable-model-invocation.
  • Skills KHÔNG sống trong system prompt — chúng sống trong mảng tools như description của một meta-tool tên Skill. Khi invoke, nội dung được inject dưới role user để giữ tác động cục bộ (temporary, scoped) — xong task thì hết hiệu lực, không "nhiễm" vào các lượt sau.

So sánh nhanh

Thuộc tínhSystem promptAgent Skill
Phạm viToàn phiên, luôn bậtTạm thời, chỉ khi task khớp
AuthorityCao nhất (trên user)Ngang user, isMeta=true
Token overhead / lượtTrả đủ mọi lượt~50 token (metadata) → 1,500+ khi invoke
ModularKhông — 1 file monolithicCó — cài nhiều, kích hoạt theo ngữ cảnh
Bundle resourcesPlain textScripts, references, assets, templates
Cập nhật / versionEdit trực tiếp, dễ vỡGit-tracked, có version field
Chia sẻ cả teamMỗi người copy-pastePublish vào org-wide library
PortabilityLock-in model/frameworkChạy Claude + Codex + Cursor (open standard)

Use cases thực tế

Đi vào Skill:

  • Copywriting landing page: đóng gói AIDA + Schwartz awareness levels + brand voice + conditional logic ("nếu audience solution-aware, bỏ phần education, đánh thẳng differentiation").
  • PDF/Excel processing: Anthropic ship sẵn skill cho PDF, Excel, Word, PowerPoint. Skill PDF bundle Python script trích form field deterministic mà không cần nạp file PDF vào context.
  • Compliance review: rule GDPR/FTC jurisdiction-specific + severity classification + tham chiếu có date tới văn bản gốc.
  • Support triage: escalation policy + cấu trúc KB nội bộ + ticket format bắt buộc.
  • Code refactor: style guide team + security checklist + script static-analysis chạy trước khi return code.

Đi vào system prompt:

  • Identity cố định: "Bạn là trợ lý marketing B2B SaaS tập trung conversion".
  • Safety boundaries luôn đúng: không tiết lộ PII, không generate malicious code.
  • Style baseline: ngôn ngữ, mức độ formal, format mặc định khi không có hướng dẫn khác.
  • Reasoning style: chain-of-thought rõ trước khi kết luận, luôn verify source.

KHÔNG đi vào skill (đây là anti-pattern phổ biến nhất): nếu instruction của bạn chỉ là "gọi Stripe API với params sau" thì bạn cần một tool/MCP server, không phải skill. Skill lo process knowledge, tool lo connectivity — hai tầng khác nhau, đừng trộn.

Giới hạn & lưu ý bảo mật

  • Token cost thật sự không nhỏ: một lần invoke skill tốn ~1,500+ token/lượt vì inject instruction + context modifier, gấp ~15× tool call thường.
  • Skills không phải code thực thi — chúng chỉ là prompt injection có cấu trúc. Và không concurrency-safe.
  • Supply chain risk là có thật. Snyk (2026-02-05) audit 3,984 skill public: 36.82% có ≥1 lỗ hổng bảo mật, 13.4% critical-level (malware, prompt injection ẩn trong Markdown/Unicode, exposed secrets). Chiến dịch malware đầu tiên qua ClawHub được ghi nhận tháng 2/2026 với 30+ skill độc hại. OWASP Top 10 for Agentic Applications 2026 xếp vào ASI01 Goal HijackASI04 Supply Chain.
  • Không ZDR-eligible: skill data giữ theo default retention policy.
  • Pricing: bao gồm miễn phí trong Max/Pro/Team/Enterprise. Qua API thì tính token như bình thường.
  • Anti-pattern cần tránh: "dumping-ground skill" ôm nhiều domain, description mơ hồ ("Handles documents"), hard-code absolute path thay vì {baseDir}, dùng field when_to_use chưa documented, và quên assign owner — skill drift là nguyên nhân hỏng số 1.

Chốt lại & bước tiếp theo

Quy tắc thực dụng của Leonie rất sát với documentation chính thức: action cụ thể → skill; identity → system prompt. Thay đổi per-request → skill; ổn định mọi request → system prompt. Thêm một lớp nữa mà practitioner cần nhớ: cần kết nối live API → tool/MCP, không phải skill.

Nếu bạn đang đổ mọi instruction vào một system prompt khổng lồ 3,000 từ "để cho chắc", đây là lúc tách. Luật kinh nghiệm nhanh: gõ cùng một prompt >3 lần hoặc instruction >500 từ — dựng ngay một SKILL.md. System prompt giữ lại phần identity, ràng buộc, phong cách — phần stable và luôn cần.

Nguồn: Anthropic Engineering, Claude API Docs, Claude Code Docs, First Principles Deep Dive, @helloiamleonie.