Phase 14: Agent Engineering

بوابات التحقق

لا يحصل الوكيل على وضع علامة على عمله الخاص كما هو قد تم. بوابة التحقق تقرأ عقد النطاق، سجل المراجعة، تقرير القواعد، والفروق، وتجيب على سؤال واحد: هل هذه المهمة قد اكتملت فعلا؟ إذا قال البوابة لا، فإن المهمة لم يتم، بغض النظر عن ما يقول الدردشة.

Type: Build

Languages: Python (stdlib)

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

Time: ~55 minutes

أهداف التعلم

  • تعريف بوابة التحقق كعمل تحديد على أثاث سطح العمل.
  • قم بتجميع تقرير القواعد، تقرير النطاق، سجلات التعليقات، والاختلاف في حكم واحد.
  • إصدارverification_report.jsonوكيل المراجعة والمخبر يستطيعان القراءة
  • رفض تقدم المهمة على أي فشل من شأن الحجم، دون استثناء.

المشكلة

الوكلاء يعلنون النجاح بسهولة كبيرة.

  • "يبدو جيداً" القرأ النموذج اختلافه الخاص وقرر أنه صحيح
  • "الاختبارات اجتازت" قالوا بثقة لا يوجد سجل عن التجربة التي كانت تعمل فعلا
  • "القبض قد تم" معايير القبول تعبيرها بحرية بما فيه الكفاية لتعني "أي شيء يشبه ما تم فعله".

مقعد العمل هو بوابة التحقق الوحيدة التي تقرأ الأدوات التي أنتجها الوكيل بالفعل وتقوم بالاتصال. البوابة تحدد. البوابة في التحكم في النسخة. البوابة متصلة إلى CI. لا يمكن للوكيل رشوة لها.

المفهوم

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]

ما يُفحصه البوابة

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

أwarnالوصول إلى القرار يلاحظ الحكمblockالعثور على الوقايةpassed: true. . .

تحديدية وليس احتمالية

يجب على البوابة أن تنتج نفس الحكم لنفس المادة المحددة في كل مرة. لا يوجد قضاة في ماجستير في العلوم. قضاة في ماجستير في العلوم ينتمون إلى جانب المراجع (المرحلة 14 · 39) حيث يكون الهدف هو التقييم النوعي وليس الوضع.

تقرير واحد، طريق واحد

البوابة تنطلق واحدةverification_report.jsonكل مهمة تم إكمالها، مكتوبة تحت outputs/verification/<task_id>.jsonالمعلوماتية تستخدم نفس المسار بوابات متعددة مع مسارات مختلفة

الرفض دون استثناء

لا يمكن أن يتم إلغاء نتائج شدة الكتل من قبل العميل.override_reasonوoverridden_byاسم المستخدم، الإغلاق هو تغيير موقّع، وليس قرار عميل

بناءها

code/main.pyتطبيقات:

  • محمول لكل أداة دخول، كلّها محليّاً حتى يكون الدروس مكتفياً.
  • أverify(task_id, artifacts) -> VerdictReportوظيفة نقية
  • طابعة تظهر نتائج كل فحص والمرحلة النهائية.
  • عرض عرض مع ثلاثة سيناريوهات مهمة: مراراً نظيفاً، ومتدربة نطاق، وغياب قبول.

إشغله

python3 code/main.py

الناتج: ثلاثة تقارير حكم، كل حفظ بجوار السيناريو.

أنماط الإنتاج في البرية

أربعة أنماط ترفع البوابة من "عمل آخر من اللون" إلى "الحافة القصوى".

Defense-in-depth, not single gate.كوكب ما قبل الالتزام → تحقق حالة CI → كوكب ما قبل الأداة authz → بوابة ما قبل الاندماج. كل طبقة تحدد لذلك يتم القبض على فشل في طبقة واحدة من قبل الطبقة التالية. كتاب لعبة مارس 2026 من microservices.io واضح: الكوكب ما قبل الالتزام غير قابل للتجاوز لأنه ، على عكس مهارة جانب النموذج ، لا يعتمد على الوكيل يتبع التعليمات. بوابة التحقق تقع عند طبقة CI / pre-merge.

