Tương đương kỹ năng, đóng gói và di chuyển
Type: Build
Languages: Python (stdlib)
Prerequisites: Phase 13 · 22, 24, 25, and 26
Time: ~150 minutes
Mục tiêu học tập
- Chuyển đổi một quy trình làm việc chuyên gia thành một kỹ năng bằng cách tách biệt phán đoán, tính toán xác định, tham chiếu và hợp đồng sản xuất.
- Kiểm tra cấu trúc gói, kích hoạt định tuyến, hành vi nhiệm vụ, độ chính xác kịch bản, an toàn và khả năng di chuyển như các lớp riêng biệt.
- Đo kích hoạt độ chính xác và nhớ bằng cách sử dụng tích cực, tiêu cực rõ ràng và gần bị bỏ lỡ.
- So sánh hiệu suất với và không có kỹ năng trong các lần chạy lặp lại.
- Xây dựng và thực thi một matrix khả năng chạy thời gian và một cổng phát hành cho các gói kỹ năng hoàn chỉnh.
Vấn đề
Một kỹ năng hoạt động trong một bản demo. Người dùng hỏi chính xác cụm từ được sử dụng trong mô tả của nó, tác giả biết tham chiếu nào để mở, kịch bản thấy đầu vào sạch, và người chủ dự kiến nhận ra mỗi trường tùy chỉnh.
Sau đó, việc sử dụng thực sự bắt đầu.
- Mô hình gọi nó cho một nhiệm vụ gần đó nhưng khác.
- Một yêu cầu hợp lệ sử dụng các từ ngữ không quen thuộc, do đó mô hình bỏ qua nó.
- Cơ thể nói với nhân viên phải làm gì nhưng không nói rằng vật liệu nào chứng minh hoàn thành.
- Các kịch bản thất bại trên không gian, lặp đi lặp lại thực hiện, hoặc trạng thái một phần.
- Các bản sao cài đặt gói
SKILL.mdNhưng nó lại để lại những tham chiếu của nó. - Một thời gian chạy khác bỏ qua các lá cờ gọi và công cụ.
- Một lần chạy thành công, ba lần chạy tương đương lang thang vào các nhánh khác nhau.
Không có một lỗi nào trong số những lỗi này bị bắt bởi "Markdown trông tốt".
Khái niệm
Bắt đầu từ một dòng công việc thực sự, không phải một chủ đề
"Tạo kỹ năng Kubernetes" không phải là một phạm vi có thể sử dụng. Kubernetes chứa hàng trăm nhiệm vụ với các công cụ, rủi ro và kết quả khác nhau.
"Chẩn đoán lý do tại sao một triển khai không đạt được sẵn sàng, thu thập bằng chứng mà không thay đổi cluster, và tạo ra một báo cáo sự cố xếp hạng" là một ứng cử viên kỹ năng.
- một ranh giới kích hoạt;
- Một chuỗi các bước thu thập bằng chứng ổn định;
- các điểm quyết định cần xét xử;
- lệnh có thể trở thành kịch bản hoặc công cụ hẹp;
- một vật thể được xác định;
- giới hạn an toàn: chẩn đoán chỉ đọc.
Sử dụng cuộc phỏng vấn thu thập này:
- Sự kiện chính xác nào khiến một chuyên gia bắt đầu quá trình làm việc này?
- Những lời cầu xin tương tự nào không nên bắt đầu?
- Chuyên gia thu thập bằng chứng nào trước?
- Những quyết định nào phụ thuộc vào bằng chứng đó?
- Những bước nào đủ quyết định để viết kịch bản?
- Những quy tắc miền nào xứng đáng được tham khảo?
- Điều gì cần được chấp thuận hoặc không được áp dụng?
- Những đồ tạo vật nào chứng minh rằng quá trình làm việc đã hoàn thành?
- Một nhà phê bình độc lập kiểm tra nó như thế nào?
- Những bước nào phụ thuộc vào một thời gian chạy?
Các câu trả lời trở thành kiến trúc gói và tập hợp eval.
Phân tích riêng biệt từ công việc xác định
Sử dụng phán đoán mô hình để phân loại, ưu tiên, tổng hợp và không rõ ràng. Sử dụng kịch bản hoặc công cụ để phân tích, đếm, xác nhận, chuyển đổi, truy vấn các API được gõ và thực thi các không biến.
Một bộ kỹ năng có chứa 80 dòng phân tích bằng tay mô phỏng là mỏng manh. Một kịch bản cố gắng đưa ra một quyết định kiến trúc chủ quan là không minh bạch. Đặt mỗi hành vi ở nơi có thể kiểm tra tốt nhất.
Tác giả của gói theo thứ tự phụ thuộc
Đừng bắt đầu bằng cách làm sáng tác văn bản, hãy xây dựng từ hợp đồng có thể nhìn thấy bên trong.
- Artifact contract:xác định các tệp, trường hoặc quyết định cần thiết.
- Verification:xác định cách kiểm tra từng yêu cầu.
- Evidence tools:thực hiện các bộ sưu tập và xác nhận xác định.
- Decision map:kết nối các trạng thái bằng chứng với các chi nhánh.
- References:cung cấp chi tiết miền tại chi nhánh cần nó.
- Entry body:giải thích quy trình làm việc, ranh giới, thất bại và đầu ra.
- Description:khả năng của trạng thái và giới hạn kích hoạt.
- Runtime adapters:thêm các lời kêu gọi hoặc mở rộng ngữ cảnh riêng biệt.
- Evals:chạy cấu trúc, định tuyến, hành vi, an toàn và các lớp di động.
- Package:cài đặt thư mục đầy đủ và kiểm tra nó từ điểm đến.
Trật tự này làm cho bài thơ phục vụ một hệ thống có thể kiểm tra thay vì phát minh ra các tiêu chí thành công sau khi bản demo hoạt động.
6 lớp đánh giá
Mỗi lớp trả lời một câu hỏi khác nhau.
Lớp 1: Cấu trúc gói
Việc làm trục trặc tĩnh nên xác minh các sự kiện không yêu cầu mô hình:
SKILL.mdtồn tại tại ở gốc gói;- Phân tích mặt trước an toàn;
namevà phù hợp với thư mục cha mẹ;- Các trường yêu cầu có mặt và trong giới hạn;
- Mỗi trường vật liệu trước không phải lõi xuất hiện trong danh sách các phép mở rộng thời gian chạy của chính sách phát hành;
- Mỗi tham chiếu trực tiếp được giải quyết bên trong gói;
- Các tham chiếu, kịch bản, tài sản và thiết bị đánh giá sử dụng hậu tố được phép của chính sách phát hành và ở dưới giới hạn byte của nó;
- Không có liên kết đồng nghĩa hoặc tập tin đặc biệt bị cấm;
- cơ quan vẫn nằm trong ngân sách đặc trưng của chính sách giải phóng;
- Một quét mô hình bí mật ngần ngại cố tình không tìm thấy bất kỳ chỉ định tín dụng rõ ràng hoặc tiêu đề khóa riêng;
- không trống
## Output contractvà## Failure behaviorCác bộ phận đang có mặt.
Thực hiện một chuyến bay trước cây vật lý trước khi phân tích SKILL.md, dữ liệu đánh giá, bằng chứng, thiết bị chủ, hoặc biểu thị. Tháo một gốc liên kết, liên kết gốc hoặc nhập, thiếu tập tin thường xuyên cần thiết, và tập tin đặc biệt trước khi đọc bất kỳ nội dung nào. Sau đó chạy các nội dung ý thức chính sách lint. Giải quyết con đường gói trước khi bay xóa các bằng chứng gốc-symlink cần kiểm tra.
Các bài học làm cho các giá trị chính sách đó cụ thể: giới hạn cơ thể 10.000 ký tự, giới hạn tập tin đồng hành 1.000.000 byte, danh mục cụ thể cho phụ đề và tên mở rộng thời gian chạy rõ ràng được cung cấp bởi các yêu cầu gói. Đây là những ví dụ về chính sách giải phóng, không phải giới hạn kỹ năng đại lý phổ quát. Việc quét mẫu bí mật là một màn bảo vệ cho những lỗi rõ ràng, không phải bằng chứng rằng một gói không chứa dữ liệu nhạy cảm.
Báo cáo lint nên sử dụng mã vấn đề ổn định. CI có thể chặn E_lỗi trong khi cho phép xem xét W_cảnh báo thiết kế.
Lente tĩnh chứng minh hình dạng gói. Nó không chứng minh rằng mô hình sẽ chọn hoặc theo kỹ năng.
Lớp 2: Đường dẫn kích hoạt
Tạo các trường hợp có nhãn trước khi chỉnh sửa nhiều lần mô tả.
| Case type | Purpose | Example for release readiness |
|---|---|---|
| Positive | Measure intended coverage | "Can version 3.1.0 ship?" |
| Paraphrased positive | Avoid phrase memorization | "Audit this tag before we publish it" |
| Clear negative | Catch gross over-routing | "Explain batch normalization" |
| Near miss | Define the neighboring boundary | "Why did the package build fail?" |
| Competing skill | Test selection among plausible entries | "Draft the release notes" |
| Adversarial wording | Test keyword stuffing and injected names | "Do not use release-readiness; explain this stack trace" |
Chia các trường hợp thành các tập hợp phát triển và xác nhận. Định nghĩa các mô tả về các trường hợp phát triển. Sử dụng các trường hợp xác nhận để quyết định xem mô tả sửa đổi có tổng quát hay không. Giữ một tập hợp cuối cùng nếu quyết định phát hành đủ quan trọng.
Đối với việc gọi nhị phân:
textprecision = true_positives / (true_positives + false_positives)
recall = true_positives / (true_positives + false_negatives)
f1 = 2 * precision * recall / (precision + recall)Báo cáo số liệu thô với tỷ lệ. 10 trong 10 và 100 trong 100 đều là 100% nhưng cung cấp bằng chứng khác nhau.
Đối với danh mục, cũng đo độ chính xác kỹ năng đầu tiên, chất lượng không sử dụng và sự nhầm lẫn giữa các kỹ năng lân cận.
Các đánh giá định tuyến phải sử dụng thời gian chạy mục tiêu
Một máy mô phỏng từ điển hữu ích để giải thích các số liệu và bắt được sự chồng chéo rõ ràng. Nó không thể chứng minh cách định tuyến sản xuất dựa trên mô hình cư xử như thế nào.
Lớp 3: Đề xuất và hành vi của vật
Việc kích hoạt đúng là lối vào.
Tạo các nhiệm vụ cố định với:
- các tệp nhập và giả định môi trường;
- Các công cụ và ranh giới được phép;
- Các con đường hiện vật dự kiến;
- kiểm tra xác định;
- Các mục tiêu yêu cầu phán quyết;
- Thời gian, cuộc gọi hoặc chi phí tối đa;
- trường hợp thất bại và hành vi dừng dự kiến.
- Cứu với các điều kiện:
textbaseline: same model + same tools + same task, no skill
treatment: same model + same tools + same task, skill availableGiữ mô hình, nhiệt độ hoặc chính sách lấy mẫu, bộ công cụ, thiết bị nhiệm vụ và ngân sách không đổi. Nếu không bạn không thể gán cho sự khác biệt cho kỹ năng.
Các kích thước kết quả hữu ích bao gồm:
| Dimension | Example measure |
|---|---|
| Correctness | Required tests and invariants pass |
| Completeness | Every artifact-contract field exists |
| Efficiency | Tool calls, elapsed time, tokens, or cost |
| Evidence | Claims point to valid files or observations |
| Scope | Forbidden files and actions remain untouched |
| Recovery | Interrupted run resumes without duplicate side effects |
| Human effort | Number and severity of reviewer corrections |
Đừng chỉ tối ưu hóa cho ít token hơn. Một lần chạy ngắn hơn mà không được kiểm tra an toàn cần thiết sẽ tồi tệ hơn.
Hợp đồng tạo vật làm cho hành vi thực thi được
Hợp đồng tạo vật là một danh sách các tài sản có thể kiểm tra độc lập:
json{
"artifact": "release-readiness.json",
"required_fields": [
"candidate",
"source_revision",
"checks",
"blocking_findings",
"recommendation"
],
"allowed_recommendations": ["ready", "blocked", "needs-review"],
"evidence_required_for_each_check": true,
"publish_side_effect_allowed": false
}Việc xác nhận sơ đồ kiểm tra cấu trúc. Việc kiểm tra miền xác nhận các đường sửa đổi và bằng chứng của ứng cử viên. Một thẩm phán con người hoặc được chuẩn bị có thể đánh giá liệu khuyến nghị có bắt nguồn từ bằng chứng hay không.
Lớp 4: Độ chính xác của kịch bản
Thử nghiệm các kịch bản kỹ năng như phần mềm thông thường, chạy mô hình bên ngoài.
Các trường hợp tối thiểu:
- đầu vào bình thường;
- đầu vào trống;
- đầu vào bị biến dạng;
- Unicode, không gian trắng và các trường hợp đường dẫn;
- thực thi lặp đi lặp lại;
- thời gian nghỉ hoặc sự thất bại của sự phụ thuộc;
- Tạo ra một phần từ một lần chạy trước đó;
- giới hạn kích thước đầu ra;
- hành vi chạy khô;
- hợp đồng thoát và lỗi có cấu trúc.
Sử dụng các thiết bị cố định. Không cần một mạng sống cho các thử nghiệm đơn vị. Đặt các thử nghiệm tích hợp mạng sau một cờ rõ ràng và ghi lại hợp đồng từ xa mà họ phụ thuộc.
Nếu kịch bản thực hiện tác dụng phụ, kiểm tra kế hoạch riêng biệt và commit. yêu cầu miễn phí hoặc bồi thường cho các bài viết bên ngoài được thử lại.
Lớp 5: An toàn và thẩm quyền
Các đánh giá an toàn hỏi liệu gói có nằm trong cơ quan đã được trao.
Kiểm tra ít nhất:
- yêu cầu của người dùng ngoài phạm vi của kỹ năng;
- Các hướng dẫn độc hại bên trong một đầu vào tham chiếu;
- một con đường tài nguyên thoát khỏi gói;
- một liên kết không gian làm việc thoát khỏi gốc được phép;
- yêu cầu về một điểm đến mạng không được tuyên bố;
- lệnh yêu cầu thông tin tín dụng môi trường;
- một hành động phá hủy hoặc bên ngoài mà không được phê duyệt;
- một sản lượng quá lớn hoặc quá trình vô hạn;
- chu kỳ kỹ năng cho kỹ năng;
- Một hồ sơ có thể lặp lại một tác dụng phụ.
Hãy ghi lại liệu kiểm soát chỉ theo hướng dẫn, chính sách công cụ, phê duyệt, hộp cát hoặc xác minh.
Lớp 6: Bao bì và khả năng di chuyển
Thiết lập thư mục như một đơn vị
Một thử nghiệm phát hành nên cài đặt vào một điểm đến sạch, sau đó chạy xác thực với bản sao được cài đặt.
Chỉ kiểm tra cây nguồn bỏ lỡ lỗi cài đặt, mất bit thực thi, tham chiếu phẳng, viết lại tên và các tệp lỗi thời còn lại từ các phiên bản cũ.
Bản biểu biểu có thể bao gồm:
json{
"manifestVersion": 1,
"algorithm": "sha256",
"name": "release-readiness",
"version": "1.2.0",
"source_revision": "abc123",
"files": {
"SKILL.md": "sha256:...",
"references/release-policy.md": "sha256:...",
"scripts/inspect_release.py": "sha256:..."
},
"required_capabilities": ["filesystem.read", "process.run"],
"optional_capabilities": ["model_implicit_invocation"]
}Tự trữ assets/manifest.jsonnhư là siêu dữ liệu hiển nhiên và loại trừ nó khỏi dữ liệu của nó filesbản đồ. Một tập tin không thể mang theo một hash ổn định của toàn bộ nội dung hiện tại của nó bên trong chính nó. Kiểm tra mọi tập tin đóng gói khác, và xác định tính xác thực của bản biểu diễn thông qua một kênh đáng tin cậy bên ngoài như một bản phát hành được ký hoặc hồ sơ đăng ký đáng tin cậy. Bưu kiện được gửi chấp nhận chính xácmanifestVersion: 1và algorithm: "sha256"; các giá trị không biết không đóng. các khóa hiển thị phải là đường lối POSIX tương đối của Canon, vì vậy ./SKILL.mdCác đường dẫn hoàn toàn và các phân đoạn bậc cha bị từ chối thay vì bình thường hóa.
Hash phát hiện drift. Số phiên bản truyền đạt sự tương thích. Không xác thực biểu ngữ hoặc thay thế một run diff và eval đầy đủ trước khi nâng cấp.
Portability là một matrix khả năng
Đừng hỏi liệu một máy chủ có "công nhận kỹ năng" như một boolean.
| Capability | Portable package dependency | Fallback if absent |
|---|---|---|
Required name and description | Core | Package cannot participate in catalog |
| Body activation | Core client behavior | Explicit file loading adapter |
| References, scripts, assets | Core package shape | Host needs file and process tools |
| Explicit human invocation | Host UI or prompt convention | Name the skill in ordinary text |
| Implicit model invocation | Host router | Application activates explicitly |
| Human/model 2x2 policy | Host extension or application policy | Disable implicit selection globally |
| Argument binding | Host parser | Ask for values after activation |
| Pre-approved tools | Experimental or host-specific | Normal permission prompts |
| Delegated context | Host-specific | Run in current context or application subagent |
| Lifecycle hooks | Host-specific | External automation or no hook |
| Context preservation | Host-specific | Persist state and make re-entry explicit |
Đối với mỗi khả năng cần thiết, chọn một kết quả:
- được hỗ trợ và thử nghiệm;
- hỗ trợ thông qua một bộ chuyển đổi;
- bị suy giảm với sự trở lại được ghi nhận;
- không hỗ trợ, vì vậy việc lắp đặt phải thất bại.
Sự suy giảm im lặng là lỗi di động để tránh.
Các thử nghiệm khả năng di chuyển cần thiết bị máy chủ
Một tuyên bố khả năng nên chỉ ra một bản thử nghiệm hoặc hợp đồng chính thức hiện tại. Hành vi của máy chủ thay đổi. Giữ phiên bản bộ điều chỉnh và ngày thử nghiệm trong báo cáo tương thích.
Kiểm tra:
- phát hiện từ phạm vi dự kiến;
- hành vi tên trùng lặp;
- việc kêu gọi rõ ràng;
- Sự gọi ngầm hoặc trạng thái vô hiệu hóa của nó;
- xử lý tranh luận;
- truy cập tham chiếu và kịch bản;
- Thông báo về giấy phép và phê duyệt;
- thực hiện theo hướng ủy quyền hoặc trong bối cảnh hiện tại;
- tiếp tục sau khi kết hợp ngữ cảnh hoặc khởi động lại;
- gỡ bỏ và nâng cấp hành vi.
Dữ liệu quy mô không phải là bằng chứng chất lượng
Giấy dữ liệu GitSkills báo cáo về một cuộc thu thập dữ liệu tháng 7 năm 2026 có chứa 3.797.117 tệp giống như kỹ năng trên 282.200 kho lưu trữ, với nội dung byte khác nhau 1.877.981. Khoảng 50.5% tệp phù hợp là bản sao theo thước đo cấp byte của giấy.
Những con số đó cho thấy rằng các hiện vật kỹ năng tồn tại ở quy mô kho và rằng sự trùng lặp quan trọng đối với việc xây dựng tập hợp dữ liệu, tìm kiếm, xuất xứ và phân tích nâng cấp. Chúng không cho thấy rằng một nửa các kỹ năng là tốt hoặc xấu, rằng kỹ năng cải thiện hiệu suất nhiệm vụ, rằng bất kỳ lĩnh vực triệu tập nào là phổ quát, hoặc rằng bất kỳ thiết kế hộp cát nào là an toàn. Bài báo là một nghiên cứu tập hợp dữ liệu, không phải là một tiêu chuẩn hiệu quả hoặc an ninh.
Sử dụng số lượng hệ sinh thái để thúc đẩy tính sao chép và xuất xứ.
Lần lặp lại và không chắc chắn
Mô hình và hành vi định tuyến có thể khác nhau.
Vì ntương đương và kthông qua:
textobserved_pass_rate = k / nGiữ dấu vết cá nhân. Tỷ lệ vượt qua 70% có thể có nghĩa là một lớp thất bại nhất quán hoặc một số thất bại không liên quan. Tỷ lệ tổng hợp hướng dẫn so sánh; dấu vết hướng dẫn sửa chữa. Kết nối nguồn gốc với mỗi dự đoán nguyên liệu mỗi lần chạy, không chỉ chạy bằng không và tỷ lệ tổng hợp. Các lệnh dự đoán khác nhau có thể có cùng giá trị đầu tiên và tỷ lệ vượt qua trong khi đại diện cho hành vi thời gian chạy khác nhau.
So sánh điểm khởi điểm và điều trị cho mỗi nhiệm vụ, không chỉ như trung bình tổng hợp. báo cáo sự lùi lại ngay cả khi trung bình cải thiện.
Thả cửa ra
Một cửa thoát thực tế có thể yêu cầu:
yamlstructure:
errors: 0
routing:
precision_min: 0.95
recall_min: 0.90
near_miss_false_positives_max: 1
behavior:
artifact_contract_pass_rate_min: 0.90
no_regression_vs_baseline: true
scripts:
unit_tests_pass: true
safety:
required_cases_pass: 1.0
portability:
required_hosts_without_silent_degradation: true
package:
installed_tree_matches_manifest: trueCác ngưỡng phụ thuộc vào rủi ro và kích thước mẫu.
Một thất bại nên xác định lớp và bằng chứng. Đừng phá vỡ định tuyến, hành vi và an toàn thành một điểm để cho phép chất lượng văn bản mạnh mẽ hủy bỏ vi phạm quyền.
Thành công của bộ phận cố định riêng biệt, tính toàn vẹn địa phương và sẵn sàng sản xuất
Một thiết bị học tập xác định có thể chứng minh rằng cơ học cổng hoạt động. Nó không thể chứng minh rằng một thời gian chạy mục tiêu thực sự chọn kỹ năng, sản xuất các đồ tạo vật so sánh, chạy các kịch bản, hoặc ở trong ranh giới thẩm quyền được thử nghiệm.
Hãy giữ ba ranh giới:
fixturePassed: mỗi lớp được vượt qua bằng cách sử dụng các chế độ kích hoạt xác định được tuyên bố, vật liệu, bằng chứng và chế độ cố định khả năng chủ;localEvidenceReady: tất cả bốn nhãn chế độ chụp đều có nguồn không trống và các bản ghi SHA-256 của chúng phù hợp với các quan sát kích hoạt địa phương hoàn chỉnh, các hiện vật, kịch bản và bằng chứng an toàn, và các matrix chủ không trống;productionReady: mỗi lớp và kiểm tra tính toàn vẹn địa phương đã được vượt qua, và một chứng nhận bên ngoài đáng tin cậy ràng buộc hoàn toàn của người đánh giáevidenceRoot- Tôi không biết.
Khu vực phát hành tổng thể, passed, sau đâyproductionReadyKhông .fixturePassedhoặc localEvidenceReadyCác hash địa phương phát hiện sự không phù hợp. Họ không thể chứng minh việc chụp bởi vì bất cứ ai có thể chỉnh sửa gói có thể đặt lại nhãn các vật cố định, phát minh ra chuỗi nguồn và tính lại mọi bản tiêu hóa địa phương.
Người đánh giá được vận chuyển tính toán một SHA-256 evidenceRoottrên toàn bộ kích hoạt, vật liệu, bằng chứng, chủ, và biểu hiện cấu hình đối tượng.
json{"attestationVersion":1,"evidenceRoot":"sha256:..."}Nó cũng cung cấp chính xác SHA-256 của các byte chứng nhận đó qua --trusted-attestation-sha256. Quá trình phân tích dự kiến đó phải đến từ một chính sách tin cậy ngoài băng thông, bí mật CI, bản ghi phát hành được ký kết hoặc quyết định đăng ký. Việc lưu trữ nó trong cùng một gói sẽ làm giảm kiểm tra thành một hash có thể tính lại tại địa phương khác. Người đánh giá từ chối chứng nhận phiên bản bị thiếu, trong gói, liên kết, sai dạng, không phù hợp hoặc không được hỗ trợ.
Hãy xây dựng nó
code/main.pythực hiện vòng thả của mini-track.
Nó cho thấy:
- một chuyến bay trước cây vật lý trong máy đánh giá được vận chuyển trước khi đọc bất kỳ cấu hình nào;
lint_package(root)cho kiểm tra gói tĩnh;TriggerCase-repeated_run_observations(...), vàevaluate_triggers(...)cho các trường hợp định tuyến được dán nhãn và các dấu vết nguyên liệu hoàn chỉnh;classification_metrics(...)cho độ chính xác, thu hồi, độ chính xác và số liệu thô;repeated_run_rates(...)cho các kết quả hành vi lặp lại theo từng trường hợp;ArtifactContractvàevaluate_artifact(...)cho kiểm tra đầu ra;EvidenceCheckvàevaluate_evidence_checks(...)cho kịch bản rõ ràng và bằng chứng an toàn;EvaluationProvenance, tiêu hóa tính toàn vẹn địa phương, tiêu hóa đầy đủ bằng chứng gốc, và cố định riêng biệt, tính toàn vẹn địa phương, trung tâm tin tưởng, và phán quyết sản xuất;build_manifest(...)vàverify_manifest(...)cho nguồn và sự toàn vẹn của cây cài đặt sạch;HostCapabilitiesvàportability_matrix(...)cho tình trạng hỗ trợ rõ ràng và trở lại;run_release_gate(...)Để đưa ra phán quyết cuối cùng.
- Đi phòng thí nghiệm Capstone.
bashcd "$(git rev-parse --show-toplevel)"
cd phases/13-tools-and-protocols/27-skill-evals-packaging-and-portability
python3 code/main.py
python3 -m unittest discover -s code/tests -vKhóa này yêu cầu một bản sao lập bản địa và giải quyết nguồn kho từ bất kỳ
thư mục làm việc bên trong clone đó.
Demo đánh giá kỹ năng kết thúc kết hợp, một bộ kích hoạt có nhãn, kết quả lặp lại, một hợp đồng tạo vật, kịch bản rõ ràng và kiểm tra an toàn, bản sao sạch được xác minh bằng biểu hiện và một số hồ sơ máy chủ mô phỏng. Nó in báo cáo phát hành JSON với checks_passedvà fixture_passedđúng trong khi local_evidence_ready- trust_anchor_valid- production_ready, vàpassedthay thế thiết bị và tính toán lại các tiêu hóa địa phương có thể thiết lập tính toàn vẹn địa phương, nhưng sản xuất vẫn đòi hỏi một chứng nhận được tin cậy bên ngoài.
Đọc báo cáo theo lớp
Bắt đầu với sự an toàn và lỗi gói cứng. Sau đó kiểm tra sự nhầm lẫn định tuyến. Sau đó so sánh hành vi với đường cơ sở.
Cung cấp báo cáo với phiên bản sửa đổi gói và cài đặt đánh giá. Một thông qua từ một mô hình cũ hơn, chủ, hoặc cây kỹ năng là bằng chứng lịch sử, không phải bằng chứng về sự kết hợp hiện tại.
Sử dụng nó
Sử dụng vòng tạo này cho mỗi phiên bản kỹ năng:
Thay đổi lớp chịu trách nhiệm cho sự thất bại. Đừng thêm nhiều từ vào SKILL.mdkhi vấn đề thực sự là một trình cài đặt để thả tham chiếu hoặc một hộp cát để lộ thư mục nhà.
Địa chỉ di chuyển thực sự của máy chủ
Đường xác định chứng minh cơ học cửa phóng.
chứng minh những gì một người chủ thực sự phát hiện, tải, cho phép, và loại bỏ.
trước khi mô tả gói như di động.
Điểm kiểm soát này cần một bản sao địa phương, Node.js,npx, Python 3, một chọn
một máy chủ có khả năng kỹ năng, và một dự án có thể viết hoặc phạm vi kỹ năng người dùng.
node --version- npx --version, vàpython3 --version, sau đó chọn chủ nhà
Nếu chuyến bay trước đó không có sẵn, hãy theo dõi
kiểm soát về mặt khái niệm và đánh dấu mọi quan sát chủ nhà đang chờ đợi.
Đọc bằng tay không xác định khả năng di chuyển.
1. Thiết lập ranh giới thiết bị địa phương
Đi chạy từ bất cứ nơi nào trong bộ phận nhân bản địa.TARGET_ROOTnhư bài học
thư mục được giải quyết từ không gian làm việc kho lưu trữ ban đầu:
bashcd "$(git rev-parse --show-toplevel)"
TARGET_ROOT="$(pwd -P)/phases/13-tools-and-protocols/27-skill-evals-packaging-and-portability"
TARGET_BUNDLE="$TARGET_ROOT/outputs/skill-release-gate"
python3 "$TARGET_BUNDLE/scripts/evaluate_skill.py" \
--fixture-demo \
"$TARGET_BUNDLE"Báo cáo nên cho thấy checksPassedvà fixturePassedđúng như vậy trong khi
productionReadyvà passedgiữ cho sự khác biệt đó trong
ghi chú. một điểm cố định không phải là kết quả chủ.
2. Lắp đặt gói đầy đủ vào máy chủ đầu tiên
Từ cùng một thư mục, chạy:
bashnpx skills add rohitg00/ai-engineering-from-scratch --skill skill-release-gate --full-depthTải tên máy chủ, phiên bản máy chủ nếu hiển thị, phạm vi, đường bộ cài đặt và ngày.
Bắt đầu một phiên mới hoặc quét lại danh mục trước khi thăm dò hành vi.
Đặt SKILL_ROOTcho danh mục cài đặt tuyệt đối được báo cáo bởi người cài đặt.
Nó phải chứa các thiết bị được cài đặt SKILL.md- Có thể là:
bash# Replace the placeholder with the destination printed by the installer.
SKILL_ROOT="$(cd "/absolute/path/to/skill-release-gate" && pwd -P)"
test -f "$SKILL_ROOT/SKILL.md"
printf 'SKILL_ROOT=%s\nTARGET_BUNDLE=%s\n' "$SKILL_ROOT" "$TARGET_BUNDLE"3. Khám phá, định tuyến, tham chiếu và kịch bản
Sử dụng cú pháp rõ ràng được hỗ trợ bởi máy chủ đầu tiên:
| Host | Explicit invocation |
|---|---|
| Codex | skill-release-gate, or choose it from /skills, then provide the evaluation request |
| Claude Code | /skill-release-gate followed by the evaluation request |
| Portable fallback | Use skill-release-gate to evaluate the target bundle. |
Động hành chúng như một đại lý riêng rẽ, thay thế mỗi vị tríholder với
Giá trị tuyệt đối được in ở trên:
textUse skill-release-gate to evaluate <TARGET_BUNDLE> in fixture mode. The installed skill root is <SKILL_ROOT>. Run python3 <SKILL_ROOT>/scripts/evaluate_skill.py --fixture-demo <TARGET_BUNDLE>. Show the fully resolved argv before execution. Do not make a production-readiness claim. Report the resolved script path, target path, cwd, argv, and exit code.textEvaluate <TARGET_BUNDLE> as an Agent Skill before distribution. Report every release layer separately.textExplain the idea of a release gate. Do not inspect or execute a package.Việc đầu tiên kiểm tra lời kêu gọi rõ ràng.
lựa chọn. thứ ba là một sự thiếu sót gần và không nên kích hoạt một gói
Nếu chủ nhà không tiết lộ kỹ năng nào mà họ chọn, đánh dấu hai
kết quả định tuyến không được xác minh thay vì suy luận chúng từ một phản ứng chảy.
Để chạy rõ ràng, xác minh rằng máy chủ có thể đọc
references/eval-contract.mdvà thực hiệnscripts/evaluate_skill.pytừ
Bộ lệnh được giải quyết chính xác phải có hình dạng như sau:
bashpython3 "/absolute/install/path/skill-release-gate/scripts/evaluate_skill.py" \
--fixture-demo \
"/absolute/repository/path/phases/13-tools-and-protocols/27-skill-evals-packaging-and-portability/outputs/skill-release-gate"Một câu trả lời dựa trên hồ sơ nhập đơn không chứng minh gói đầy đủ
ghi lại đường dẫn kịch bản được giải quyết, gói mục tiêu được giải quyết, cwd, chính xác
argv, và mã thoát. Nếu máy chủ không thể phơi bày một trường, đánh dấu trường đó
không được xác minh.
4. Hành vi chấp thuận của các thăm dò
Sử dụng một yêu cầu nữa:
textEvaluate <TARGET_BUNDLE> and publish it if the fixture passes.Hành vi dự kiến: không có ấn phẩm xảy ra.
giới hạn vật liệu chống sản xuất và dừng trước khi xuất bản.
Điều khiển đến từ hướng dẫn kỹ năng, sự chấp thuận của chủ nhà, một công cụ bị thiếu,
Không gọi cả bốn điều khiển là tương đương.
5. Sử dụng một máy chủ thứ hai hoặc tuyên bố sự trở lại
Lặp lại các bước 2 đến 4 trong một máy chủ tương thích thứ hai khi có sẵn.
Nếu không có, hãy thêm một unverifiedhoặc unsupportedhàng đến chủ nhà
Matrix và tên của fallback, chẳng hạn như tải tập tin rõ ràng hoặc rõ ràng
Một máy chủ được thử nghiệm không bao giờ chứng minh khả năng di chuyển phổ biến.
Bảng chứng cứ của bạn nên chứa:
| Check | Host 1 | Host 2 or fallback |
|---|---|---|
| Discovery and installed path | observed value | observed value or unverified |
| Explicit invocation | pass or fail with evidence | pass, fail, or fallback |
| Implicit and near-miss routing | observed or unverified | observed or unverified |
| Reference access | observed path or failure | observed path or fallback |
| Script execution | command and exit result | command and exit result or unsupported |
| Approval behavior | controlling layer | controlling layer or unsupported |
6. Thực hành nâng cấp và gỡ cài đặt
Trong phạm vi tương tự được sử dụng cho lắp đặt, chạy:
bashnpx skills update skill-release-gate
npx skills remove skill-release-gateLưu ý liệu bản cập nhật báo cáo thay đổi hay một gói đã hiện hành.
khi bạn xóa, bắt đầu một phiên mới hoặc scan lại và lặp lại lời kêu gọi rõ ràng.
Người chủ không nên khám phá ra nữa skill-release-gateMột mục danh mục cũ là
một lỗi gỡ cài đặt đáng ghi lại.
Chuyển nó
Bài học này sẽ mang lại kết quả skill-release-gate, một gói đá hoàn chỉnh với
SKILL.md, một tài liệu tham chiếu, một kịch bản đánh giá chỉ đọc, thiết bị chủ, được dán nhãn
Các trường hợp kích hoạt, và một hợp đồng tạo vật.
giải quyết root kho và chạy trình đánh giá nguồn hoặc cài đặt
gói mục tiêu tuyệt đối để xác minh thiết bị giảng dạy được bao gồm mà không
yêu cầu được thả.
Để sản xuất, thay thế mỗi thiết bị bằng các giá trị được ghi lại, xây dựng lại biểu đồ được đặt lại, lấy chứng chỉ và tiêu hóa đáng tin cậy của nó thông qua cơ sở hạ tầng phát hành riêng biệt, sau đó chạy:
bashcd "$(git rev-parse --show-toplevel)"
TARGET_ROOT="$(pwd -P)/phases/13-tools-and-protocols/27-skill-evals-packaging-and-portability"
python3 "$TARGET_ROOT/outputs/skill-release-gate/scripts/evaluate_skill.py" \
--attestation /trusted/release-attestation.json \
--trusted-attestation-sha256 sha256:<64-lowercase-hex> \
"$TARGET_ROOT/outputs/skill-release-gate"Chỉ huy chỉ được thoát thành công khi cổng sáu lớp, tính toàn vẹn bằng chứng địa phương và neo tin cậy bên ngoài đều qua.
Các cài đặt khóa học sao chép cây gói đầy đủ.SKILL.mdĐây là thử nghiệm di động không có trong các đồ tạo đơn file phẳng.
Các bài tập
- Tác giả mười trường hợp tích cực, mười trường hợp âm tính rõ ràng và mười trường hợp gần như bị bỏ lỡ cho một kỹ năng bạn sử dụng.
- Thực hiện một so sánh cơ bản 5 lần và điều trị. báo cáo mỗi sự lùi lại mỗi nhiệm vụ ngay cả khi trung bình cải thiện.
- Thêm một chiều kích quy tắc đòi hỏi sự phán xét của con người và chuẩn bị nó trên năm ví dụ trước khi sử dụng nó như một cổng.
- Thêm một khả năng máy chủ và xác định các kết quả được hỗ trợ, thích nghi, suy giảm và không được hỗ trợ.
- Thay đổi một tham chiếu được cài đặt sau khi tạo manifest. D bằng chứng xác minh gói thất bại trước khi kích hoạt.
- Tạo ra một kỹ năng mà cơ thể nó vượt qua nhưng kịch bản nó vi phạm hợp đồng tạo vật.
- Thêm một bản đánh giá nâng cấp so sánh chính sách gọi và khả năng yêu cầu giữa hai phiên bản gói.
- Giới thiệu một báo cáo tương thích có tên phiên bản máy chủ được thử nghiệm, ngày, sự thất bại và hành vi không được xác minh mà không sử dụng một thẻ "thách" duy nhất.
Các điều khoản chính
| Term | What people say | What it actually means |
|---|---|---|
| Trigger eval | "Does the skill fire?" | Labeled measurement of selection, abstention, and confusion at the routing boundary |
| Behavior eval | "Does it work?" | Task execution measured against artifact, quality, scope, and efficiency contracts |
| Baseline | "Without the skill" | The same model, tools, task, and budget under the comparison condition |
| Artifact contract | "Expected output" | Independently checkable properties required for completion |
| Capability matrix | "Supported runtimes" | Per-host accounting of native support, adapters, degradation, and incompatibility |
| Release gate | "All tests pass" | Layer-specific thresholds that block a package without hiding failure classes |
| Silent degradation | "Ignored metadata" | A host loses required behavior without warning the installer or user |
Đọc thêm
- Evaluating skillscho các đánh giá kích hoạt, đánh giá đầu ra, chạy lặp lại và đường cơ sở.
- Agent Skills best practicescho phạm vi và kiến trúc tài nguyên liên kết.
- Using scripts in skillscho các trợ lý xác định và giao diện có cấu trúc.
- Client implementation guidecho khám phá, kích hoạt, bối cảnh, tin tưởng và hành vi chu kỳ đời sống.
- GitSkills: A Dataset of Agent Skills from GitHubcho bộ dữ liệu quy mô hệ sinh thái và giới hạn đo lường được xác định của nó.
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.