Chuyển tới nội dung chính

Skill

Skill là gói kiến thức có cấu trúc cung cấp chuyên môn lĩnh vực cho mỗi agent. Chúng không chỉ là prompt — chúng chứa quy trình thực thi, tham chiếu tech stack, template mã, playbook xử lý lỗi, checklist chất lượng và ví dụ few-shot, được tổ chức trong kiến trúc 2 tầng thiết kế cho hiệu quả token.


Thiết kế 2 tầng

Layer 1: SKILL.md (~800 byte, luôn tải)

Mỗi skill có file SKILL.md ở gốc. File này luôn được tải vào cửa sổ ngữ cảnh khi skill được tham chiếu. Nó chứa:

  • YAML frontmatter với namedescription (dùng cho định tuyến và hiển thị)
  • Khi nào sử dụng / Khi nào KHÔNG sử dụng — điều kiện kích hoạt tường minh
  • Quy tắc cốt lõi — 5-15 ràng buộc quan trọng nhất cho lĩnh vực
  • Tổng quan kiến trúc — cách mã nên được cấu trúc
  • Danh sách thư viện — phụ thuộc được phê duyệt và mục đích
  • Tham chiếu — con trỏ đến tài nguyên Layer 2 (không bao giờ tự động tải)

Layer 2: resources/ (tải theo nhu cầu)

Thư mục resources/ chứa kiến thức thực thi sâu. Các file chỉ được tải khi:

  1. Agent được gọi tường minh (qua /command hoặc trường skills của agent)
  2. Tài nguyên cụ thể cần cho loại và độ khó task hiện tại

Việc tải theo nhu cầu được điều chỉnh bởi hướng dẫn tải ngữ cảnh (.agents/skills/_shared/core/context-loading.md), ánh xạ loại task đến tài nguyên cần thiết cho mỗi agent.


Loại tài nguyên theo skill

Loại tài nguyênMẫu tên fileMục đíchKhi tải
Quy trình thực thiexecution-protocol.mdQuy trình từng bước: Phân tích -> Lập kế hoạch -> Triển khai -> Xác minhLuôn (cùng SKILL.md)
Tech stacktech-stack.mdThông số công nghệ chi tiết, phiên bản, cấu hìnhTask phức tạp
Playbook lỗierror-playbook.mdQuy trình phục hồi với escalation "3 lần"Chỉ khi có lỗi
Checklistchecklist.mdXác minh chất lượng theo lĩnh vựcỞ bước Verify
Snippetsnippets.mdMẫu mã sao chép-dán sẵnTask Medium/Complex
Ví dụexamples.md hoặc examples/Ví dụ few-shot input/output cho LLMTask Medium/Complex
Biến thểThư mục stack/Tham chiếu theo ngôn ngữ/framework (tạo bởi /stack-set)Khi stack tồn tại
Templatecomponent-template.tsx, screen-template.dartTemplate file boilerplateKhi tạo component
Tham chiếu lĩnh vựcorm-reference.md, anti-patterns.md, v.v.Kiến thức lĩnh vực sâu cho subtask cụ thểTheo loại task

Tài nguyên dùng chung (_shared/)

Tất cả agent chia sẻ nền tảng chung từ .agents/skills/_shared/. Được tổ chức thành ba danh mục:

Tài nguyên cốt lõi

Tài nguyênMục đíchKhi tải
skill-routing.mdÁnh xạ từ khóa task đến agent đúngTham chiếu bởi orchestrator và skill coordination
context-loading.mdĐịnh nghĩa tài nguyên nào tải cho loại task và độ khó nàoKhi bắt đầu workflow
prompt-structure.mdĐịnh nghĩa bốn yếu tố mỗi prompt task phải chứa: Goal, Context, Constraints, Done WhenTham chiếu bởi agent PM và tất cả workflow
clarification-protocol.mdĐịnh nghĩa mức không chắc chắn (LOW/MEDIUM/HIGH) với hành động cho mỗi mứcKhi yêu cầu mơ hồ
context-budget.mdQuản lý ngân sách tokenKhi bắt đầu workflow
difficulty-guide.mdTiêu chí phân loại task Simple/Medium/ComplexKhi bắt đầu task
vendor-detection.mdGiao thức phát hiện môi trường runtime hiện tạiKhi bắt đầu workflow

Tài nguyên runtime

Tài nguyênMục đích
memory-protocol.mdĐịnh dạng file bộ nhớ và thao tác cho subagent CLI
execution-protocols/claude.mdMẫu thực thi đặc thù Claude Code
execution-protocols/gemini.mdMẫu thực thi đặc thù Gemini CLI
execution-protocols/codex.mdMẫu thực thi đặc thù Codex CLI
execution-protocols/qwen.mdMẫu thực thi đặc thù Qwen CLI

Tài nguyên có điều kiện

Tài nguyênĐiều kiện kích hoạtToken ước tính
quality-score.mdGiai đoạn VERIFY hoặc SHIP bắt đầu~250
experiment-ledger.mdThí nghiệm đầu tiên được ghi~250
exploration-loop.mdCùng cổng thất bại hai lần trên cùng vấn đề~250

Cách skill định tuyến qua skill-routing.md

Định tuyến đơn giản (một lĩnh vực)

Prompt chứa "Build a login form with Tailwind CSS" khớp từ khóa UI, component, form, Tailwind và định tuyến đến oma-frontend.

Định tuyến yêu cầu phức tạp

Yêu cầu đa lĩnh vực theo thứ tự thực thi đã thiết lập:

