Phase 14: Agent Engineering

Verifikasyon Kapıları

Ajan kendi işini tamamlanmış olarak işaretlemeye başlamaz. Bir doğrulama kapısı kapsam sözleşmesini, geri bildirim günlüğünü, kural raporunu ve farkı okuyor ve tek bir soruya cevap veriyor: Bu görev gerçekten tamamlandı mı? Kapı hayır diyorsa, görev tamamlanmamıştır, sohbet ne derse olsun.

Type: Build

Languages: Python (stdlib)

Prerequisites: Phase 14 · 33 (Rules), Phase 14 · 36 (Scope), Phase 14 · 37 (Feedback)

Time: ~55 minutes

Öğrenme Hedefleri

  • Verifikasyon kapısı, çalışma masaları eserleri üzerinde belirleyici bir fonksiyon olarak tanımlanmalıdır.
  • Kural raporunu, kapsam raporunu, geri bildirim kayıtlarını ve farklılıkları tek bir hüküm haline getir.
  • Bir verification_report.jsonİkisi de okuyabilir.
  • Blok ağırlığındaki herhangi bir başarısızlık üzerine bir görevi istisna olmadan ileriye çıkarmayı reddetmek.

Sorun

Ajanlar başarıyı çok kolay ilan ederler.

  • "Güzel görünüyor". Model kendi farkını okudu ve doğru olduğuna karar verdi.
  • "Testler geçti". dedi güvenle.
  • Kabul kriterleri, "Yapılmış gibi her şey" anlamına gelmek için yeterince gevşek olarak yorumlandı.

İşleme masası düzeltmesi, ajanın zaten ürettiği eserleri okuyan ve arama yapan tek bir doğrulama kapısıdır. Kapı belirleyici. Kapı sürüm kontrolündedir. Kapı CI'ye kabloluyor. Ajan rüşvet alamaz.

Anlaşım

flowchart TD
  Diff[Diff] --> Gate[verify_agent.py]
  Scope[scope_report.json] --> Gate
  Rules[rule_report.json] --> Gate
  Feedback[feedback_record.jsonl] --> Gate
  Gate --> Verdict[verification_report.json]
  Verdict --> Pass{passed?}
  Pass -- yes --> Review[Reviewer Agent]
  Pass -- no --> Refuse[refuse done + surface to human]

Kapı neyi kontrol ediyor?

CheckSource artifactSeverity
All acceptance commands ranfeedback_record.jsonlblock
All acceptance commands exited zerofeedback_record.jsonlblock
Scope check has no forbidden writesscope_report.jsonblock
Scope check has no off-scope writesscope_report.jsonblock or warn
All block-severity rules passrule_report.jsonblock
No null exit codes in feedbackfeedback_record.jsonlblock
Touched files match scope.allowed_filesbothwarn

A.warnBulma kararı kaydeder; a blockbulma engellerini bulma passed: true- Evet .

Deterministik, olasılık değil

Bu nedenle, bu kararın bir sonraki aşamasında, bir diğer kararın da bir sonraki aşamasında, bir diğer kararın da bir sonraki aşamasında, bir diğer kararın da bir sonraki aşamasında, bir diğer kararın da bir sonraki aşamasında, bir diğer kararın da bir sonraki aşamasında, bir diğer kararın da bir sonraki aşamasında, bir diğer kararın da bir sonraki aşamasında, bir diğer kararın da bir sonraki aşamasında, bir diğer kararın da bir sonraki aşamasında, bir diğer kararın da bir sonraki aşamasında, bir diğer kararın da bir sonraki aşamasında, bir diğer kararın da bir sonraki aşamasında, bir diğer kararın da bir sonraki aşamasında, bir diğer kararın da bir sonraki aşamasında, bir diğer kararın da bir sonraki aşamasında, bir diğer kararın da bir sonraki aşamasında, bir diğer kararın da bir diğerine de bir kararın da bir kararın da bir kararı vermesi gerekir.

Bir rapor, bir yol

Kapı bir tane yayıyor .verification_report.jsonGörevleri tamamlamak için, aşağıda yazılmışoutputs/verification/<task_id>.jsonİK aynı yolu kullanıyor, farklı yollarla birden fazla kapı gerçeğin kaynağını açıyor.

İstisna olmadan reddet

Blok ağırlığı bulguları ajan tarafından geçersiz kılılamaz.override_reasonve bir overridden_byKullanıcı kimliği. Bu bir imzalama değişikliği, bir ajan kararı değil.

Yapın

