AgentKits Marketing có 28 kỹ năng. Nhưng không bao giờ nạp quá 5 kỹ năng cùng lúc
File skills-registry.json của Marketing Kit phân loại 28 kỹ năng vào 5 danh mục, kèm một sơ đồ phụ thuộc đầy đủ. Tài liệu nghiên cứu nội bộ của dự án nêu thẳng lý do phải giới hạn số lượng nạp cùng lúc: 'context rot' (suy thoái do ngữ cảnh quá tải). Đây là cách bộ chọn kỹ năng thực tế vận hành, và vì sao nó đơn giản hơn nhiều so với đề xuất nghiên cứu ban đầu.
Một sổ đăng ký được dựng lên để từ chối
skills-registry.json, file nằm ở trung tâm “Enterprise Skill System” của AgentKits Marketing, phân loại 28 kỹ năng vào năm danh mục — kiến thức nền tảng về marketing, tối ưu tỷ lệ chuyển đổi (CRO), nội dung, SEO/tăng trưởng, và tạo tài liệu. Nhưng file này còn ghi lại một điều ít lộ liễu hơn: một đối tượng dependencyGraph cho biết kỹ năng nào cần kỹ năng nào khác chạy trước nó. signup-flow-cro cần form-cro, mà form-cro lại cần page-cro. paywall-upgrade-cro cần cả page-cro lẫn pricing-strategy. ab-test-setup cần page-cro và analytics-attribution. Mỗi mục trong sổ đăng ký còn có một mảng triggers — những từ khóa đơn giản như “funnel,” “TOFU,” “bounce rate,” “signup flow” — được dùng để đối chiếu với yêu cầu của người dùng.
Toàn bộ cỗ máy này không tồn tại để giúp agent tìm ra nhiều kỹ năng hơn. Nó tồn tại để giúp agent nạp ít kỹ năng hơn. dependency-graph.md, file đi kèm diễn giải thuật toán này bằng văn xuôi, nói rõ mục tiêu ngay ở bước thứ ba: “Giới hạn ngữ cảnh — Nạp tối đa 3-5 kỹ năng để tránh context rot.” Hai mươi tám kỹ năng được lập danh mục. Nhưng một tác vụ chỉ được thiết kế để chạm vào ba đến năm trong số đó, được chọn có chủ đích, chứ không bao giờ là toàn bộ giá sách cùng một lúc.
Tài liệu nghiên cứu đứng sau sổ đăng ký
Sổ đăng ký không phải là nơi đầu tiên trong repo này gọi tên vấn đề. docs/improvement-research-260201.md — đề ngày 1 tháng 2 năm 2026, sớm hơn nhiều tháng so với khi sổ đăng ký hiện tại ra đời — đã trình bày sẵn lý lẽ dẫn đến nó. Trong một mục có tiêu đề “Semantic Skill Selection (RAG Pattern),” tài liệu nêu thẳng vấn đề: “Quá nhiều kỹ năng gây ra ‘context rot’ và sự mệt mỏi trong ra quyết định,” đồng thời trích dẫn bài viết công khai của Elastic về context engineering cho AI agent. Giải pháp mà tài liệu này đề xuất là một pipeline truy xuất (retrieval) — lập chỉ mục mô tả của mọi kỹ năng dưới dạng embedding, đối chiếu ngữ nghĩa với yêu cầu của người dùng, “chỉ trả về 3-5 kỹ năng liên quan hàng đầu.” Cùng tài liệu đó cũng trích dẫn cách MuleSoft hình dung kiến trúc “doanh nghiệp mang tính agentic,” trong đó một Skill Catalog và một Capability Marketplace chính thức phải là hạ tầng hạng nhất. Tài liệu còn nhắc trực tiếp đến chuẩn mở Agent Skills, và ghi nhận rằng định dạng SKILL.md kèm YAML frontmatter mà AgentKits đang dùng đã khớp sẵn với chuẩn đó.
Nhưng những gì thực sự được triển khai lại là một phiên bản thu gọn của đề xuất ấy. commands/skills/select.md, phần đứng sau lệnh /skills:select, không gọi bất kỳ mô hình embedding hay vector store nào. “Thuật toán lựa chọn” (Selection Algorithm) của nó là đối chiếu từ khóa kích hoạt (trigger) bằng một cơ chế chấm điểm thủ công — khớp trigger chính xác được gán trọng số 1.0, khớp một phần 0.5, khớp danh mục 0.3 — sau đó duyệt dependencyGraph theo chiều sâu để kéo các kỹ năng tiên quyết vào, và cuối cùng áp một giới hạn cứng: “Tối đa 5 kỹ năng để tránh quá tải ngữ cảnh.” Ngay trong frontmatter, lệnh này tự giới hạn mình chỉ được dùng hai công cụ, Read và Grep — toàn bộ quá trình chọn kỹ năng diễn ra bằng cách để agent tự đọc trực tiếp skills-registry.json và dependency-graph.md rồi suy luận trên đó, thay vì dựng lên hạ tầng truy xuất riêng để làm việc này. Tài liệu nghiên cứu từng yêu cầu tìm kiếm ngữ nghĩa; những gì thực sự nằm trong repo hôm nay gần với một quy tắc suy luận (heuristic) đã được viết ra, có thể kiểm chứng, mà bất kỳ ai đóng góp cũng có thể đọc trọn vẹn chỉ trong hai file Markdown. Nó vẫn đạt được mục tiêu thật sự của sổ đăng ký — nạp có giới hạn, có thứ tự — mà không cần đến pipeline embedding như đề xuất ban đầu.
Đây không chỉ là vấn đề nội bộ
“Context rot” không phải là thuật ngữ do dự án này đặt ra. Đó là tên mà Chroma đặt cho báo cáo kỹ thuật của chính họ, đánh giá cách 18 mô hình hiện hành — bao gồm GPT-4.1, Claude 4, Gemini 2.5, và Qwen3 — phản ứng khi độ dài đầu vào tăng lên (Chroma, “Context Rot: How Increasing Input Tokens Impacts LLM Performance”). Phát hiện quan trọng ở đây không phải là đầu vào dài gây thất bại hoàn toàn. Thay vào đó, hiệu suất mô hình suy giảm không đồng đều và khó đoán khi ngữ cảnh dài ra, ngay cả với những tác vụ cố tình đơn giản như truy xuất thông tin, và ngay cả khi còn cách rất xa giới hạn cửa sổ ngữ cảnh được công bố. Kết luận của báo cáo này — rằng một cửa sổ ngữ cảnh lớn hơn không thể thay thế cho việc lựa chọn cẩn thận những gì đưa vào đó — chính là lý do mà sổ đăng ký của AgentKits đưa ra cho giới hạn “5 kỹ năng” của riêng mình, dù hai bên đi đến kết luận đó một cách độc lập, cách nhau gần một năm.
Cùng một trực giác đó giờ đây đã trở thành chuẩn mực của cả ngành, chứ không còn là quy tắc riêng của một dự án. Agent Skills của Anthropic, ra mắt như một tính năng dành cho nhà phát triển vào tháng 10 năm 2025 rồi sau đó được công bố như một chuẩn mở, được xây dựng trên cùng một dạng đánh đổi, chỉ khác tên gọi — progressive disclosure (bộc lộ dần dần). Các bài viết về chuẩn này mô tả ba giai đoạn — khám phá (discovery), nơi agent chỉ thấy tên và mô tả ngắn của một kỹ năng; kích hoạt (activation), nơi một tác vụ khớp sẽ kéo toàn bộ hướng dẫn vào ngữ cảnh; và thực thi (execution), nơi các script hay tài liệu tham chiếu đi kèm chỉ được nạp khi công việc thực sự cần đến chúng — nhờ vậy một thư viện kỹ năng lớn chỉ tiêu tốn một lượng ngữ cảnh nhỏ cho đến khi có thứ gì đó trong đó thực sự liên quan (Anthropic, “Equipping agents for the real world with Agent Skills”). Định dạng SKILL.md của chính AgentKits đã khớp với hình dạng này từ trước khi sổ đăng ký ra đời — có lẽ đó là lý do vì sao tài liệu nghiên cứu cải tiến kia không đề xuất thay đổi định dạng file, mà chỉ ghi nhận sự trùng khớp với chuẩn mở.
Cái được, và cái chưa được
Cách mô tả trung thực nhất về hệ thống kỹ năng của AgentKits, đúng như nó đang được xây dựng hôm nay, là: một cơ chế suy luận dựa trên từ khóa và quan hệ phụ thuộc đang đảm nhận công việc mà lẽ ra một hệ thống truy xuất ngữ nghĩa (semantic retrieval) đã được lên kế hoạch để làm, nhằm đáp ứng một ràng buộc về ngân sách ngữ cảnh mà giờ đây chính nghiên cứu của ngành công nhận là một giới hạn thật, chứ không còn là giả thuyết. Đây không phải là phiên bản tinh vi nhất về mặt kỹ thuật của việc lựa chọn kỹ năng — bản thân tài liệu nghiên cứu đề ngày 1/2 vẫn liệt kê việc đối chiếu dựa trên embedding như một hạng mục chưa hoàn thành, tốn nhiều công sức hơn. Nhưng đây là một phiên bản dễ đọc, chạy trên những công cụ mà agent vốn đã có sẵn, và thực thi đúng một con số — 5 kỹ năng, không phải 28 — mà chính nghiên cứu về context rot chỉ ra là quan trọng hơn cả cách người ta chọn ra 5 kỹ năng đó như thế nào.
AgentKits là mã nguồn mở, miễn phí vĩnh viễn theo giấy phép MIT. Bạn có thể tự mình đọc sổ đăng ký kỹ năng và thuật toán lựa chọn trong repo agentkits-marketing, theo dõi những gì sắp ra mắt tại agentkits.net, hoặc liên hệ [email protected].
Khám phá mã nguồn mở
Chúng tôi xây dựng và duy trì các công cụ mã nguồn mở cho nhà phát triển. Xem trên GitHub.
Xem trên GitHubBài viết liên quan
Vì sao tìm kiếm hybrid của AgentKits Memory phải giải quyết tiếng Nhật hai lần
BM25 bỏ lỡ ý nghĩa. Tìm kiếm vector bỏ lỡ chuỗi lỗi chính xác. AgentKits Memory kết hợp cả hai — nhưng với truy vấn tiếng Nhật, tiếng Trung, tiếng Hàn, nửa 'từ khóa' của phép kết hợp đó cần thêm một quyết định nữa bên dưới.
Hướng dẫnHầu Hết Công Cụ Hiện Đại Hóa COBOL Chỉ Dừng Lại Ở Chương Trình. Nơi Các Dự Án Di Trú Thực Sự Đổ Vỡ Là Job Batch Gọi Nó.
Các công cụ ánh xạ phụ thuộc xoay quanh COBOL thường coi JCL chỉ là một lớp bọc mỏng — một tên job và vài câu lệnh DD. Nhưng phân nhánh theo mã điều kiện, PROC lồng nhau, và các thế hệ GDG mang theo luồng điều khiển thực sự của riêng chúng, và điều này thường xuyên bị bỏ sót khỏi đồ thị phụ thuộc. Vì sao Legacy Dragon phân tích cú pháp JCL như một ngôn ngữ hạng nhất trong cùng một AST, chứ không phải như siêu dữ liệu gắn thêm sau này.
Hướng dẫn322 Giọng Nói, 142 Ngôn Ngữ, Không Máy Chủ: Để Nhét Được Từng Đó Giọng Nói Vào Một Tab Trình Duyệt
Công cụ chuyển văn bản thành giọng nói của PrivateAI phủ hơn 322 giọng trên 142 ngôn ngữ, chạy hoàn toàn trên thiết bị. Tại sao độ phủ giọng nói và ngôn ngữ — chứ không phải tốc độ — mới là bài toán khó thực sự với TTS chạy trong trình duyệt, và con số này so với các lựa chọn mã nguồn mở và trả phí ra sao.