Microsoft đã phát hành một framework Agent Skills ổn định cho Python vào ngày 15 tháng 7. Nó cho phép các nhà phát triển chỉ nạp các khả năng khi một agent điều khiển bởi LLM thực sự cần đến chúng. Bằng cách thay thế một system prompt duy nhất ngày càng phình to bằng việc tải kỹ năng theo yêu cầu, phương pháp này giúp thu gọn kích thước prompt, giảm chi phí token và giữ cho khả năng suy luận của agent rõ ràng hơn.

Tại sao prompt lại phình to và tại sao điều đó lại quan trọng

Các LLM agent dựa vào một "system prompt" chứa các chính sách, runbook và tài liệu tham khảo mà mô hình cần xem trong mỗi lượt tương tác. Chỉ cần thêm một vài tài liệu chính sách, prompt sẽ phình to lên đến hàng nghìn token. Các prompt lớn hơn làm tăng chi phí suy luận (inference costs)—mỗi token mà mô hình xử lý đều được tính phí—và chúng làm loãng tín hiệu hướng dẫn, khiến đầu ra của agent trở nên mơ hồ hơn. Trong việc phân loại sự cố (incident triage) hoặc kiểm tra tuân thủ, một prompt mơ hồ có thể biến một trợ lý hữu ích thành một nguồn thông tin sai lệch.

Mô hình Agent Skills: tiết lộ lũy tiến (progressive disclosure)

Framework mới thay thế prompt nguyên khối bằng một quy trình làm việc gồm bốn bước:

  1. Quảng bá kỹ năng (Advertise the skill) – một mục metadata nhẹ nhàng cho lớp định tuyến (routing layer) biết tên của kỹ năng.
  2. Tải hướng dẫn (Load instructions) – một mô tả ngắn gọn mà agent sẽ đọc để quyết định xem kỹ năng đó có khớp với yêu cầu hay không.
  3. Đọc tài nguyên (Read resources) – các tệp chính sách hoặc tham khảo tùy chọn, chỉ được lấy về sau khi agent đã chọn kỹ năng.
  4. Chạy script (Run scripts) – thực thi mã để thực hiện hành động, được kiểm soát bởi sự phê duyệt rõ ràng.

Chỉ có tệp SKILL.md ngắn gọn nằm trong prompt cốt lõi. Tất cả các tài liệu và script lớn hơn đều nằm trong một gói kỹ năng dựa trên tệp (file-based skill package) mà runtime sẽ tải vào theo yêu cầu. Cấu trúc thư mục vẫn rất đơn giản:

  • SKILL.md – mô tả ngắn gọn, dễ đọc cho con người.
  • references/ – các tệp chính sách hoặc hướng dẫn.
  • scripts/ – mã thực thi.

Vì agent không bao giờ thấy toàn bộ nội dung của references/ hoặc scripts/ cho đến khi nó quyết định kỹ năng đó là phù hợp, prompt chính vẫn sẽ gọn nhẹ bất kể bạn đăng ký bao nhiêu kỹ năng.

Các chốt chặn an toàn được tích hợp sẵn trong framework

Framework giả định rằng việc tải một kỹ năng có thể tiềm ẩn rủi ro và áp dụng các quy tắc mà nhà phát triển phải tuân thủ:

  • Quảng bá tên kỹ năng (Skill name advertisement) – tự động, chỉ được sử dụng để định tuyến.
  • Tải hướng dẫn (Instruction loading) – tự động đối với các danh sách đã được tuyển chọn; các hướng dẫn chưa được xem xét có thể vô tình làm thay đổi hành vi.
  • Đọc chính sách (Policy reading) – tự động khi dữ liệu không nhạy cảm; hãy giữ các tài liệu nhạy cảm sau các lớp kiểm soát truy cập bổ sung.
  • Thực thi script (Script execution) – luôn yêu cầu sự phê duyệt rõ ràng. Một script chuyển agent từ trạng thái "gợi ý" sang "hành động", vì vậy cần có sự can thiệp của con người hoặc kiểm tra chính sách.
  • Các lệnh gọi hệ thống bên ngoài (External system calls) – phải thông qua các công cụ riêng biệt với quyền hạn hạn chế; bản thân một kỹ năng không phải là một cơ chế ủy quyền.

Những quy tắc này thúc đẩy các nhà phát triển bắt đầu với các quy trình chỉ đọc (read-only workflows)—như phân loại sự cố, tra cứu chính sách, truy vấn trạng thái—trước khi thử các hành động hướng ghi (write-oriented actions) như cập nhật cơ sở dữ liệu hoặc triển khai mã.

Vệ sinh vận hành: ghi nhật ký (logging) và quản lý phiên bản (versioning)

Khi một kỹ năng chạy, framework khuyến khích (và nhiều triển khai bắt buộc) việc ghi nhật ký các nội dung sau:

  • Yêu cầu ban đầu và ID kỹ năng đã chọn.
  • Phiên bản của gói kỹ năng được sử dụng.
  • Liệu agent chỉ tải phần mô tả hay còn tải cả tệp tài nguyên.
  • Quyết định phê duyệt việc thực thi script.
  • Tất cả các đối số công cụ được cung cấp và kết quả trả về.

Nếu agent chọn sai kỹ năng, hãy biến việc chọn sai đó thành một trường hợp kiểm thử (test case). Điều này tạo ra một bước kiểm tra hồi quy (regression check) trước khi kỹ năng được đưa vào môi trường production.

Hãy coi mỗi kỹ năng như một phụ thuộc có phiên bản (versioned dependency) với ranh giới rõ ràng, chứ không phải là một thư mục chứa các prompt rời rạc. Việc quản lý phiên bản cho phép bạn hoàn tác (roll back) một script lỗi mà không làm ảnh hưởng đến phần còn lại của cơ sở tri thức của agent.

Bắt đầu: danh sách kiểm tra thực tế

  1. Chọn một quy trình chỉ đọc – ví dụ: "tra cứu các hướng dẫn sự cố bảo mật mới nhất".
  2. Đóng gói hướng dẫn và script riêng biệt – giữ SKILL.md ngắn gọn; lưu trữ các tệp chính sách nặng trong references/.
  3. Xây dựng danh mục (catalogue) – duy trì danh sách các kỹ năng đã được phê duyệt và bắt buộc phải có sự phê duyệt cho bất kỳ script nào.
  4. Thiết lập giới hạn sandbox – xác định các ràng buộc về CPU, bộ nhớ và mạng cho việc thực thi script; ghi nhật ký mọi lần chạy.
  5. Đánh giá so với mega-prompt cũ – so sánh mức sử dụng token, độ trễ và tỷ lệ thành công để xác nhận việc tiết kiệm chi phí.

Những điều cần theo dõi tiếp theo

Bản phát hành của Microsoft hiện là một bản triển khai Python ổn định.

Tóm lại

Agent Skills giúp các trợ lý vận hành bằng LLM duy trì sự tinh gọn trong khi vẫn có thể truy cập vào thư viện các chính sách và kịch bản đang ngày càng mở rộng. Bằng cách chỉ tải trước phần mô tả và chỉ truy xuất các tài nguyên nặng khi cần thiết, các prompt sẽ được giữ ngắn gọn, chi phí suy luận giảm xuống và khả năng lập luận của agent luôn được tập trung.