code/main.pyUygulamaları:

  • Her giriş eser için bir yükleme cihazı, hepsi yerel olarak dövecek, böylece ders kendi kendine kalır.
  • A.verify(task_id, artifacts) -> VerdictReportsaf bir işlev.
  • Her kontrol sonucu ve son geçiş/başarısızlığı gösteren bir yazıcı.
  • Üç görev senaryosu olan bir demo: temiz geçiş, kapsam ürpertici, eksik kabul.

Çek şunu:

python3 code/main.py

Çıktı: üç yargı raporu, her biri senaryoya yakın kaydedildi.

Doğada üretim biçimleri

Dört örnektir kapıyı "başka bir saç işi"nden "başlı kararlı kenara" yükseltir.

Defense-in-depth, not single gate.Pre-commit hook → CI durum kontrolü → pre-tool authz hook → pre-merge gate. Her katman belirleyici olduğundan bir katmandaki bir başarısızlık bir sonraki tarafından yakalanır. microservices.io'nun Mart 2026 oyun kitabı açıkça belirtilmiştir: pre-commit hook geçilebilir değildir çünkü, bir model taraflı beceri aksine, talimatları takip eden ajanın bağımlı değildir. Verifikasyon kapısı CI / pre-merge katmandadır.

Defense by deterministic check, model-judge only for nuance.Anthropic'in 2026 Hibrit Norm çiftleştirmesi: doğrulanabilir ödüller (birlik testleri, şema kontrolleri, çıkış kodları) "kod problemi çözdü mü?" cevabını verir. LLM rubrikleri "kod okunur mu, güvenli mi, stilde mi?" cevabını verir. Kapı ilk sınıfı çalışır; inceleyicisi (Fase 14 · 39) ikincisini çalışır.

Signed override log, not Slack threads.Her atış bir satır gönderir .outputs/verification/overrides.jsonlBu, bir geçersizliğe sahip bir politika ile bir geçersizliğe sahip bir sinema arasındaki çizgidir.

Coverage floor as a first-class check.A.coverage_report.jsoncoverage_floor(ergin olarak %80) kontrol. Ölçülen kapsamın zeminin altında veya önceki birleşme zeminin altında %1'den fazla düştüğünde kapı başarısız olur. Bu kontrol olmadan ajanlar başarısız olan testleri sessizce siler ve doğrulama raporları yeşil kalır.

--strict mode promotes warns to blocks.Serbestleşme dalları, gemi bloklama ilişkiler veya olay sonrası triaj için, --strictBayrak, dallara göre seçilir, küresel standart değil, çünkü her şeye sıkı sıkı her gün akışını bozar.

Kullan

Üretim biçimleri:

  • CI step.A.verify_agentİşçi, ajanın son eserlerine karşı kapıyı açıyor.passed: true- Evet .
  • Pre-handoff hook.Ajan, teslimat belgesi üretmeden önce kapıyı arıyor.
  • Manual triage.Operatörler, bir ajanın başarıyı iddia ettiğini ve bir insan bunu şüphelendiğinde raporları okuyorlar.

Kapı, çalışma masası akışının belirleyici kenarıdır.

Gönder

outputs/skill-verification-gate.mdkapıyı belirli bir projeye bağlar: hangi kabul komutları onu besler, hangi kurallar blok sıkılığıdır, hangi alan dışı yazılar hoşgörülür, iptal denetim günlüğü nasıl depolanır.

Egzersizler

  1. Bir eklecoverage_floorKontrol: Test komutanlığı, zemini taşıyan esrarın en az %80'i olan bir kapsam raporunu oluşturmalıdır.
  2. Destekleme--strictHer şeyi destekleyen bir mod.warn- ...blockStrik modun doğru standard olduğu durumları belgeleyin.
  3. Geçidi JSON'a ek olarak bir Markdown özet oluşturun. Özetin hangi alanlarına ait olduğunu savun.
  4. Bir ekletime_since_last_human_touchkontrol: insan tıklamasından 60 saniye içinde düzenlenen herhangi bir dosya, dışı bayraklardan muaf tutulacaktır.
  5. Kapıyı ürününüzden farklı bir ajanla çalıştırın.

Anahtar Terimler

TermWhat people sayWhat it actually means
Verification gate"The check that stops things"Deterministic function over workbench artifacts producing a pass/fail verdict
Block severity"Hard fail"A finding that prevents passed: true and requires a signed override
Override log"Why we let it through"Signed entries with reason and user id, audited by review
Acceptance command"The proof"A shell command whose zero exit is what done means
One report path"Source of truth"outputs/verification/<task_id>.json, consumed by CI and humans alike

Daha Fazla Okumak

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.