allow، وكل
deny، وكل موافقة مُعلَّقة، وكل “كان سيفعل” في وضع الظل يحطّ هنا، قابلاً
للتصفية ومرتبطاً بتشغيل الوكيل الذي أنتجه.
تغذية الأحداث Developer+ للقراءة. يحجز كل صف حقل
args_summary مسقوفاً
للقطة وسيطة استدعاء أداة، فيقع السطح فوق الأسطح القابلة للقراءة بـ Member
(الإعدادات، السياسات، الأدوات المكتشفة،
وتغذية الشذوذ). اضبط كل هذا من وحدة التحكم — هذه
مسارات مصادَق عليها بالجلسة، لا استدعاءات ترحيل.1. ماذا يحطّ في تغذية الأحداث
يُسجَّل كل تقييم يشغّله المحرك — وليس الحجوبات فقط.allow وaudit يتركان
صفاً تماماً كما يفعل deny، فتكون التغذية أثراً كاملاً، لا سجل استثناءات.
الحكم على صف هو الذي رآه الوكيل فعلاً:
| الحكم | يعني |
|---|---|
allow / audit | مُرِّر؛ audit يعلّمه كشيء أردت مراقبته. |
deny | محجوب — firewall_blocked (HTTP 400) على inbound، خطأ أداة على mcp. |
sanitize | مُوجَّه مع تنقيح السلاسل الفرعية المطابقة من وسائط الاستدعاء. |
pending_approval | مُعلَّق لإنسان؛ يعلّم الصف أن الاستدعاء بُوِّب. |
observe | لم تطابق أي سياسة — ثغرة تغطية وضع observe. |
audit ويُسبَق السبب بـ [shadow] would …، فتُريك التغذية بالضبط ما
كانت ستحجبه سياسة قبل أن تقلبها حيّةً.
2. ماذا يسجّل كل حدث
الحدث المفرد لقطة منزوعة التطبيع — كافٍ لإعادة بناء القرار دون الربط ثانيةً بأي شيء:القرار
القرار
verdict، وsurface (inbound / response / mcp / egress)،
وtool_name، وreason بشري (“destructive shell command”، “egress to
169.254.169.254 denied”). عندما يكون للقاعدة المطابقة علامة، يسمّي
policy_name وrule_label القاعدة الدقيقة التي أُطلقت — فيشير الصف
مباشرةً إلى السطر الذي كتبته.مفاتيح الارتباط
مفاتيح الارتباط
request_id يربط الحدث بسجل الطلب؛ وconversation_id يجمّع جلسة
متعددة الأدوار؛ وagent_run_id (مع step_id / parent_step_id)
يربطه بتشغيل وكيل كامل واحد وباستدعاء LLM الذي طلب الأداة. هذه ما يجعل
التغذية تتبّعاً، لا قائمة مسطّحة — انظر
§4.المصدر
المصدر
token_name، وmodel_name، وip المستدعي — المفتاح والنموذج والأصل
وراء الاستدعاء. skill_name يسمّي
المهارة المالكة عندما يكون الاستدعاء
قابلاً للنسب إليها، وquarantine يعلّم تعليق حجر-صحي مهارة.الوسائط وEgress
الوسائط وEgress
args_summary هو حقل لقطة وسيطة استدعاء الأداة المسقوف (سبب كون هذا
السطح Developer+). على حدث egress، يسجّل egress_host الوجهة الصادرة
التي حُكِم عليها.3. مثال ملموس واحد
أصدر وكيلك استدعاءshell.exec بـ rm -rf /data، واصطادته قاعدة deny،
وتريد رؤية ذلك القرار الواحد. صفّ التغذية بالحكم والأداة:
$ORCA_CONSOLE_TOKEN هو رمز جلسة / وصول لديك، لا مفتاح ترحيل
sk-orca-…. مسارات /api/workspace/firewall/* مصادَق عليها بوحدة التحكم
ومبوَّبة بالدور؛ وحدها حركة /v1/* تستخدم مفتاح ترحيل.4. اربط حسب التشغيل والجلسة
السبب في أن كل حدث يحملagent_run_id وconversation_id هو أن تتوقف عن
النظر إلى الاستدعاءات منعزلةً وتبدأ بسؤال ماذا فعل هذا الوكيل عبر تشغيله
كله:
| المرشّح | السؤال الذي يجيب عنه |
|---|---|
run_id=<run> | كل حكم في تشغيل وكيل واحد — أثر الإجراء الكامل. |
session_id=<conv> | كل حكم عبر محادثة متعددة الأدوار. |
verdict=deny,pending_approval | عرض “ما الذي أُوقِف أو عُلِّق” في استعلام واحد. |
surface=egress | قرارات الوجهة الصادرة فقط — عدسة التسريب. |
since / until (ثوانٍ unix) و limit / skip
للترقيم. للعرض المجمَّع — صف واحد لكل تشغيل أو جلسة بتفصيل لكل حكم،
وأدوات ونماذج متمايزة، وأول/آخر ظهور — تقرأ وحدة التحكم
GET /api/workspace/firewall/events/aggregate?group_by=run (أو
group_by=session)، وتقرأ شجرة تتبّع الوكيل /trace/by-run. كلاهما
Developer+، مثل التغذية الخام.
5. الاحتفاظ والمحو
تحمل أحداث جدار الحماية أفق احتفاظ خاصاً بها — افتراضي 30 يوماً، مقيَّد خادمياً بحدّ أقصى صلب 365 يوماً. يُكتب كل حدث بانتهاء صلاحية ويُعمَّر خارجاً تلقائياً بفهرس TTL؛ لا شيء في التغذية يعيش أبعد من إعداد احتفاظك. طلب الحق في المحو يتتالى هنا أيضاً: حذف مستخدم يبدأ فترة سماح 30 يوماً، تُفرَك بعدها PII الخاصة به وتُطهَّر أحداث جدار حمايته إلى جانب سجلات الطلبات وتطابقات حواجز الحماية لنفس النطاق.إلى أين تذهب بعد ذلك
الأحكام
ماذا فعل كل حكم في التغذية فعلاً بالاستدعاء.
وضع الظل
اقرأ التغذية في وضع “كان سيفعل” قبل أن تفرض.
المراحل والأسطح
الأسطح الأربعة التي يسمّيها حقل
surface.مرجع جدار الحماية
مرجع السياسة والقاعدة والـ API الكامل.