Defense by deterministic check, model-judge only for nuance.أشرطة الأنثروبيك 2026 المختلفة: مكافآت قابلة للتحقق (اختبارات الوحدة، فحص النظام، رموز الخروج) الإجابة "هل حل الرمز المشكلة؟" عنوانات LLM الإجابة "هل الرمز يمكن قراءته، آمنة، على الطراز؟" البوابة تشغيل الفصل الأول؛ المراجعة (المرحلة 14 · 39) تشغيل الثاني. يدمجها الإشارة.

Signed override log, not Slack threads.كل إغلاق يُبعث على صف فيoutputs/verification/overrides.jsonlمع: علامة وقت، العثور على الرمز، السبب، المستخدم الموقّع، الالتزام الحالي HEAD. وقت تشغيل يرفض أي إغلاق غياب التوقيع؛ مسار المراجعة متتبع. هذه هي الخط بين سياسة إغلاق غياب السيطرة ورقة إغلاق السيطرة.

Coverage floor as a first-class check.أcoverage_report.jsonيطعمcoverage_floor(الامتحان الافتراضي 80٪) ، ينفذ البوابة إذا انخفضت التغطية المقاسة تحت الأرض أو تحت الأرضية المدمجة السابقة بأكثر من 1 نقطة مئوية. دون هذا التحقق، يقوم الوكلاء بإزالة الاختبارات التي تفشل بصمت وتبقى تقارير التحقق خضراء.

--strict mode promotes warns to blocks.لفرع الإفراج، وبركات العلاقات المتاحة للشحن، أو التجديد بعد الحادث، --strictكل تحذير يجعله فشلاً صعباً. العلم هو اختيار الدخول حسب الفرع، وليس الافتراض العالمي، لأن الصارمة على كل شيء تلوث التدفق اليومي.

استخدمها

أنماط الإنتاج:

  • CI step.أverify_agentيدير الوظيفة البوابة ضد الأثاث النهائية للعميلpassed: true. . .
  • Pre-handoff hook.العميل في وقت التشغيل يدعو البوابة قبل أن يخلق وثيقة التسليم لا حكم خضراء ولا تسليم
  • Manual triage.يقرأ العملاء التقرير عندما يزعم وكيل نجاحه و يشك في ذلك الإنسان

البوابة هي الحافة الحاسمة في تدفق المكتب العمل. كل سطح آخر هو فوقه.

أرسله

outputs/skill-verification-gate.mdيضبط البوابة إلى مشروع معين: أي أوامر القبول تغذيها، والقواعد التي هي خطورة الكتل، والتي تُسامح مع الكتابات خارج نطاق المجال، وكيف يتم تخزين سجل المراجعة المفروضة.

التمارين

  1. إضافةcoverage_floorالتحقق: يجب على قيادة الاختبار أن تقدم تقريراً عن التغطية التي تبلغ 80٪ على الأقل.
  2. دعم--strictالنظام الذي يعزز كل warnإلىblock- توثيق الحالات التي يكون فيها وضع القيادة هو الوضع الصحيح الافتراضي.
  3. اجعل البوابة تنتج ملخصاً من "ماركداون" بالإضافة إلى "JSON". دافع عن الحقول التي تنتمي إلى الملخص.
  4. إضافةtime_since_last_human_touchالتحقق: أي ملف يتم تحريره خلال 60 ثانية من إضغط المفاتيح البشرية معفى من العلامات خارج نطاق المجال.
  5. إستخدم البوابة على عامل حقيقي مختلف عن منتجك كم من النتائج حقيقية وكم من الضجيج؟ أين يجب أن تنمو البوابة؟

الشروط الرئيسية

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

المزيد من القراءة

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.