Phase 13: Tools & Protocols

Tương đương kỹ năng, đóng gói và di chuyển

Một kỹ năng được hoàn thành khi gói của nó tồn tại, hướng theo yêu cầu đúng, cải thiện một nhiệm vụ được đo lường, giữ trong chính sách, và xuống cấp trung thực trên một chủ nhà khác.

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:

  1. 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?
  2. Những lời cầu xin tương tự nào không nên bắt đầu?
  3. Chuyên gia thu thập bằng chứng nào trước?
  4. Những quyết định nào phụ thuộc vào bằng chứng đó?
  5. Những bước nào đủ quyết định để viết kịch bản?
  6. Những quy tắc miền nào xứng đáng được tham khảo?
  7. Điều gì cần được chấp thuận hoặc không được áp dụng?
  8. Những đồ tạo vật nào chứng minh rằng quá trình làm việc đã hoàn thành?
  9. Một nhà phê bình độc lập kiểm tra nó như thế nào?
  10. 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.

  1. Artifact contract:xác định các tệp, trường hoặc quyết định cần thiết.
  2. Verification:xác định cách kiểm tra từng yêu cầu.
  3. Evidence tools:thực hiện các bộ sưu tập và xác nhận xác định.
  4. Decision map:kết nối các trạng thái bằng chứng với các chi nhánh.
  5. References:cung cấp chi tiết miền tại chi nhánh cần nó.
  6. Entry body:giải thích quy trình làm việc, ranh giới, thất bại và đầu ra.
  7. Description:khả năng của trạng thái và giới hạn kích hoạt.
  8. Runtime adapters:thêm các lời kêu gọi hoặc mở rộng ngữ cảnh riêng biệt.
  9. Evals:chạy cấu trúc, định tuyến, hành vi, an toàn và các lớp di động.
  10. 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 typePurposeExample for release readiness
PositiveMeasure intended coverage"Can version 3.1.0 ship?"
Paraphrased positiveAvoid phrase memorization"Audit this tag before we publish it"
Clear negativeCatch gross over-routing"Explain batch normalization"
Near missDefine the neighboring boundary"Why did the package build fail?"
Competing skillTest selection among plausible entries"Draft the release notes"
Adversarial wordingTest 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 available

Giữ 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:

DimensionExample measure
CorrectnessRequired tests and invariants pass
CompletenessEvery artifact-contract field exists
EfficiencyTool calls, elapsed time, tokens, or cost
EvidenceClaims point to valid files or observations
ScopeForbidden files and actions remain untouched
RecoveryInterrupted run resumes without duplicate side effects
Human effortNumber 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.

CapabilityPortable package dependencyFallback if absent
Required name and descriptionCorePackage cannot participate in catalog
Body activationCore client behaviorExplicit file loading adapter
References, scripts, assetsCore package shapeHost needs file and process tools
Explicit human invocationHost UI or prompt conventionName the skill in ordinary text
Implicit model invocationHost routerApplication activates explicitly
Human/model 2x2 policyHost extension or application policyDisable implicit selection globally
Argument bindingHost parserAsk for values after activation
Pre-approved toolsExperimental or host-specificNormal permission prompts
Delegated contextHost-specificRun in current context or application subagent
Lifecycle hooksHost-specificExternal automation or no hook
Context preservationHost-specificPersist 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:

  1. phát hiện từ phạm vi dự kiến;
  2. hành vi tên trùng lặp;
  3. việc kêu gọi rõ ràng;
  4. Sự gọi ngầm hoặc trạng thái vô hiệu hóa của nó;
  5. xử lý tranh luận;
  6. truy cập tham chiếu và kịch bản;
  7. Thông báo về giấy phép và phê duyệt;
  8. thực hiện theo hướng ủy quyền hoặc trong bối cảnh hiện tại;
  9. tiếp tục sau khi kết hợp ngữ cảnh hoặc khởi động lại;
  10. 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 / n

Giữ 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: true

Cá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 -v

Khó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-depth

Tả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:

HostExplicit invocation
Codexskill-release-gate, or choose it from /skills, then provide the evaluation request
Claude Code/skill-release-gate followed by the evaluation request
Portable fallbackUse 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:

CheckHost 1Host 2 or fallback
Discovery and installed pathobserved valueobserved value or unverified
Explicit invocationpass or fail with evidencepass, fail, or fallback
Implicit and near-miss routingobserved or unverifiedobserved or unverified
Reference accessobserved path or failureobserved path or fallback
Script executioncommand and exit resultcommand and exit result or unsupported
Approval behaviorcontrolling layercontrolling 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-gate

Lư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

  1. 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.
  2. 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.
  3. 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.
  4. 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ợ.
  5. 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.
  6. 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.
  7. 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.
  8. 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

TermWhat people sayWhat 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

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.