Mẫu yêu cầuThứ tự thực thi
"Create a fullstack app"oma-pm -> (oma-backend + oma-frontend) song song -> oma-qa
"Create a mobile app"oma-pm -> (oma-backend + oma-mobile) song song -> oma-qa
"Fix bug and review"oma-debug -> oma-qa
"Design and build a landing page"oma-design -> oma-frontend
"Do everything automatically"oma-orchestrator (nội bộ: oma-pm -> agent -> oma-qa)

Quy tắc phụ thuộc giữa agent

Có thể chạy song song (không phụ thuộc):

  • oma-backend + oma-frontend (khi API contract đã định nghĩa trước)
  • oma-backend + oma-mobile (khi API contract đã định nghĩa trước)
  • oma-frontend + oma-mobile (độc lập nhau)

Phải chạy tuần tự:

  • oma-brainstorm -> oma-pm (thiết kế trước lập kế hoạch)
  • oma-pm -> tất cả agent khác (lập kế hoạch trước)
  • agent triển khai -> oma-qa (đánh giá sau triển khai)

QA luôn cuối cùng, trừ khi người dùng yêu cầu đánh giá chỉ file cụ thể.


Toán tiết kiệm token

Xem xét phiên điều phối 5 agent (pm, backend, frontend, mobile, qa):

Không có tải lũy tiến:

  • Mỗi agent tải tất cả tài nguyên: ~4.000 token mỗi agent
  • Tổng: 5 x 4.000 = 20.000 token tiêu thụ trước khi bắt đầu làm việc

Với tải lũy tiến:

  • Chỉ Layer 1 cho tất cả agent: 5 x 800 = 4.000 token
  • Layer 2 chỉ tải cho agent đang hoạt động (thường 1-2 cùng lúc): +1.500 token
  • Tổng: ~5.500 token

Tiết kiệm: khoảng 72-75%

Trên mô hình tầng flash (128K ngữ cảnh), đây là sự khác biệt giữa 108K token có sẵn cho công việc và 125K token — biên độ đáng kể cho task phức tạp.


Tải tài nguyên theo độ khó task

Simple (3-5 lượt dự kiến)

Thay đổi một file, yêu cầu rõ ràng, lặp lại mẫu hiện có.

Tải: Chỉ execution-protocol.md. Bỏ qua phân tích, tiến thẳng đến triển khai với checklist tối thiểu.

Medium (8-15 lượt dự kiến)

Thay đổi 2-3 file, cần một số quyết định thiết kế, áp dụng mẫu vào lĩnh vực mới.

Tải: execution-protocol.md + examples.md. Quy trình chuẩn với phân tích ngắn gọn và xác minh đầy đủ.

Complex (15-25 lượt dự kiến)

Thay đổi 4+ file, cần quyết định kiến trúc, giới thiệu mẫu mới, phụ thuộc agent khác.

Tải: execution-protocol.md + examples.md + tech-stack.md + snippets.md. Quy trình mở rộng với checkpoint, ghi tiến trình giữa chừng và xác minh đầy đủ bao gồm common-checklist.md.


Clarification Debt và số liệu phiên

Clarification Debt (CD) đo chi phí yêu cầu không rõ ràng trong phiên. Orchestrator theo dõi mọi sửa chữa của người dùng và tính điểm:

Loại sự kiệnĐiểmMô tả
clarify+10Câu hỏi làm rõ đơn giản (bình thường cho MEDIUM)
correct+25Hiểu sai ý định cần đổi hướng
redo+40Vi phạm phạm vi/charter cần rollback và khởi động lại
blocked+0Agent đúng khi dừng và hỏi (hành vi tốt — không bị phạt)

Ngưỡng và áp dụng:

  • CD >= 50 → Mục RCA bắt buộc thêm vào lessons-learned.md
  • CD >= 80 → Phiên bị dừng, người dùng phải chỉ định lại yêu cầu
  • redo >= 2 → Orchestrator tạm dừng và yêu cầu xác nhận phạm vi tường minh

Sprint decomposition cho task phức tạp

Task phức tạp (4+ file, quyết định kiến trúc) dùng thực thi dựa trên sprint thay vì một lần chạy dài:

  1. Phân tách thành 2-4 sprint tập trung tính năng, mỗi sprint có thể test độc lập
  2. Mục tiêu 5-8 lượt mỗi sprint
  3. Cổng sprint sau mỗi sprint: Sản phẩm sprint hoàn thành? Lint/test pass? Nếu sprint mất 2x lượt dự kiến → ghi checkpoint, thông báo người dùng
  4. Tiếp tục sprint tiếp theo khi cổng pass

Giao thức reset ngữ cảnh

Agent chạy lâu giảm chất lượng khi ngữ cảnh đầy. Orchestrator (không phải agent) giám sát điều này và kích hoạt reset.

Điều kiện kích hoạt:

Điều kiệnPhát hiệnHành động
Cạn ngân sách lượtAgent dùng >= 80% lượt dự kiến VÀ tiêu chí chấp nhận < 50% hoàn thànhReset ngữ cảnh
Đình trệ tiến trìnhKhông cập nhật file progress trong 3+ chu kỳ giám sát liên tiếpReset ngữ cảnh
Đầu ra nôngFile kết quả chứa marker stub hoặc placeholder TODORe-spawn với hướng dẫn tường minh

Quy trình reset:

  1. Checkpoint — Lưu trạng thái hiện tại agent
  2. Kết thúc — Dừng lần chạy agent hiện tại
  3. Re-spawn — Khởi động agent mới với checkpoint làm ngữ cảnh
  4. Tiếp tục — Agent mới đọc checkpoint, tiếp tục từ mục còn lại