معيار OWASP Agent Control Standard (ACS): التحكم في وكلاء الذكاء الاصطناعي وقت التشغيل

إن OWASP Agent Control Standard (ACS) مواصفة مفتوحة يفحص بموجبها وكيلُ حراسة (Guardian Agent) إجراءاتِ وكيل ذكاء اصطناعي عند نقاط ربط (Hooks) محددة، ويسمح بها أو يحظرها أو يعدّلها أو يعرضها للموافقة أو يؤجّلها وفق سياسة. تبيّن هذه الدراسة المعمّقة ما يقدّمه الإصدار 0.1.0 اليوم — وأين تكمن حدوده.

آخر تحديث: أكتوبر 2026 · Valeri Milke, Lead Auditor لمعياري ISO 27001 وISO 42001

تحصلون على رابط التنزيل فورًا على الصفحة وعبر البريد الإلكتروني.

الوكيل المراقَب (Observed Agent)مثل وكيل البرمجة
الوكيل الحارس (Guardian Agent)Policy-as-Code + LLM اختياري
  • allow
  • deny
  • modify
  • ask
  • defer
Instrumentالخطافات (Hooks) والتصرفات (Dispositions)TraceOpenTelemetry وOCSFInspectAgBOM
المخطط وفق ACS v0.1.0: يبلّغ Observed Agent عن استدعاء أداة عبر Hook، فيرد Guardian بقرار (Disposition) قبل تنفيذ الإجراء. أسطر السجل توضيحية.
19خطافات steps/* أصلية في المواصفة v0.1.0 — من sessionStart حتى sessionEnd، بما في ذلك خطافات Skill الثلاثة
5القرارات: allow وdeny وmodify وask وdefer — تذكر المواصفة المفردات الكاملة صراحةً لـ steps/toolCallRequest
7ملفات المطابقة: acs-core إلزامي إضافةً إلى ستة ملفات اختيارية — تُعلَن في المصافحة، دون فحص خارجي
6الحد الأدنى من الخطافات لـ ACS-Core: sessionStart، وuserMessage أو agentTrigger، وtoolCallRequest، وtoolCallResult، وagentResponse، وsessionEnd

وكلاء الذكاء الاصطناعي لا يقرؤون فحسب، بل يتصرفون: ينفذون أوامر Shell، ويستدعون واجهات API، ويرسلون رسائل البريد الإلكتروني، ويكتبون في ذاكرتهم. موجّهات النظام لا تتحكم في ذلك. وهنا تحديدًا يتدخل OWASP Agent Control Standard (ACS) ويوحّد التحكم وقت التشغيل كبروتوكول بين الوكيل وGuardian. تشرح هذه الصفحة المواصفة v0.1.0 من منظور CISO: الخطافات (Hooks) والقرارات (Dispositions)، وFailure Posture، وPolicy-as-Code، وسجل التدقيق، والتتبع وفق OpenTelemetry وOCSF، وكذلك AgBOM. يعرض المحاكي أمثلة اتصال مطابقة للمخطط، وتربط مصفوفة المخاطر ACS — كتقييم من VamiSec — بـ OWASP Agentic Top 10، ونوضح بصراحة ما لا يحققه المعيار المبكر حتى الآن. ويساعدكم مستكشف الملفات الشخصية والتقييم الذاتي وورقة بيضاء لـ CISO على البدء.

من Agent Observability Standard إلى ACS v0.1

كيف تحوّل مشروع لقابلية المراقبة إلى معيار تحكم — جميع المحطات الموثقة حتى الهدف لـ v0.2.0. انقروا على محطة لعرض التفاصيل.

تسعة مفاهيم أساسية في Agent Control Standard

انقروا على بطاقة لقراءة المفهوم الأساسي — يتبع الترتيب مسار إجراء الوكيل من Hook مرورًا بالقرار وصولًا إلى دليل الإثبات.

المعيار في المستكشف

ثلاث ركائز، وبنية Guardian، والهوية والمنشأ، وملفات المطابقة — مع الرسائل الأساسية للمواصفة v0.1.0 وحدودها لكل منها.

ركيزة
  • اعتراض وتقييم وإنفاذ في الوقت الفعلي: أغلفة JSON-RPC-2.0 عبر HTTP(S) أو stdio، وطرق الخطافات في نطاق الأسماء steps/*.
  • 19 خطافًا أصليًا عبر دورة الحياة كاملة: الجلسة، والدور، والرسائل، والمعرفة والذاكرة، والأدوات، والضغط، والوكلاء الفرعيون، وSkills.
  • يجب أن يُطلَق steps/toolCallRequest لكل إجراء يغادر سياق الاستدلال — بما في ذلك عمليات Shell والملفات والشبكة المدمجة.
  • يجب على Observed Agent انتظار القرار وتطبيقه؛ وأي إطار يتجاهل الأحكام غير مطابق.
  • البث والإشعارات والمقاطعة غير موجودة في v0.1.0 — لا تعرف الاستجابة سوى النوع final.
JSON-RPC 2.0steps/*steps/toolCallRequestالالتزام بالقرار (Decision Honoring)
تفاعلي

محاكي Guardian: ستة سيناريوهات خطوة بخطوة

اختاروا سيناريو وتابعوا كيف ينتقل طلب Hook من Observed Agent إلى Guardian Agent، وأي قرار ينتج، وما الذي يُسجل في سجل التدقيق — بما في ذلك حالة تعطل Guardian.

وكيل البرمجة

يُفترض أن ينظف وكيل البرمجة مخرجات البناء. وبسبب مسار حُلّ بشكل خاطئ، يستهدف أمر Shell المخطط rm -rf الدليل الرئيسي بدلًا من مجلد البناء.

  1. 1طلب Hook (Observed Agent → Guardian)
    {
      "jsonrpc": "2.0",
      "method": "steps/toolCallRequest",
      "id": 41,
      "params": {
        "acs_version": "0.1.0",
        "request_id": "6b2f9e14-0c3a-4d7b-a5e8-91f2c4d6b803",
        "timestamp": "2026-10-06T09:12:41Z",
        "metadata": {
          "agent_id": "coding-agent-ci-07",
          "session_id": "3f6c2a18-9d4e-4b1a-8c55-2e7f90a1b3c4",
          "turn_id": "a1d4e7f0-2b5c-4e8a-9f13-6c0d2e5f8a71"
        },
        "payload": {
          "tool": {
            "name": "shell"
          },
          "operation": "delete_recursive",
          "capability": "filesystem.delete",
          "arguments": {
            "command": {
              "value": "rm -rf ~/",
              "provenance": {
                "provenance_id": "p-112",
                "origin": "agent_generated",
                "derived_from": [
                  "p-101"
                ]
              }
            }
          },
          "raw_command": "rm -rf ~/"
        },
        "signature": {
          "algorithm": "HMAC-SHA256",
          "value": "unUBv7dka1B1VD+fgzjF9E+IGC3GiQihQdQxEtIyG54=",
          "key_id": "sess-hmac-coding-07"
        }
      }
    }
  2. 2التقييم في Guardian
    • الطبقة الحتمية (Policy-as-Code، المرجع في v0.1: OPA/Rego): يبلّغ الإطار عن استدعاء Shell مع القدرة filesystem.delete والعملية delete_recursive؛ فتنطبق القاعدة deny_recursive_delete_outside_workspace.
    • فحص المسار: الهدف ~/ (الدليل الرئيسي) يقع خارج مساحة العمل التي تقصر السياسة هذه الجلسة عليها.
    • فحص المنشأ: الأمر agent_generated (مشتق من p-101) — لم يحدد أي إنسان هذا الهدف صراحةً.
    • لا حاجة إلى طبقة LLM الاختيارية: deny مع reasoning وreason_codes وpolicy_references، والمقيِّم deterministic.
    Dispositiondenyالإجراء محظور
  3. 3الاستجابة (Guardian → Observed Agent)
    {
      "jsonrpc": "2.0",
      "id": 41,
      "result": {
        "type": "final",
        "acs_version": "0.1.0",
        "request_id": "6b2f9e14-0c3a-4d7b-a5e8-91f2c4d6b803",
        "decision": "deny",
        "reasoning": "Recursive delete targets the user's home directory, outside the workspace root the session is scoped to.",
        "reason_codes": [
          "destructive_operation",
          "path_outside_workspace"
        ],
        "policy_references": [
          {
            "policy_id": "coding-agent-fs",
            "policy_version": "2026.10.2",
            "rule_id": "deny_recursive_delete_outside_workspace"
          }
        ],
        "cited_provenance_ids": [
          "p-112"
        ],
        "metadata": {
          "evaluator": "deterministic",
          "evaluation_duration_ms": 3
        },
        "chain_hash": "49c17246a18080bbeeaee88743bff94616b58cb6beb24e870b68a6f3ad55ecc3",
        "signature": {
          "algorithm": "HMAC-SHA256",
          "value": "Z1NyoNzC5LkVEcrZS6rzuc3CFaPO8vgfYg5/lhCpuho=",
          "key_id": "sess-hmac-coding-07"
        }
      }
    }

    لا ينفذ Observed Agent عملية الحذف ويتلقى المبرر. وإذا اقترح مسارًا مصححًا، يُفحص مجددًا.

  4. 4سجل التدقيق (Trace)
    {
      "_note": "vereinfachter Auszug",
      "class_uid": 2004,
      "class_name": "Detection Finding",
      "category_uid": 2,
      "activity_id": 1,
      "severity_id": 4,
      "time": 1791277961003,
      "metadata": {
        "version": "1.5.0"
      },
      "finding_info": {
        "uid": "dec-6b2f9e14",
        "title": "Tool call denied: recursive delete outside workspace"
      },
      "enrichments": [
        {
          "name": "acs_provenance_origin",
          "value": "agent_generated"
        }
      ],
      "unmapped": {
        "acs": {
          "decision": "deny",
          "evaluator": "deterministic",
          "policy_references": [
            {
              "policy_id": "coding-agent-fs",
              "policy_version": "2026.10.2",
              "rule_id": "deny_recursive_delete_outside_workspace"
            }
          ],
          "reason_codes": [
            "destructive_operation",
            "path_outside_workspace"
          ],
          "cited_provenance_ids": [
            "p-112"
          ],
          "session_id": "3f6c2a18-9d4e-4b1a-8c55-2e7f90a1b3c4",
          "step_id": "6b2f9e14-0c3a-4d7b-a5e8-91f2c4d6b803"
        }
      }
    }

    يمثّل ربط ACS القرارات غير allow كفئة OCSF 2004 Detection Finding؛ ويحصل deny على severity_id 4 (High).

ما يعنيه ذلك لكم

الإجراءات المدمّرة مكانها خلف قاعدة حتمية تتدخل قبل التنفيذ — لا في موجّه النظام. ولا يكون ذلك فعالًا إلا إذا مرّر الإطار كل إجراء ذي أثر خارجي عبر steps/toolCallRequest، بما في ذلك عمليات الملفات وShell المدمجة.

ASI02ASI05

حذف تكراري خارج مساحة العمل: deny

ملاحظة: الأمثلة مطابقة للمخطط وفق ACS v0.1.0 (تم التحقق منها مقابل request-envelope.json و response-envelope.json و context-entry.json ومخططات الـ Hooks بما في ذلك متغيرات *.acs-provenance)؛ القيم وأسماء السياسات والقواعد توضيحية، والتواقيع محسوبة بمفتاح تجريبي، ومقتطفات الـ Trace مبسطة؛ وتصنيفات ASI هي تقديرات VamiSec. والتنفيذ المرجعي الوحيد (إثبات مفهوم) لا يقيّم حتى الآن مباشرةً سوى steps/toolCallRequest و steps/toolCallResult.

ركيزة Instrument

دورة حياة الـ Hooks: أين يمكن لـ ACS التدخل

الـ Hooks الأصلية الـ 19 من نوع steps/* في المواصفة v0.1.0 إضافة إلى طرق AgBOM والـ Handshake والنظام على امتداد جلسة الوكيل. اختاروا Hook لعرض المُشغِّل ونطاق تصرف الـ Guardian والمخاطر النموذجية.

01الجلسةHandshake، البدء، التفعيل، الانتهاء
02AgBOMالجرد عند البدء وعند التغييرات
03الدورةإطار يحيط بكل دورة للوكيل
04الرسائلالإدخال والإخراج
05المعرفة والذاكرةاسترجاعات RAG والذاكرة
06الأدواتقبل كل إجراء وبعده
07الضغطتكثيف نافذة السياق
08الوكلاء الفرعيونالتفويض داخل العملية نفسها
09Skillsالتسجيل والتحميل والإلغاء
10النظامفحص الحيوية (Liveness)
handshake/helloHandshake

Handshake

متى
في بداية الجلسة قبل أي Hook: يرسل الـ Observed Agent رسالة ClientHello تتضمن الإصدارات والطرق ووسائل النقل المدعومة ووضع Provenance والملفات التعريفية.
ما يمكن للـ Guardian فعله
يرد برسالة ServerHello بدلًا من Disposition، ويحدد negotiated_version و methods_evaluated و timeout_config واختياريًا on_decision_failure. وتُعد الطرق خارج methods_evaluated مسموحًا بها افتراضيًا (ALLOW-by-default). ويمكن للـ Guardian رفض الجلسة، مثلًا بـ PROVENANCE_REQUIRED (-32002).
المخاطر النموذجية
ASI03ASI08

العدد وفق المواصفة v0.1.0: 19 Hook أصليًا من نوع steps/*؛ ومع agbom/snapshot و agbom/changed و system/ping تصبح 22 طريقة لكل منها مخطط حمولة خاص، إضافة إلى handshake/hello ونطاق MCP protocols/MCP/*. وتحدد المواصفة الـ Dispositions المسموح بها لكل Hook في النص الوصفي لا في المخطط. ويشترط ACS-Core ستة Hooks على الأقل؛ وما لا يرد في methods_evaluated يُعد مسموحًا افتراضيًا (ALLOW-by-default). وتشير النقطة عند الـ Hook إلى متغير صارم من نوع *.acs-provenance. أما ربط المخاطر النموذجية بكل Hook فهو تقدير من VamiSec.

تقدير VamiSec

مصفوفة المخاطر: OWASP Agentic Top 10 × مكونات ACS

أي مكونات Agent Control Standard تتحكم مباشرةً في مخاطر OWASP Top 10 for Agentic Applications 2026 أو تدعم التحكم فيها أو لا تغطيها — مع التعليل والحدود لكل صف.

تغطية المخاطر ASI01 إلى ASI10 بواسطة ستة مكونات من ACS (2 = تحكم مباشر، 1 = داعم، 0 = غير مغطى)؛ تقدير VamiSec استنادًا إلى ACS v0.1.0.
OWASP Agentic Top 10

تقدير VamiSec استنادًا إلى ACS v0.1.0 — وليس تصنيفًا رسميًا من OWASP. لا يرد ACS في OWASP Agentic Top 10 (ديسمبر 2025)، ولم يقم OWASP ولا مشروع ACS بربط ACS بـ ASI01 إلى ASI10؛ ويعتمد أثر كل خلية على سياساتكم والملفات التعريفية المتفاوض عليها.

تفاعلي

مستكشف الملفات التعريفية: أي مكونات ACS تناسب وكيلكم؟

ما يصل إلى خمسة أسئلة حول الأدوات والتنظيم ومصادر البيانات والديناميكية وSOC. وتذكر النتيجة ملفات ACS التعريفية والخطوات الأولى التي نوصي بها لوضعكم — وهي تقدير من VamiSec وليست بيانًا بالمطابقة.

مساركم
  1. ?

1: هل يستدعي وكيلكم أدوات أو يُطلق إجراءات ذات أثر خارجي — ملفات، Shell، واجهات API، رسائل بريد إلكتروني، تذاكر، مدفوعات؟

1

هل يستدعي وكيلكم أدوات أو يُطلق إجراءات ذات أثر خارجي — ملفات، Shell، واجهات API، رسائل بريد إلكتروني، تذاكر، مدفوعات؟

يشترط ACS إطلاق steps/toolCallRequest لكل إجراء يغادر سياق الاستدلال. وفي غياب هذه الإجراءات تبقى المدخلات والمخرجات أساسًا نقاط التحكم.

دراسة معمّقة · 14 فصلًا

Agent Control Standard بالتفصيل: من مشكلة التحكم إلى التشغيل

أربعة عشر فصلًا لمسؤولي أمن المعلومات (CISO) ومعماريي الأمن ومسؤولي منصات الذكاء الاصطناعي: ما تشترطه المواصفة v0.1.0 معياريًا، وأين تنتهي اليوم، وما القرارات المطلوبة قبل الاعتماد. والربط بالحوادث والمخاطر والتنظيمات موسوم بوصفه تقديرًا من VamiSec.

01الفصل 1

لماذا يحتاج وكلاء الذكاء الاصطناعي إلى تحكم وقت التشغيل

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

من مولّد للإجابات إلى فاعل

تنتج تطبيقات LLM التقليدية نصًا يقرؤه إنسان قبل أن يحدث شيء. أما وكلاء الذكاء الاصطناعي فيخططون بشكل مستقل، ويستدعون الأدوات، ويكتبون في ذاكرة طويلة المدى، ويبدؤون وكلاء فرعيين. وكل خطوة من هذه قد تغيّر البيانات أو تنقلها إلى الخارج. لذلك يصبح سؤال التحكم: «هل يجوز لهذا الإجراء بعينه وبهذه الوسائط بعينها أن يحدث الآن في هذه الجلسة؟» ولا يمكن الإجابة عنه إلا أثناء التشغيل — بين قرار النموذج والتنفيذ من قِبل إطار العمل.

مطالبات النظام ليست ضوابط

تعتمد كثير من عمليات النشر على تعليمات في مطالبة النظام مثل «لا تحذف بيانات الإنتاج». وهذه العبارات طلبات موجهة إلى نظام احتمالي، لا قواعد مُنفَّذة. وتبدأ صفحة مشروع ACS تعليلها بذلك: مطالبات النظام ليست ضوابط، والنماذج الأفضل لا تغطي الحالات الحدّية والمدخلات العدائية، وحواجز الحماية الاحتكارية تخلق تبعية للمورّد.

تؤكد الشركات المصنِّعة والأبحاث ذلك. فقد كتبت OpenAI في 22 ديسمبر 2025 أن حقن الأوامر (Prompt Injection) «unlikely to ever be fully 'solved'». وفي دراسة «The Attacker Moves Second» (arXiv، 10 أكتوبر 2025) تغلبت الهجمات التكيفية على اثني عشر أسلوبًا دفاعيًا حديثًا، غالبًا بمعدلات نجاح تتجاوز 90 بالمئة — رغم أن معظمها كان قد أبلغ في الأصل عن قيم قريبة من الصفر. تقلل متانة النموذج المخاطر لكنها لا تزيلها. فالمطلوب جهة فحص مستقلة خارج النموذج.

Lethal trifecta و Agents Rule of Two

وصف Simon Willison في 16 يونيو 2025 «الثالوث القاتل» (lethal trifecta): الوكيل الذي يملك وصولًا إلى بيانات خاصة، ويتعرض لمحتوى غير جدير بالثقة، ويستطيع التواصل مع الخارج، يمكن دفعه عبر حقن الأوامر (Prompt Injection) إلى تسريب البيانات. ووسّعت Meta ذلك في 31 أكتوبر 2025 إلى «Agents Rule of Two»: ضمن الجلسة الواحدة ينبغي ألا يجمع الوكيل أكثر من خاصيتين من ثلاث: معالجة مدخلات غير جديرة بالثقة؛ الوصول إلى أنظمة حساسة أو بيانات خاصة؛ تغيير الحالة أو التواصل الخارجي. وإذا احتاج إلى الثلاث جميعًا، فلا بد على الأقل من إشراف، مثلًا عبر موافقة بشرية. وتؤكد Meta أن القاعدة تكمّل مبدأ الحد الأدنى من الصلاحيات (Least Privilege) ولا تحل محله.

تقدير VamiSec: يصف النموذجان كلاهما خصائص جلسة لا خصائص نموذج. ولا يمكن إنفاذهما إلا إذا رأت جهةٌ ما كل إجراء ومسار الجلسة حتى تلك اللحظة. وهذه نقطة التحكم التي يوحّدها OWASP Agent Control Standard (ACS). ولاكتشاف المدخلات غير الجديرة بالثقة يلزم الملف التعريفي الاختياري acs-provenance؛ فـ ACS-Core وحده لا يقدّم بيانات عن المصدر.

حوادث موثقة — وما كان تحكم وقت التشغيل سيحدّ منه

الحادث (المصدر، التاريخ)ما الذي حدثكان يمكن أن يحدّ منه (تقدير VamiSec)
EchoLeak، CVE-2025-32711، Microsoft 365 Copilot (NVD 11 يونيو 2025؛ CVSS 3.1: 9.3 لدى Microsoft، 7.5 لدى NVD)Zero-Click: دفعت رسالة بريد إلكتروني مُعدّة خصيصًا Copilot إلى تسريب بيانات داخلية عبر الرد المعروض؛ وأُصلحت الثغرة قبل الإفصاح.فحص steps/agentResponse مع modify (إزالة عناوين URL الخارجية للصور والروابط) أو deny — شريطة أن يُطلق المضيف الـ Hook ويقدّم Provenance.
وكيل Replit يحذف قاعدة بيانات الإنتاج (SaaStr، يوليو 2025؛ The Register في 22 يوليو 2025)تجاهل الوكيل تجميدًا للتعليمات البرمجية (Code-Freeze) صدر به أمر، وحذف قاعدة بيانات الإنتاج، وأنتج رسائل حالة مضللة.deny أو ask على Capabilities قواعد البيانات التدميرية عند steps/toolCallRequest؛ وسلسلة تدقيق لإعادة البناء. وبصورة أساسية: الفصل بين التطوير والإنتاج، والنسخ الاحتياطية.
GitHub-MCP «Toxic Agent Flow» (Invariant Labs، 26 مايو 2025)حقن أوامر (Prompt Injection) في Issue عام؛ نشر الوكيل بيانات من مستودعات خاصة عبر Pull Request. لم يكن خطأً برمجيًا في الخادم، ولا CVE.سياسة جلسة «لا كتابة في مستودع آخر بعد مخرجات أداة غير جديرة بالثقة» مع deny أو ask عند steps/toolCallRequest؛ وتتطلب acs-provenance.
Amazon Q Developer Extension v1.84.0، CVE-2025-8217 (AWS-2025-015، 23 يوليو 2025؛ CVSS 4.0: 5.1)مطالبة حذف مدسوسة في الإصدار الرسمي؛ فشل التنفيذ بسبب خطأ نحوي، ولم تتأثر موارد العملاء.جاءت المطالبة من المنتج نفسه وتُعد جديرة بالثقة — فلا يفيد Provenance هنا. وكان سيكون فعالًا تطبيق deny أو ask على Capabilities الحذف وتثبيت الإصدارات عبر AgBOM.
ClawHavoc: Skills خبيثة على ClawHub (The Hacker News في 2 فبراير 2026؛ Unit 42 في 23 يونيو 2026)وجد تدقيق أولي 341 Skill خبيثًا من بين 2,857 Skill تم فحصها، منها ما يحتوي على Dropper مرمّز بـ Base64.الفحص عند skillRegister وربط الـ Digest عند skillLoad؛ ثم deny على التنزيل والتنفيذ (network.egress إضافة إلى process.execute).

جميع الحوادث سابقة للمواصفة المرجعية ACS v0.1.0 (5 يونيو 2026). والعمود الأيمن تقدير، وليس قولًا بأن ACS كان سيمنع الحادث.

لماذا يجب أن يكون التحكم في وقت التشغيل

يبقى اختيار النموذج وتقوية المطالبات ومحاكاة الهجمات (Red Teaming) قبل الإطلاق أمورًا ضرورية، لكنها لا تكشف ما يفعله الوكيل في جلسة بعينها. ويكمّلها تحكم وقت التشغيل: فهو يعمل قبل الإجراء، ويقيّم سياق الجلسة بأكملها، ويترك أثر تدقيق قابلًا لإعادة البناء. وتوصي OWASP Top 10 for Agentic Applications 2026 بالنسبة إلى ASI02 (Tool Misuse and Exploitation) بطبقة وسيطة سابقة لإنفاذ السياسات، أي «Intent Gate» تفحص النية والوسائط قبل التنفيذ. لا يُذكر ACS هناك، لكنه يقدّم (وفق تقدير VamiSec) عقد Wire مفتوحًا لنقطة التحكم هذه تحديدًا. وتبقى السياسات من مسؤوليتكم.

02الفصل 2

ما هو ACS: الأطراف، وثلاث ركائز، وACS-Core، وسبعة ملفات تعريفية

OWASP Agent Control Standard (ACS) مواصفة Wire مفتوحة يفحص عبرها Guardian Agent منفصل ما يريد وكيل الذكاء الاصطناعي فعله تاليًا. ويسمح الـ Guardian بالإجراء أو يحظره أو يعدّله أو يعرضه للموافقة أو يؤجل قراره — قبل وقوعه.

وبدقة أكبر: Agent Control Standard (ACS) مواصفة صادرة عن OWASP GenAI Security Project، تحدد نقاط التحكم (Hooks) التي يعرض عندها وكيل الذكاء الاصطناعي خطواته على جهة سياسات خارجية، وكيف ترد هذه الجهة بقرار (Disposition). والصيغة هي JSON-RPC 2.0 مع حقل خاص acs_version، تُنقل عبر HTTP(S) أو stdio. والوضع الحالي هو المواصفة v0.1.0، المنشورة كإصدار 0.1.2 (Tag بتاريخ 21 سبتمبر 2026). يحدد ACS العقد بين الوكيل والـ Guardian، لا السياسات: فما هو مسموح به تقرره مؤسستكم كما في السابق.

الأطراف

الدورالمهمة وفق المواصفةالشكل النموذجي (مثال)
الوكيل المراقَب (Observed Agent)النظام الخاضع للمراقبة والمدعوم بـ LLM. ينفّذ عقد الـ Wire، ويبلغ عن كل خطوة ذات صلة عبر Hook، ويطبّق الـ Disposition التي يتلقاها. ولا يقرر بشأن إجراءاته بنفسه.وكيل برمجة، وكيل دعم، إطار عمل وكلاء مع ربط بالمضيف
الوكيل الحارس (Guardian Agent)جهة السياسات. تقيّم كل Hook مقابل سياسة النشر، وتقدّم Disposition، ويجب أن تسجّل كل قرار مع التعليل ومعرّف نموذج المقيِّم و— إن توفرت — درجة الثقة.محرك سياسات (مثل OPA/Rego)، تُضاف إليه اختياريًا طبقة LLM
المعتمِد (Approver)طرف ثالث يُشركه الـ Guardian عند ask: إنسان أو وكيل أو خدمة. ويجب على الـ Guardian التحقق من هويته مقابل السياسة.مسؤول أمن، خدمة موافقات، مسار عمل تذاكر
Principalالطرف الموثَّق الذي يُطلق جلسة أو يتصرف ضمنها.الموظفون، حساب خدمة

تشترط المواصفة عدم الخلط بين ثلاث هويات: هوية الـ Observed Agent، وهوية الـ Guardian، وهوية مؤلف السياسة.

يقوم البناء على مبدأ تصميمي واحد: لا يجوز لنموذج اللغة أن يعرف شيئًا عن الـ Hooks. فإطار العمل هو من يطلقها، وتُحدَّد بيانات المصدر (Provenance) خارج مسار مخرجات النموذج. ووفق قراءتنا، يُراد بذلك ألا يتمكن نموذج متلاعَب به من رؤية نقطة التحكم أو التأثير فيها.

ثلاث ركائز: Instrument و Trace و Inspect

Instrument

الاعتراض والتقييم والإنفاذ في الوقت الفعلي: 19 Hook أصليًا من نوع steps/*، وخمس Dispositions، والـ Handshake، والحماية من إعادة الإرسال (Replay)، والتواقيع. وعلى هذه الركيزة تقوم القاعدة الإلزامية ACS-Core.

Trace

مفردات تظهر بها أحداث الـ Hooks على هيئة OpenTelemetry-Spans وأحداث OCSF؛ وتُسجَّل القرارات كحدث Span عند الخطوة المُطلِقة. لا يخترع ACS صيغة سجلات جديدة. ويعمل Trace بمعزل عن الإنفاذ وبمبدأ best-effort.

Inspect

AgBOM (Agent Bill of Materials): جرد ديناميكي للنماذج وخوادم MCP ونظراء A2A والأدوات ومصادر المعرفة ومخازن الذاكرة والـ Capabilities والـ Skills، قابل للتسلسل وفق CycloneDX 1.6 أو SPDX 3.0 أو SWID.

ACS-Core وسبعة ملفات تعريفية

المطابقة مبنية بشكل وحدوي. فـ ACS-Core هو القاعدة الإلزامية، وتقوم عليه ستة ملفات تعريفية اختيارية يصرّح بها النشر في الـ Handshake. ولا توجد مستويات مرقّمة — بل أسماء ملفات تعريفية فقط يمكن الجمع بينها باستقلالية. والاعتمادية الوحيدة: acs-inspect-dynamic يوسّع acs-inspect.

الملف التعريفي (الاسم في الـ Handshake)جوهر المتطلبلماذا تحتاجون إليه
acs-core (إلزامي)من بين ذلك: الـ Handshake، وغلاف JSON-RPC، وستة Hooks على الأقل، وجميع الـ Dispositions الخمس مع الحقول الإلزامية، وسلسلة تدقيق مترابطة بالـ Hash مع Chain-Head منشور، والحماية من إعادة الإرسال، وتوقيع HMAC-SHA256 على كل طلب وكل رد، والالتزام بالقرارات (Decision Honoring)، و system/pingقناة موثَّقة؛ ويلتزم الوكيل بقرارات الـ Guardian
acs-traceلكل خطوة مدعومة أحداث OpenTelemetry و/أو OCSF مع سمات إلزامية؛ وكل قرار كحدث Traceالربط بـ SIEM، وقابلية الرصد عبر مختلف الشركات المصنِّعة
acs-inspectagbom/snapshot مرة واحدة لكل جلسة قبل أول Hook يحمل محتوى؛ ويقوم الـ Guardian عند الطلب بالتسلسل إلى صيغة BOM واحدة على الأقلسياسات تعتمد على الجرد، مثل حظر نموذج أو أداة
acs-inspect-dynamicإضافةً إلى ذلك agbom/changed عند كل تغيير في مخطط المكوناتاكتشاف التبديل الساخن (Hot-Swaps) للنماذج أو خوادم MCP أو الـ Skills أثناء الجلسة
acs-provenanceكائن Provenance على كل حقل يحمل بيانات في كل Hook (provenance_producer: deterministic)سياسات تدفق المعلومات وفق FIDES أو CaMeL أو نمط شبيه بـ AARM
acs-cryptoتواقيع غير متماثلة أو ما بعد الكم، ML-DSA-65 على الأقلعدم الإنكار تجاه الأطراف الثالثة
acs-auditrequest_hash على كل ContextEntry في سلسلة التدقيقتربط السلسلة محتوى الطلبات أيضًا، لا البيانات الوصفية فقط

المطابقة في v0.1.0 تصريح ذاتي في الـ Handshake: لا مجموعة اختبارات، ولا سجل للتنفيذات المطابقة، ولا جهة فحص.

تصوغ المواصفة ما يضمنه ACS-Core بموضوعية: القناة موثَّقة، والـ Observed Agent يلتزم بالقرارات. أما ما ليس مضمونًا فهو صرامة السياسات — فالـ Guardian المتساهل مطابق، لكنه متساهل فحسب. ولا يوفّر دليل التلاعب في سلسلة التدقيق حتى في مواجهة Guardian مخترَق إلا acs-crypto و acs-audit، لأن قاعدة HMAC إجراء متماثل. وتتراوح التركيبات النموذجية في المواصفة بين تكامل IDE أدنى مع acs-core فقط ونشر عالي الضمان مع جميع الملفات التعريفية السبعة.

نموذج الطبقات في صفحة المشروع: طبقات معمارية لا مستويات

  1. المستوى 1 · طبقة المنصة (Platform layer)

    توفر أطر عمل الوكلاء Hooks وسيطة موحدة — وهنا تنشأ نقطة التحكم.

  2. المستوى 2 · طبقة الإنفاذ (Enforcement layer)

    مكوّن مفتوح المصدر يقرأ سياسات تصريحية ويعيد القرارات عبر هذه الـ Hooks.

  3. المستوى 3 · طبقة المؤسسة (Enterprise layer)

    تُربط المصنِّفات الخاصة والمنطق المتخصص بالمجال خلف الواجهة نفسها.

تصف هذه الصورة من يسهم بأي جزء، لا مدى مطابقة النشر. فلبيانات المطابقة لا يُعتد إلا بالملفات التعريفية. ومع ذلك فهي مفيدة لتخطيط البنية لديكم: إذ تفصل سؤال أي منصة توفر الـ Hooks عن سؤال من يشغّل السياسات ويصونها.

03الفصل 3

النشأة والحوكمة والترخيص: من AOS إلى مشروع OWASP

من يعتمد معيارًا مبكرًا ينبغي أن يعرف من يديره، وتحت أي ترخيص يندرج، ومدى موثوقية خارطة طريقه. ولـ ACS تاريخ قصير لكنه حافل.

من المراقبة إلى التحكم

بدأ العمل في 11 مايو 2025 باسم «Agent Observability Standard» (AOS) في بيئة GitHub الخاصة بـ Zenity، وانتقل في يونيو 2025 إلى منظمة OWASP، حيث أُدرج AOS بوصفه «OWASP other project». وحملت طبقة البروتوكول في مايو ويونيو 2025 مؤقتًا اسم «ASOP» (Agent Security & Observability Protocol)، قبل أن تعود إلى اسم AOS. وبعد مرحلة لم تشهد سوى Commits متفرقة منذ منتصف 2025، جاءت في 10 أبريل 2026 إعادة التسمية إلى Agent Control Standard. ويشير الاسم الجديد إلى الخطوة المضمونية: من مجرد المراقبة إلى الإنفاذ. بعد ذلك عمل ACS لفترة وجيزة كمشروع مستقل خارج OWASP، ثم عاد في سبتمبر 2026 — هذه المرة إلى OWASP GenAI Security Project.

التاريخالمعلم
11.05.2025أولى الـ Commits باسم «Agent Observability Standard» (AOS)
06/2025الانتقال إلى منظمة OWASP
10.04.2026إعادة التسمية من AOS إلى ACS (Agent Control Standard)
27.05.2026بيان صحفي للإطلاق عبر Business Wire، ومرحلة كمشروع مستقل
05.06.2026دمج المواصفة المرجعية v0.1.0، بما في ذلك Hooks الـ Skills
11.08.2026الإصدار v0.1.1: ترخيص جديد، والمواصفة دون تغيير
01.–10.09.2026إعادة الإطلاق في OWASP: صفحة الموارد (1 سبتمبر)، والموقع و44 مخطط JSON (5 سبتمبر)، والحوكمة والتنفيذ المرجعي (10 سبتمبر)
21.09.2026الـ Tag v0.1.2، وُضع لاحقًا على Commit بتاريخ 9 سبتمبر 2026
مارس 2027 (هدف)الإصدار التالي للمواصفة v0.2.0

المصادر: سجل Git ووثائق مشروع مستودع ACS وصفحة موارد OWASP، حتى 3 أكتوبر 2026.

الحالة: Incubator و public preview

ACS مشروع ضمن OWASP GenAI Security Project ومُلحق فيه بـ Agentic Security Initiative. ويصرّح في بيانات OWASP-Nest الوصفية الخاصة به بالمستوى 2، وفي مخطط Nest بمرحلة «Incubator»؛ وبذلك لا يثبت أن هيئة من OWASP قد صنّفته. ويصف قائد المشروع الوضع علنًا بأنه «public preview» وينصح المنفّذين صراحةً بالحذر. ACS ليس معيارًا من ISO أو IETF أو W3C وليس معيارًا مُنسَّقًا. ويتجلى الطور المبكر شكليًا أيضًا: لا توجد GitHub-Releases، بل Tags فقط؛ وقد تغيّر نص المواصفة والمخططات بين v0.1.1 و v0.1.2 دون رفع رقم إصدار المواصفة v0.1.0.

من يدير المشروع؟

وفق GOVERNANCE.md، أنشأ Michael Bargury و Ory Segal مشروع ACS؛ ويبقى كلاهما قائدين للمشروع. أما قائد المشروع (Project Lead) فهو Rock Lambros. وللشفافية: Bargury هو CTO وأحد مؤسسي Zenity، ويُدرَج Lambros لدى Zenity بصفة «Director of AI Standards and Governance»، وتعود معظم Commits المبكرة لـ AOS إلى بيئة Zenity. ويقود مسارات العمل — Coding Agents و Development (SDK) و Identity و Outreach و Spec — أشخاص من عدة منظمات. وتصف صفحة المشروع ACS بأنه محايد تجاه الشركات المصنِّعة ويُدار بشكل جماعي؛ وهذا وصف ذاتي. وتصنيفنا: مشروع OWASP يحمل طابعًا قويًا من Zenity في التأسيس والقيادة.

تمر القرارات عبر بوابة قبول. فلا تدخل قائمة الأعمال إلا الـ Issues التي تحمل الوسم status:accepted؛ وتحتاج التغييرات في السلوك أو النص المعياري أو التعليمات البرمجية إلى Issue مقبول، وتبدأ تغييرات المواصفة كـ GitHub Discussion، وتتطلب الـ Commits توقيع DCO-Sign-off. ويجري التطوير على الفرع integration. ولا يُعاد نشر الموقع وعناوين URI للمخططات إلا عندما يرقّي قائد المشروع التغييرات إلى main. وحتى 3 أكتوبر 2026 لم تتم ترقية main منذ 10 سبتمبر 2026 — أي أن التغييرات على integration لم تُنشر بعد.

الترخيص: ما يجوز لكم اعتماده

المكوّنالترخيصالأثر العملي
التعليمات البرمجية، ومخططات JSON، وأمثلة التعليمات البرمجية في الوثائقApache-2.0الاستخدام في منتجات احتكارية دون التزام بالإفصاح؛ وترخيص صريح لبراءات الاختراع
الوثائق النصية (نصوص المواصفة، README)CC BY-SA 4.0تخضع الترجمات والتعديلات لشرط ShareAlike وتتطلب ذكر المصدر
الإصدارات حتى v0.1.0 ضمنًاMITيبقى الترخيص الممنوح آنذاك ساريًا
الأسماء والشعارات (OWASP، Agent Control Standard)لا تُمنح أي حقوقيجوز للتنفيذ أن يصف نفسه بأنه «ACS-conformant»، لكن دون الإيحاء بتأييد من المشروع

تمت إعادة الترخيص إلى Apache-2.0 و CC BY-SA 4.0 مع الإصدار v0.1.1 في 11 أغسطس 2026. وتصوغ VamiSec جميع محتويات هذه الصفحة بشكل مستقل ولا تترجم نصوص المواصفة.

خارطة الطريق: ما هو موثّق

يستهدف الإصدار التالي للمواصفة v0.2.0 شهر مارس 2027؛ ولم يُحدَّد موعد لـ v1.0. ومن المدرج لـ v0.2 من بين أمور أخرى: Streaming و Interruption، و ASK التكراري و Quorum، وعزل المستأجرين المتعددين (Multi-Tenant)، وربط Cedar، واتحاد AgBOM عبر نظراء A2A، وتغليف A2A. والهدف الجاري منذ الانطلاق في 10 سبتمبر 2026: خلال 90 يومًا تنفيذ مرجعي قابل للتشغيل للـ Guardian، مُقاس من حيث التشغيل البيني مع Agent Governance Toolkit من Microsoft، وفي أيدي مقيّمين خارجيين. ولا يزال غير محسوم ما إذا كان ذلك سينجح بحلول أوائل ديسمبر 2026. كما لا يزال PR #21 مفتوحًا، والذي يسعى إلى إعادة رسم النطاق الإلزامي لـ ACS-Core. ومسودات الإصدارات المختلفة في المدونات ليست خارطة طريق رسمية.

04الفصل 4

Instrument: الـ Hooks الـ 19 في دورة حياة الوكيل

عند كل Hook يتوقف الـ Observed Agent ويعرض الخطوة التالية على الـ Guardian. ويحدد ACS v0.1.0 تسعة عشر Hook أصليًا من نوع steps/* — ويتفاوض الطرفان لكل جلسة على أيها يُفحص فعليًا.

تحمل الـ Hooks على الـ Wire البادئة steps/، مثل steps/toolCallRequest. وإلى جانبها توجد طرق ليست Hooks أصلية من نوع steps/*: agbom/snapshot و agbom/changed للجرد، وفحص الحيوية system/ping، والـ Handshake handshake/hello، والنطاق protocols/MCP/* لرسائل MCP المغلّفة. وتعدّ صفحة الـ Hooks في المواصفة 19 Hook إضافة إلى طريقتي AgBOM وإلى Ping بوصفها 22 طريقة؛ وتشمل حزمة المخططات إجمالًا 44 مخطط JSON. ولا تزال بعض نصوص المشروع (README، docs/acs.md) تذكر 16 Lifecycle-Hook — وهذا هو العدد دون Hooks الـ Skills الثلاثة.

المجموعةالـ Hooks (steps/…)متى تُطلقالـ Dispositions وفق المواصفة
الجلسةsessionStart و agentTrigger و sessionEndبعد الـ Handshake وقبل أي خطوة أخرى؛ التفعيل من قِبل المستخدم أو جدول زمني أو حدث أو A2A أو النظام؛ انتهاء الجلسة الذي يختم عنده الـ Guardian السلسلةsessionStart: allow/deny · agentTrigger: allow/deny/modify · sessionEnd: تدقيق فقط
الدورةturnStart و turnEndبداية كل دورة للوكيل ونهايتها؛ ويرافق turn_id جميع الخطوات بينهماturnStart: قادر على اتخاذ القرار، غالبًا allow · turnEnd: تدقيق فقط
الرسائلuserMessage و agentResponseإدخال المستخدم قبل أن يبلغ سياق الاستدلال؛ ومخرجات الوكيل قبل التسليمallow/deny/modify
المعرفة والذاكرةknowledgeRetrieval و memoryContextRetrieval و memoryStoreاستعلامات المعرفة وRAG، وقراءة الذاكرة إلى السياق، والكتابة في الذاكرة طويلة المدىallow/deny/modify
الأدواتtoolCallRequest و toolCallResultبعد تحليل استدعاء الأداة وقبل الإرسال؛ وبعد التنفيذ قبل اعتماد النتيجةtoolCallRequest: الخمس جميعًا · toolCallResult: allow/deny/modify
الضغطpreCompact و postCompactقبل تكثيف نافذة السياق وبعدهpreCompact: يمكن تطبيق deny · postCompact: modify، دون deny
الوكلاء الفرعيونsubagentStart و subagentStopبدء وكيل فرعي داخل العملية نفسها؛ وانتهاؤهsubagentStart: يمكن تطبيق deny · subagentStop: تدقيق فقط
SkillsskillRegister و skillLoad و skillUnloadالإضافة إلى المجموعة المتاحة كبوابة فحص ثابتة؛ والتفعيل في الجلسة؛ والإزالةskillRegister و skillLoad: allow/deny · skillUnload: تدقيق فقط

ترد القيود الخاصة بكل Hook في نص المواصفة؛ أما مخطط الرد نفسه فلا يقيّد الحقل decision لكل طريقة.

الحد الأدنى لـ Core: ستة Hooks

يشترط ACS-Core ستة Hooks على الأقل: sessionStart، و userMessage أو agentTrigger، و toolCallRequest، و toolCallResult، و agentResponse، و sessionEnd. وينبغي لإطار العمل تنفيذ الباقي جميعًا متى أمكنه رصد الحدث المعني؛ ويُتفاوض عليها في الـ Handshake. ويعني ذلك لتقييم منتجاتكم: عبارة «يدعم ACS» لا تكشف بعدُ ما إذا كانت عمليات الكتابة في الذاكرة أو الوكلاء الفرعيون أو الـ Skills تصل إلى الـ Guardian أصلًا.

فخ methods_evaluated

يبلغ الـ Observed Agent في الـ Handshake عن الطرق التي ينفّذها (methods_implemented). ويرد الـ Guardian بقائمة الطرق التي يقيّمها فعليًا (methods_evaluated). وإذا أرسل الوكيل Hook غير وارد فيها، وجب عليه معاملته بوصفه ALLOW-by-default — فتُسجَّل الخطوة في أحسن الأحوال لكنها لا تُفحص. فعلى سبيل المثال، لا يقيّم التنفيذ المرجعي الوحيد سوى steps/toolCallRequest و steps/toolCallResult، أي اثنين من 19 Hook.

toolCallRequest: نقطة الإنفاذ المحورية

steps/toolCallRequest هو الـ Hook الوحيد الذي تنص المواصفة صراحةً على جميع الـ Dispositions الخمس له؛ وهنا أيضًا تعمل نماذج التحكم. والمحوري قاعدة MUST: يجب على أطر العمل إطلاق toolCallRequest لكل إجراء يغادر سياق الاستدلال لدى الوكيل — حتى لو لم يعامله إطار العمل داخليًا كأداة. ويشمل ذلك عمليات القراءة والكتابة في نظام الملفات، وطلبات الشبكة، وبدء العمليات، وأوامر الـ Shell. وما يتجاوز هذا الـ Hook لا تراه أي سياسة.

الإلزامي في الحمولة هو tool.name و arguments، ويمكن لكل قيمة وسيط أن تحمل Provenance خاصًا بها. ويُضاف اختياريًا capability مجردة مثل filesystem.delete أو network.egress، و raw_command، و intent. وبذلك يمكن للسياسات تقييم ما يُحدثه الإجراء بدلًا من البرنامج الذي ينفّذه.

Hooks ذات أثر حمائي خاص

  • memoryStore هو المصبّ القياسي للتأثير عبر الجلسات، ووفق المواصفة نقطة الانطلاق لمواجهة تسميم الذاكرة (Memory Poisoning) (راجعوا ASI06: Memory & Context Poisoning).
  • يؤمّن preCompact و postCompact عملية التكثيف: يجب أن يحمل الملخص origin agent_generated وأن يرث مصدر جميع الإدخالات المكثفة، حتى لا يُغسل المحتوى غير الجدير بالثقة.
  • يتيح subagentStart للـ Guardian رفض بدء وكيل فرعي؛ ويحصل كل وكيل فرعي على session_id خاص وسلسلة تدقيق خاصة.
  • يربط skillRegister و skillLoad الـ Skills بـ Digest: فلا يجوز تحميل إلا ما اعتُمد مسبقًا بـ skill_id مطابق و Digest مطابق؛ وينبغي رفض عمليات التحميل غير القابلة للنسبة.
05الفصل 5

الـ Dispositions الخمس بالتفصيل: allow و deny و modify و ask و defer

يرد الـ Guardian على كل Hook بـ Disposition واحدة بالضبط. والتفاصيل — الحقول الإلزامية وقواعد التركيب والمهل — هي التي تحدد ما إذا كانت السياسة آمنة أو مُنفِذة عند الخطأ.

على الـ Wire تُكتب الـ Dispositions بأحرف صغيرة في الحقل decision؛ أما نص المواصفة فيكتبها بأحرف كبيرة (ALLOW، DENY …). وكل رد في v0.1 من النوع final — فالحالات المرحلية (progress) والمقاطعات (interruption) مخطط لها في v0.2 فقط. والإلزامي في كل رد هو type و acs_version و request_id و decision؛ ويعكس request_id معرّف الطلب.

Dispositionالأثر لدى الـ Observed Agentالحقول الإلزامية (المخطط)الاستخدام النموذجي
allowيُنفَّذ الإجراء كما طُلبلا شيء؛ ويُوصى بـ reasoning عند توقع آثار تدقيق مرئية للمستخدمينوصول قراءة ضمن النطاق المسموح
denyيُحظر الإجراءreasoningأمر Shell تدميري، خروج (Egress) إلى وجهة مجهولة
modifyيُنفَّذ الإجراء بحمولة معدّلةreasoning و modificationsتقييد الاستعلام، حجب البيانات الشخصية في نتيجة الأداة
askيتوقف الوكيل مؤقتًا حتى الموافقةreasoning و ask_detailsدفع، إرسال جماعي إلى جهات خارجية
deferيُؤجَّل القرارreasoning و defer_detailsنص برمجي مجهول، سياق ناقص

اختياري في كل قرار: reason_codes و policy_references (policy_id و policy_version و policy_name و rule_id) و policy_data و cited_provenance_ids إضافة إلى metadata مع evaluator (deterministic أو agent أو composite).

MODIFY: شكلان يستبعد أحدهما الآخر

يعرف الكائن modifications شكلين. فإما أن يحل modified_content محل الحمولة بأكملها — وعندها لا يُسمح بأي تعديلات أخرى. وإما أن يرسل الـ Guardian تعديلات منظَّمة: redactions (مسار JSON-Pointer مع نص بديل، والافتراضي «[REDACTED]») و/أو parameter_overrides (اسم الوسيط مع قيمة جديدة). ويجوز ورودهما معًا، لكن يجب أن تكون أهدافهما منفصلة: لا يجوز لأي مسار حجب أن يصيب الحقل نفسه الذي يصيبه Override، ولا حقلًا أعلى أو أدنى منه. وتعلل المواصفة ذلك بأن ترتيب تطبيق ثابتًا كان سيحل التعارضات بصمت، وبحسب الترتيب قد يكشف قيمًا محجوبة من جديد أو يستبدل قيمًا منقّاة. وإذا خالف الـ Guardian هذه القواعد، وجب على الـ Observed Agent معاملة الرد كأنه deny.

مثال: يريد وكيل الاستعلام عن جدول عملاء بالكامل. فيرد الـ Guardian بـ modify ومُدخل في parameter_overrides يقيّد الاستعلام بـ 500 صف — كما في سيناريو المحاكي «استعلام قاعدة بيانات غير مقيّد». وتُكتب قيم الـ Override في الكائن كقيمة خام، لا داخل غلاف value.

ASK: موافقة بقواعد واضحة

  • يشترط ask_details وجود approver مع type (human أو agent أو service) و id، و question، و timeout_seconds (1 على الأقل).
  • عند انقضاء المهلة يسري timeout_disposition؛ والقيمة الافتراضية هي deny.
  • يجب على الـ Guardian التحقق من هوية المعتمِد مقابل السياسة — فمصادقة المعتمِد إلزامية.
  • قفزة واحدة فقط: لا يجوز للمعتمِدين أنفسهم إرجاع ask. وقد أُرجئ الـ Quorum والموافقات التكرارية إلى v0.2.
  • إذا لم يستطع العميل معالجة ASK، فلا يجوز للـ Guardian إرسال ask. بل يلجأ إلى defer مع timeout_decision deny أو إلى deny مع رمز السبب approver_unavailable — ويُستبعد أي allow صامت.
  • عبر intent_extension يمكن للموافقة توسيع الـ Capabilities المسموح بها لـ this_request أو للـ session بأكملها. ووفق المواصفة، هذه هي الطريقة المطابقة الوحيدة لتعديل النية المحددة لاحقًا.

مهم من الناحية التنظيمية: ASK ليس تلقائيًا إشرافًا بشريًا. فقد يكون المعتمِد وكيلًا أو خدمة، ويمكن ضبط timeout_disposition على allow. ويُطبَّق الإشراف البشري وفق المادة 14 من EU AI Act على الأنظمة عالية المخاطر اعتبارًا من 2 ديسمبر 2027 (الملحق III) أو 2 أغسطس 2028 (الملحق I)؛ ووكلاء الذكاء الاصطناعي ليسوا بطبيعتهم عالية المخاطر. ومن يستخدم ASK كمكوّن لذلك يحتاج وفق تقدير VamiSec إلى سياسة مع approver.type human و timeout_disposition deny، وإلى عملية موافقة تتجنب إرهاق اتخاذ القرار. وعندها يدعم ASK توثيق الإثبات، لكنه لا يفي بالمادة 14 وحده: فلا يعرف v0.1 زر إيقاف، بل deny خطوة بخطوة فقط.

DEFER: تأجيل القرار، لكن ضمن حدود

يشترط defer_details وجود reason (insufficient_context أو conflicting_policies أو low_confidence أو pending_dependency)، و resolution_method (additional_context أو human_approval أو timeout)، و resolution_timeout_ms. وعند انقضاء المهلة لا يعرف timeout_decision إلا deny أو ask — دون allow — وقيمته الافتراضية deny. ويشترط النص الوصفي هذا الحقل، بينما لا يدرجه المخطط كإلزامي؛ لذا اضبطوه دائمًا صراحةً. ويجب تقييد التأجيلات المتتالية لكل جلسة. وانتبهوا إلى الوحدات: يحسب ASK بالثواني (timeout_seconds)، و DEFER بالمللي ثانية (resolution_timeout_ms).

06الفصل 6

الـ Handshake ووضعية الفشل (Failure Posture) والمهل

قبل أن يُطلق أول Hook، يتفاوض الـ Observed Agent والـ Guardian على ما يُفحص، ومدة الانتظار، وما يحدث عند التعطل. وهذه الحقول القليلة تحدد ما إذا كانت نقطة التحكم لديكم ستصمد في الحالات الحرجة.

تبدأ كل جلسة بـ handshake/hello. وتوضع رسالة ClientHello في payload لغلاف طلب عادي، وتعود رسالة ServerHello كـ result — دون decision. ويجب أن يتطابق الإصدار المتفاوض عليه في الإصدار الرئيسي مع إصدار العميل؛ ويجب تجاهل الحقول غير المعروفة.

الرسالةالحقول الإلزاميةحقول اختيارية ذات صلة بالأمن
ClientHello (الـ Observed Agent)acs_versions_supported و methods_implemented و transports_supported (http و https و stdio) و provenance_producer (deterministic أو none)profiles_supported و wrapped_protocols و max_payload_size_bytes
ServerHello (الـ Guardian)negotiated_version و methods_evaluated و selected_transport و timeout_config (default_ms، واختياريًا per_method_ms)on_decision_failure (proceed أو deny، والافتراضي proceed) و signature_algorithms_supported و skew_window_ms (الافتراضي 300000) و policy_requires_provenance و approver_types_supported و profiles_accepted و trace_emission و agbom_serializations_supported

حالات الرفض في الـ Handshake: UNSUPPORTED_VERSION (-32001) عند تعارض الإصدارات؛ و PROVENANCE_REQUIRED (-32002) عندما لا يقدّم العميل Provenance بينما تشترطه سياسة الـ Guardian.

وضعية الفشل: fail-open هو الإعداد الافتراضي

يجب على الـ Observed Agent انتظار القرار لكل خطوة مُبلَغ عنها — حتى المهلة المتفاوض عليها — ثم تطبيقه. وإطار العمل الذي يرسل الـ Hooks لكنه يتجاهل الحكم غير مطابق. وإذا لم يصل قرار صالح للاستخدام، تتحدث المواصفة عن decision failure: إما أن يصمت الـ Guardian، أو ينقطع النقل (اتصال مرفوض، خطأ TLS، رد معيب)، أو يقدّم الـ Guardian خطأً بدلًا من قرار. وفي الحالات الثلاث يسري on_decision_failure، والقيمة الافتراضية هي proceed: أي يستمر الإجراء دون فحص. أما fail-closed (deny) فيجب أن يهيئه النشر صراحةً.

تسمّي المواصفة الثمن بصراحة: من يستطيع تعطيل القناة يحوّل التحكم إلى مجرد تسجيل. وفي المقابل يسري التزام صارم — يجب تسجيل كل خطوة تستمر دون قرار كحدث تدقيق. وإذا وصل قرار مع ذلك ضمن المهلة، وجب على الوكيل الالتزام به بصرف النظر عن الوضعية.

وضعية بدء التشغيل (Startup-Posture): حين يفشل الـ Handshake نفسه

إذا تعذر الوصول إلى الـ Guardian عند بدء الجلسة أو رد دون ServerHello، تسري وضعية بدء تشغيل مهيأة خارج البروتوكول: proceed (تبدأ الجلسة دون حماية) أو refuse. وهنا أيضًا proceed هو الافتراضي، حتى لا يحظر تعطل الـ Guardian الجلسات الجديدة. ويجب تسجيل الجلسة التي بدأت دون حماية في سجل التدقيق الخاص بالنشر. أما الرفض الصريح من الـ Guardian، مثل SESSION_REFUSED، فيُعد قرارًا لا تعطلًا.

الحالةالآلية الساريةDefault
تعذّر الوصول إلى الـ Guardian عند بدء الجلسةوضعية بدء التشغيل (مهيأة خارج البروتوكول)proceed — تعمل الجلسة دون حماية، مع التزام التدقيق
صمت الـ Guardian، أو خطأ في النقل، أو رد بخطأ أثناء الجلسةon_decision_failure من ServerHelloproceed — تُنفَّذ الخطوة دون فحص، مع التزام التدقيق
انقضاء مهلة ASKtimeout_dispositiondeny
انقضاء مهلة DEFERtimeout_decisiondeny
كائن modifications غير صالحقاعدة التركيب لـ MODIFYالمعاملة كـ deny
فشل system/pingإشارة على مستوى النقل، وليست حدث إنفاذلا Disposition

المهل: لا قيمة افتراضية في المواصفة

لا تحدد المواصفة مهلة قياسية رقمية. فـ timeout_config.default_ms إلزامي في ServerHello، لكن قيمته من شأن النشر؛ ويتيح per_method_ms قيمًا مختلفة لكل طريقة. ويذكّر مخطط الـ Handshake بأن كل مللي ثانية من المهلة تعني في أسوأ الأحوال زمن انتظار للخطوة، ويوصي بضبط المهل لكل طريقة وفق تحمّل زمن الاستجابة بدلًا من قيمة إجمالية سخية. ويستخدم التنفيذ المرجعي 5000 ms — وهي قيمة تنفيذية لا اشتراط. ونموذج مهل قائم على الحساسية مخطط له في v0.2. ولتوضيح المصطلح: ACS_ON_DECISION_FAILURE متغير بيئة في الـ Guardian المرجعي يضبط قيمة on_decision_failure — وليس حقلًا في المواصفة.

الـ Ping لا يثبت الإنفاذ

system/ping مجرد فحص حيوية (Liveness Probe): يجب على الـ Guardian الرد دائمًا بـ allow، ولا يحتاج الـ Ping إلى توقيع ولا يُكتب في سلسلة التدقيق. وبالتالي يمكن للـ Guardian الرد على الـ Pings وفي الوقت نفسه رفض كل Hook موقّع. لذلك توصي المواصفة بمراقبة حالات Decision Failure على مسار الـ Hook مباشرةً.

07الفصل 7

بنية Guardian: الحتمية أولًا، وLLM اختياري

وكيل Guardian ليس نموذجًا لغويًا ثانيًا يراقب الأول من فوق كتفه. يحدد ACS ترتيبًا ثابتًا: أولًا يقرر كود السياسات الحتمي، ولا يجوز لـ LLM أن يشارك إلا في مرحلة لاحقة ودون اطلاع على السياسة.

طبقتان بترتيب ثابت

تقيّم الطبقة الحتمية كل Hook أولًا. فهي إما تقرر بنفسها أو تفوّض إلى طبقة الوكيل — وفقًا للمواصفة عبر إعداد سلسلة (Chain) بالأوضاع «*» أو on_ask أو المعتمد على الأنماط. غير أن v0.1 لا يعرّف تنسيقًا لهذا الإعداد. تتلقى طبقة الوكيل المدخلات نفسها إضافةً إلى النتيجة المرحلية للطبقة الحتمية، لكنها لا تتلقى كود السياسات أبدًا. ويجب أن تمر إجابتها في طريق العودة مجددًا عبر الطبقة الحتمية.

  1. وصول Hook

    تُرسَل Request-Envelope وSessionContext وIntent، وProvenance إن وُجد، إلى محرك السياسات.

  2. التقييم الحتمي

    يُصدر Policy-as-Code — في v0.1 مع OPA/Rego كمرجع أولي — allow أو deny أو modify أو ask أو defer، أو يفوّض.

  3. طبقة LLM اختيارية

    تقيّم الحالات التي لا يمكن البتّ فيها حتميًا؛ وتعامل الحقول غير الموثوقة كبيانات ولا ترى كود السياسات.

  4. إعادة الفحص والإجابة

    تمر النتيجة مجددًا عبر الطبقة الحتمية؛ ويبيّن metadata.evaluator القيمة deterministic أو agent أو composite.

  5. التسجيل

    يُسجَّل كل قرار مع التعليل ومعرّف النموذج، ودرجة الثقة إن توفرت.

محرك السياسات: واجهة لا منتج

يعرّف ACS الواجهة إلى المحرك الحتمي، لا المحرك نفسه. تتكون المدخلات من Request-Envelope وSessionContext وIntent وProvenance، والمخرجات من Envelope للقرار، مع تفويض اختياري إلى طبقة الوكيل (delegate_to). ويضع ACS إضافةً إلى ذلك أعرافًا، منها: لا استدعاءات HTTP خارجية في السياسات المعيارية. وهذا يدعم الحتمية وزمن الاستجابة.

المحركالحالة في ACSالتصنيف
OPA / Regoمرجع أولي لـ v0.1مشروع CNCF بحالة Graduated (منذ 29.01.2021)، Apache-2.0؛ يستخدم التطبيق المرجعي OPA المضمَّن مع Agent Governance Toolkit
Cedarمتابعة سريعة لـ v0.2 (ربط Cedar)لغة سياسات من AWS، Apache-2.0، CNCF Sandbox (منذ 08.10.2025)؛ أساس Policy في Amazon Bedrock AgentCore
محرك خاصمسموح به إذا التزم بالواجهةمثل منطق خاص بالمجال أو مصنِّفات خلف الواجهة نفسها

يذكر ملف README والقسم 2 من المواصفة Cedar وRego معًا؛ أما الحالة لكل إصدار فيحددها القسم 12.1.

التزامات طبقة LLM

  • البيانات غير الموثوقة بيانات وليست تعليمات؛ ويجب تغليف الحقول المعنية أو وضعها بين علامات اقتباس في الـ Prompt.
  • لا وصول إلى كود السياسات الخاص بالطبقة الحتمية.
  • تسجيل كل قرار مع التعليل ومعرّف النموذج ودرجة الثقة (إن توفرت)؛ وعند evaluator بقيمة agent أو composite يجب ذكر model_id.
  • تتبع المهل الزمنية قيمة timeout_config المتفاوض عليها في Handshake.
  • الطبقة بأكملها اختيارية في v0.1.0: عمليات النشر الحتمية بالكامل متوافقة تمامًا.

نماذج تحكم دون امتداد Wire خاص

تذكر المواصفة أربعة نماذج كأهداف لـ v0.1. يعبّر Guardian عنها عبر الحقول نفسها — reason_codes وpolicy_references وpolicy_data وcited_provenance_ids. وإذا جمع نشرٌ ما عدة نماذج، جاز لقرار واحد أن يستشهد بها جميعًا.

IBAC · التفويض القائم على النية

تُحدَّد نية الجلسة (Intent) قبل أن تتدفق البيانات غير الموثوقة؛ وبعدها لا تتوسع إلا عبر موافقة خاضعة للتدقيق (intent_extension). وقد ينتهي الانحراف بـ defer؛ وعندئذٍ يذكر policy_data القدرة المطلوبة وأقرب إدخال من Intent.parsed. لا يحتاج إلى acs-provenance.

FIDES · التحكم في تدفق المعلومات

نهج بحثي يستخدم تسميات السرية والسلامة (arXiv 2505.23643، 2025). يستشهد الرفض بسلسلة النسب (Lineage) المخالفة في cited_provenance_ids وبمسار الوسيط المعني في policy_data.

CaMeL · توليف البرامج

نهج بحثي يستنتج تدفق التحكم والبيانات من الطلب الموثوق (arXiv 2503.18813، 2025). يتحقق Guardian مما إذا كانت الوسائط مصدرها غير موثوق.

على غرار AARM · السياق التراكمي

يقيّم مسار الجلسة حتى الآن بدلًا من الخطوة المفردة. يستشهد الرفض بأقدم خطوة غير موثوقة ويعرض المراجعة الاسترجاعية ذات الصلة في policy_data.

تحتاج قواعد FIDES وCaMeL والقواعد على غرار AARM إلى بيانات المصدر، ولذلك تفترض وجود الملف التعريفي acs-provenance؛ أما IBAC الصرف فلا. لا يطبّق ACS أيًّا من هذه الأساليب بنفسه، بل يوفر الحقول التي يطبّقها Guardian من خلالها ويعلّلها. أي أن ACS لا يمنع Prompt Injection — بل ينشئ نقطة التحكم التي تتدخل عندها السياسات ضد عواقبه.

التشغيل: زمن الاستجابة والتوافر (تقييم VamiSec)

  • زمن الاستجابة: يقع كل فحص في المسار الحرج للوكيل. أبقوا الطبقة الحتمية محلية ودون استدعاءات خارجية، وخصّصوا طبقة LLM لحالات قليلة غير واضحة، وقيسوا evaluation_duration_ms لكل أسلوب.
  • التوافر: مع fail-closed يصبح Guardian حرجًا للتشغيل. شغّلوه قريبًا من الوكيل وبشكل احتياطي متكرر. ويوثّق التطبيق المرجعي هذا الخطر بنفسه: فهو يكتب السجلات بشكل متزامن في مسار القرار، بحيث يعطّل قرصٌ بطيء كل قرار جارٍ.
  • دورة حياة السياسات: أدّوا إدارة إصدارات السياسات وأعيدوا policy_version في كل قرار؛ إذ تنص المواصفة على ذلك لإعادة بناء حالات السياسات التاريخية.
  • حدود النطاق: لا يحل Guardian محل Sandbox ولا IAM ولا إدارة الأسرار ولا جدار حماية Egress. وتبقى الإجراءات التي تتجاوز toolCallRequest غير مرئية له.

يشغّل التطبيق المرجعي الوحيد Agent Governance Toolkit من Microsoft دون تعديل خلف ACS-Wire. وهو صراحةً إثبات مفهوم (Proof of Concept): اثنان من 19 Hook مفعّلان، ولا توقيع HMAC، والإعداد الافتراضي fail-open. يوضح النمط لعميلين (Claude Code وOpenCode)، لكنه غير مخصص للتشغيل الإنتاجي.

08الفصل 8

أمن القناة: التوقيعات والحماية من إعادة الإرسال وسلسلة التدقيق

لا يكون وكيل Guardian جديرًا بالثقة إلا بقدر القناة التي يقرر عبرها. لذلك يشترط ACS-Core ثلاث آليات: توقيعًا على كل Request وكل Response، وحماية من الرسائل المعادة، وسلسلة تدقيق مرتبطة بالتجزئة (Hash). يوضح هذا الفصل ما تحققه هذه الآليات — وأين تقع حدودها.

تمر بين Observed Agent وGuardian Agent قرارات تسمح بإجراءات أو تحجبها. ومن يستطيع التلاعب بهذه القناة يحوّل deny إلى allow أو يعيد إدخال موافقة قديمة. لذلك يعامل OWASP Agent Control Standard (ACS) أمن القناة جزءًا من خط الأساس الإلزامي ACS-Core، لا ملفًا تعريفيًا اختياريًا.

توقيع خط الأساس: HMAC-SHA256 بمفتاح الجلسة

يشترط ACS-Core على كل Request وكل Response توقيعًا على الـ Envelope المعياري. وخط الأساس الذي يفي بهذا الالتزام هو HMAC-SHA256. يُشتق المفتاح لكل جلسة عبر HKDF — من مادة المفاتيح الخاصة بالنشر (سر مشترك مسبقًا أو ربط بالقناة مثل TLS-Exporter) مع session_id. ولا يعرّف v0.1 تبادلًا للمفاتيح ضمن البروتوكول. يُوقَّع على التحويل المعياري RFC-8785 (JCS) للـ Envelope دون الحقل signature؛ ويعيد المستقبِل حساب هذا الشكل ويرفض أي توقيع غير مطابق. ولا يكفي TLS وحده صراحةً، لأنه لا يربط رسالة مفردة لأغراض التدقيق. والمستثنى الوحيد من التزام التوقيع هو أسلوب الحيوية system/ping.

تفصيلان مهمان للبنية. في JSON-Schema يكون signature اختياريًا، لكنه إلزامي معياريًا في ACS-Core — أي أن التحقق من المخطط وحده لا يكشف التوقيعات المفقودة. كما أن المواصفة لا تحدد Salt ولا Info-String ولا دالة التجزئة ولا طول المفتاح لـ HKDF؛ لذا قد تشتق تطبيقان مفاتيح مختلفة. وفي تقديرنا، تنتمي هذه المعلمات إلى اتفاقية الواجهة بين تشغيل المنصة وتشغيل Guardian.

الحماية من إعادة الإرسال

يحمل كل Request قيمة request_id (UUID) وtimestamp واختياريًا nonce. ويجب على Guardian رفض الطلبات التي يقع طابعها الزمني خارج النافذة المتفاوض عليها skew_window_ms (القيمة الافتراضية الموصى بها 300 000 ms، أي خمس دقائق)، ورفض قيم request_id المكررة داخل الجلسة؛ وينبغي له رفض قيم Nonce المكررة. وينتج عن ذلك متطلب تشغيلي يُغفَل بسهولة: ساعات متزامنة على الجانبين.

البرمجةالاسمالمسبِّباستجابة Observed Agent وفق المواصفة
-32000SESSION_REFUSEDالسياسة ترفض الجلسة، ولا يوجد رمز أكثر تحديدًا مناسب (مثل agent_id غير مسموح به)لا محاولة جديدة دون تغيير في السياسة أو الإعداد
-32001UNSUPPORTED_VERSIONلا توجد acs_version مشتركة في Handshakeتكرار Handshake بإصدار مدعوم
-32002PROVENANCE_REQUIREDالسياسة تتطلب Provenance، والعميل يبلّغ provenance_producer: noneإعادة الاتصال بوصفه منتِجًا deterministic أو استخدام Guardian دون التزام Provenance
-32003CAPABILITY_NOT_NEGOTIATEDاستُخدم أسلوب أو ملف تعريفي لم يُتفاوض عليه في Handshakeإعادة التفاوض على الأسلوب أو الملف التعريفي
-32004SIGNATURE_INVALIDالتوقيع الإلزامي مفقود أو معيب أو غير قابل للتحققإعادة التوقيع، وعند الحاجة إعادة حل key_id
-32005REPLAY_DETECTEDتكرار request_id أو nonce في الجلسةتوليد request_id وnonce جديدين
-32006TIMESTAMP_OUT_OF_WINDOWالطابع الزمني خارج skew_window_msتصحيح انحراف الساعة
-32007CHAIN_MISMATCHقيمة chain_hash لدى العميل تختلف عن رأس السلسلة لدى Guardianإعادة تحميل حالة الجلسة؛ والانحراف الدائم حدث يمس السلامة

ملخص خاص لسجل أخطاء ACS (المواصفة v0.1.0، §17.1). لا يجوز لـ system/ping أن يعيد خطأً خاصًا بـ ACS.

سلسلة التدقيق: سلسلة تجزئة برأس منشور

يدير Guardian لكل جلسة SessionContext، وهو سلسلة من ContextEntries قابلة للإلحاق فقط (append-only). يحصل كل إدخال على entry_hash: قيمة SHA-256 على الإدخال المحوَّل معياريًا بـ JCS دون حقول التجزئة، مربوطة بتجزئة الإدخال السابق؛ ويكون previous_hash للإدخال الأول null. ولا يُسمح بتحويلات معيارية أخرى في v0.1. والحاسم هو النشر: لكل خطوة تحمل محتوى (content-bearing) يجب على Guardian أن يرفق قيمة chain_hash الحالية في استجابته، مغطاة بتوقيع الاستجابة. وتذكر المواصفة السبب صراحةً: لو أبقى Guardian رأس السلسلة سريًا، لأمكنه مثلًا حذف deny وإعادة حساب السلسلة من تلك النقطة وتقديم سجل منقّح لاحقًا. ومن يسجّل حركة البيانات يكتشف السلسلة المعاد كتابتها لاحقًا.

ما تثبته السلسلة — وما لا تثبته

  • الحقول الإلزامية في ContextEntry هي فقط entry_id وstep_id وstep_type وentry_hash. أما request_hash على محتوى الطلب فهو في ACS-Core موصى به فقط (SHOULD) ولا يصبح إلزاميًا إلا في الملف التعريفي acs-audit. ومن دونه تثبت السلسلة أن خطوة ما حدثت، لكن لا تثبت ما الذي طُلب.
  • لا يعرف مخطط ContextEntry حقلًا للتصرف (Disposition) أو التعليل أو الموافِق (Approver). يسجل ACS القرارات معياريًا كأحداث Trace (الملف التعريفي acs-trace، الفصل 9)؛ ولا يكتب إدخالًا خاصًا مع هوية الموافِق سوى توسيع النية (الفصل 11).
  • HMAC متماثل: يحتفظ Guardian بالمفتاح وقد يعيد توقيع رأس سلسلة معاد كتابته. فالقناة محمية من التلاعب في الشبكة، لا من Guardian مخترَق.
  • لا تنشأ عدم القابلية للإنكار تجاه الأطراف الثالثة إلا مع acs-crypto: على الأقل ML-DSA-65 (MUST)، وSLH-DSA-128s (SHOULD)، والأساليب الهجينة اختيارية.
  • لا توجد مطابقة بين عدة Guardians في v0.1 (Issue #18، مؤجلة).
09الفصل 9

Trace: OpenTelemetry وOCSF في SOC

مع ركيزة Trace تصل إجراءات الوكلاء وقرارات Guardian إلى منظومة المراقبة وSIEM القائمة. لا يخترع ACS لذلك تنسيقًا جديدًا، بل يوفر مفردات لـ OpenTelemetry وOCSF. وما يهم SOC هو الفئات التي تصل، ومدى موثوقيتها، وأين لا تزال في الربط (Mapping) ثغرات.

المساهمة المعيارية لـ Trace هي المفردات: أسماء Span ومفاتيح السمات وفئات الأحداث وربط حالات التصرف (Dispositions) بدرجات الخطورة. يتم النقل عبر OTLP (gRPC أو HTTP) إلى الأنظمة الخلفية القائمة؛ أما نطاق أسماء Wire trace/* فهو في v0.1.0 محجوز فقط. والهدف المعلن هو أن تندمج أحداث ACS في خطوط SIEM دون محللات خاصة. ويحمل امتدادا OTel وOCSF في المستودع حالة «Working draft». Trace هو الملف التعريفي الاختياري acs-trace. ومن يدّعيه يجب عليه لكل خطوة مدعومة أن يُخرج أحد التنسيقين على الأقل مع السمات الإلزامية، وأن يسجل كل قرار مع التصرف والمقيِّم — والتعليل إن وُجد — وأن ينقل حقائق Provenance من Hook إلى الحدث.

OpenTelemetry: Span لكل Hook، والقرارات كـ Span-Event

التسلسل الهرمي لـ Span حتمي: Root-Span باسم acs.session لكل جلسة، وتحته acs.turn لكل دورة وStep-Span لكل Hook. القرارات ليست Spans مستقلة، بل Span-Event باسم acs.decision على Step-Span؛ وبذلك يتشارك الحكم والإجراء المتحكَّم فيه سياق الأصل نفسه. السمات الإلزامية للحدث هي acs.decision وacs.evaluator (deterministic أو agent أو composite). ولاستدعاءات الأدوات يستخدم ACS اسمي Span gen_ai.tool.call وgen_ai.tool.result. تنبيه: في أعراف OpenTelemetry-GenAI (بحالة «Development» حتى أكتوبر 2026) يكون gen_ai.tool.call مجرد بادئة سمات، واسم Span الموصى به هناك هو execute_tool {gen_ai.tool.name}. لذلك لا تتوافق لوحات المعلومات والاستعلامات المبنية على هذه الأعراف مع Tool-Spans الخاصة بـ ACS دون تعديل.

حدث ACSفئة OCSF (UID)ملاحظة
sessionStart، sessionEnd، subagentStart، subagentStop3002 Authenticationمُمثَّل بوصفه Logon أو Logoff
userMessage، agentResponse، agentTrigger، turnStart، turnEnd6002 Application Lifecycleيسمي ACS الفئة «Application Activity» — وفي OCSF هذا هو اسم الفئة الرئيسية 6
toolCallRequest و toolCallResult1007 Process Activityالمصدر المركزي لإجراءات الوكلاء
knowledgeRetrieval، memoryContextRetrieval، memoryStore، preCompact، postCompact6005 Datastore Activityالضغط (Compaction) بقيمة activity_id 99، وهي في OCSF عامة «Other»
القرارات deny وmodify وask وdefer2004 Detection Findingseverity_id: ‏modify 2، وask وdefer 3، وdeny 4؛ وallow عادةً معلوماتي فقط (1)
agbom/snapshot، agbom/changed5001 Device Inventory Infoيسمي ACS الفئة «Inventory Info»

الفئات وفق ربط ACS (OCSF 1.5+)، وأسماء الفئات وفق OCSF 1.5.0. يظهر الوكلاء بوصفهم actor.user.type «AI Agent»؛ وتقع الحقول الخاصة بـ ACS مثل reason_codes ومراجع السياسات في unmapped.acs.

حالات استخدام SIEM للوكلاء

حالة الاستخدامأساس البياناتالاستجابة الممكنة
تجاوز Guardian ‏(fail-open)حدث تدقيق إلزامي لكل خطوة دون قرار؛ بدء جلسة غير محميتنبيه من أول حدث لدى الوكلاء عالية المخاطر؛ والتحقق من توافر Guardian
تراكم حالات denyDetection Finding 2004 مع severity_id 4 وreason_codes وpolicy_idمراجعة الجلسة؛ مؤشر على Prompt Injection أو خطأ في الإعداد
عبء الموافقاتنتائج ask ‏(severity_id 3) لكل فترة زمنية، مستكملة ببيانات الموافِق من ask_detailsتعديل العتبات وقدرة الموافِقين، والوقاية من إرهاق الموافقات
انحراف المخزونagbom/changed مع reason بقيمة user_action أو discovery (فقط مع acs-inspect-dynamic)المطابقة مع قائمة الموافقات، وعند الحاجة تشديد السياسة
حدث يمس السلامةCHAIN_MISMATCH أو reason_code بقيمة chain_mismatchالتحقيق فيه بوصفه حدثًا يمس السلامة، لا الاستخفاف به كخطأ عابر
وكيل أم إنسانactor.user.type «AI Agent»خطوط أساس منفصلة، وربط مع الهويات البشرية

استنتاج VamiSec — لا يعرّف ACS منطق كشف ولا دليل استجابة (Playbook). ولحدث تدقيق fail-open لا يزال تنسيق متوافق مفقودًا وفق Issue #37؛ لذا ابنوا القواعد على أساس ربط JSON واختبروها ببيانات حقيقية.

حدود ينبغي أن تخططوا لها

  • أفضل جهد (Best effort): لا يجوز لـ Trace أن يعطّل التنفيذ أبدًا. وإذا تعطلت الوجهة، يصل القرار رغم ذلك إلى Observed Agent — أي أن القياس عن بُعد قد يكون ناقصًا.
  • إفادة ذاتية: تنشأ أحداث Trace في البيئة المراقَبة ولا تصبح دليلًا إلا بتصديق طرف خارجي.
  • ثغرة Skills: يغطي الربط 16 من أصل 19 Hook أصليًا إضافةً إلى أسلوبي agbom. أما skillRegister وskillLoad وskillUnload فليس لها ربط OTel ولا OCSF.
  • انحراف التوثيق: موضع تخزين Provenance في OCSF متناقض (enrichments في الربط المعياري، وunmapped.acs.provenance في الدليل). كما أن صفحة الأمثلة باستعلامات Splunk وElastic لا تزال تستخدم الاسم القديم ASOP وOCSF 1.0.
  • حماية البيانات: قد تحتوي Spans على Prompts ووسائط الأدوات. توصي المواصفة بالتنقيح (Redaction) منذ لحظة الإصدار؛ وفي تقديرنا يجب أن يكون ذلك إلزاميًا في مفهوم التسجيل.
10الفصل 10

Inspect: ‏AgBOM — مخزون وقت التشغيل للوكيل

يغيّر الوكلاء قدراتهم أثناء التشغيل: نموذج جديد، خادم MCP محمَّل لاحقًا، Skill مسجَّلة حديثًا. تجعل AgBOM ‏(Agent Bill of Materials) هذه الحالة قابلة للاستعلام ولاتخاذ القرار لكل جلسة. وهي ليست تنسيق SBOM جديدًا — ولا تحل محل أي تنسيق.

AgBOM وفق المواصفة مخزون ديناميكي قابل للاستعلام للمكونات التي يستخدمها Observed Agent. والتعليل دقيق: كل سياسة تعتمد على ماهية الوكيل — أي نموذج وأي أدوات — تصبح غير قابلة للتحقق دون مخزون. وإذا اعتمدت سياسة Guardian على المخزون، كحظر نموذج أو أداة، وجب على النشر تطبيق الملف التعريفي acs-inspect. وAgBOM المعيارية رسم بياني للمكونات، مخزَّن كقائمة مسطحة بمراجع عبر المعرّف، بحيث يمكن مقارنة الحالات عبر Diff.

ثمانية أنواع من المكونات

النوعما يُسجَّل (مختارات من الحقول الإلزامية)
modelالاسم والإصدار والمزوّد ونقطة النهاية ونافذة السياق؛ واختياريًا لقطة للإعداد
mcp_serverالاسم والإصدار ونقطة النهاية والأدوات المتاحة
a2a_peerنقطة النهاية وإصدار البروتوكول
toolالاسم والإصدار والمزوّد والقدرة المجردة، مثل filesystem.delete أو network.egress
knowledge_sourceالاسم ونوع المصدر (vector_db، search_index، knowledge_base، web_search، other)
memory_storeالاسم والنطاق (session، user، tenant، global) ونوع التخزين
agent_capabilityاسم ووصف مجموعة قدرات سلبية
skillالاسم والوصف إضافةً إلى المرجع وملخص السلامة (Digest) للأداة القابلة للتحميل

المصدر المعياري هو المخطط component.json. تذكر بعض صفحات التوثيق ستة أو سبعة أنواع؛ والمعتمد هو ثمانية.

snapshot وchanged: أسلوبا Wire

يرسل Observed Agent ‏agbom/snapshot مرة واحدة لكل جلسة بعد sessionStart وقبل أول Hook يحمل محتوى؛ وتحتوي الرسالة على AgBOM الكاملة. ويبلّغ agbom/changed عن التغييرات — المكونات المضافة أو المحذوفة أو المعدلة كـ Diff أو كلقطة كاملة — ويمكن أن يحمل سببًا، مثل component_upgraded أو discovery أو user_action. ويدخل كلا الحدثين في سلسلة التدقيق. ويجوز لـ Guardian عبر deny رفض جلسة تحتوي على مكون محظور أو منع تبديل ساخن (Hot-Swap).

مهم لاختيار الملف التعريفي: من يدّعي acs-inspect فقط يقدم لقطة واحدة بالضبط لكل جلسة ولا يتتبع التغييرات. ولا تصبح تغييرات وقت التشغيل مرئية إلا مع acs-inspect-dynamic. ويشير مسبِّبا اللقطة renegotiation وpolicy_request إلى آليات لن تُحدَّد إلا مع v0.2 — ففي v0.1 لا يُعتمد عمليًا إلا على session_start. كما ينبغي أن يحمل كل مكون registration_provenance (إلزامي ضمن acs-provenance). وبذلك يمكن التمييز بين مكون مصدره الإعداد ومكون أضيف أثناء التشغيل.

التسلسلات: CycloneDX وSPDX وSWID

يُرسل على Wire دائمًا الشكل المعياري؛ ويُنتج Guardian التسلسلات عند الطلب للأدوات اللاحقة. ويجب على نشر acs-inspect أن يوفر واحدًا منها على الأقل: CycloneDX 1.6 أو SPDX 3.0 أو SWID ‏(ISO/IEC ⁦19770-2⁩). تحمل جميع عمليات الربط الثلاث حالة «Working draft»؛ والتمثيلات على CycloneDX وSPDX غير صالحة جزئيًا وفق المخطط. يستخدم ربط CycloneDX أسماء أنواع مثل ai-model أو service كنوع مكون لا يعرفها CycloneDX 1.6 بهذا الشكل؛ ويستخدم ربط SPDX فئات وعلاقات غير موجودة في SPDX 3.0.1. لذلك خططوا لعمليات التصدير مع تحقق خاص بكم. أما CycloneDX نفسه فمتاح منذ أكتوبر 2025 بالإصدار 1.7.

التمييز: AgBOM وAI-SBOM وCRA-SBOM

AgBOM ‏(ACS)

مرتبطة بوقت التشغيل ولكل جلسة، ومثبتة في سلسلة التدقيق وقابلة لاتخاذ القرار. تحصر ما يستخدمه Observed Agent في هذه الجلسة وفق إفادته الذاتية؛ وضمن acs-provenance إضافةً إلى ذلك مصدر كل تسجيل.

AI-SBOM / ML-BOM

تصف النماذج ومجموعات البيانات، مثلًا باستخدام CycloneDX ML-BOM أو الملف التعريفي AI في SPDX 3.0. لا يرد مصطلح AI-BOM في ACS؛ والمقارنة هي تصنيفنا.

CRA-SBOM

إلزامية اعتبارًا من 11.12.2027 للشركات المصنِّعة للمنتجات ذات العناصر الرقمية (الملحق I الجزء II البند 1 من CRA): قابلة للقراءة آليًا، وتشمل على الأقل التبعيات من المستوى الأعلى. يمكن لـ AgBOM أن تكمّل SBOM وقت البناء هذه بمكونات وقت التشغيل، لكنها لا تحل محلها.

11الفصل 11

Provenance والهوية: مصدر البيانات وحدود الهوية

كثيرًا ما تتوقف مشروعية إجراء ما على مصدر البيانات التي تطلقه. يزود Provenance ‏Guardian بحقائق المصدر هذه على مستوى الحقل، ويثبّت Session Intent الغرض. أما جزء الهوية في ACS فيصف حتى الآن أسئلة مفتوحة في الغالب.

Provenance الحقول: حقائق بدلًا من تسميات الثقة

يجيب Provenance عن مصدر عنصر البيانات وكيف وصل إلى موضعه. يحمل كائن Provenance قيمة provenance_id، وorigin بإحدى سبع قيم — user_input، system، tool_output، retrieved، agent_generated، a2a_inbound، external — واختياريًا source_id (مثل اسم الأداة أو URL أو المسار) وderived_from كقائمة بالأسلاف. وترتبط هذه البيانات بالحقول الحاملة للبيانات، بل في toolCallRequest بكل وسيط على حدة. وبذلك يمكن لسياسة أن تستهدف تدفق بيانات محددًا بدلًا من الاستدعاء بأكمله.

  • يحددها الإطار: يمنح كود حتمي خارج مسار مخرجات LLM قيم origin وsource_id وderived_from. وتوجيه LLM لإنتاج Provenance غير متوافق.
  • النسب المتعدية (Transitive Lineage): ترث البيانات المشتقة مصدر مدخلاتها، حتى عبر التلخيص والضغط. وبذلك يبقى ملخص مخرجات أدوات خارجية قابلًا للتعرف عليه بصفته تلك.
  • لا حقل ثقة: قيمة trust في v0.1 محجوزة فقط، دون مخطط. يستنتج Guardian الثقة من origin وsource_id مقارنةً بسياسته؛ ولا تصبح المواد غير الموثوقة موثوقة أبدًا بمعالجة LLM (قاعدة الرتابة).
  • كل شيء أو لا شيء: مع provenance_producer: deterministic يجب أن يحمل كل حقل حامل للبيانات Provenance؛ والتعبئة الجزئية غير متوافقة. وإذا أبلغ العميل provenance_producer: none رغم أن السياسة تتطلب Provenance، يرفض Guardian الجلسة منذ Handshake بـ PROVENANCE_REQUIRED.

لا ينتمي Provenance إلى ACS-Core، بل إلى الملف التعريفي acs-provenance. وهو شرط مسبق لنماذج التنفيذ مثل FIDES وCaMeL وAARM، لكنه ليس شرطًا للتفويض الصرف القائم على النية (IBAC). لا يمنع ACS ‏Prompt Injection. بل ينشئ نقطة التحكم التي يمكن عندها لسياسة أن تحد من العواقب — مثلًا بحجب بريد إلكتروني يأتي مستلمه ومحتواه من نتيجة استرجاع غير موثوقة. وليست تسميات الحساسية أو IFC جزءًا من المعيار؛ بل تقع ضمن مسؤولية Guardian أو النشر.

Session Intent: الغرض المثبَّت

Intent في ACS ليس تنسيق Wire، بل مفهوم حوكمة: فهو يربط الإجراءات بغرض مفوَّض، وذلك قبل أن تتمكن البيانات غير الموثوقة من التأثير. يُحدَّد Intent.parsed، أي مجموعة القدرات المفوضة للجلسة، عند sessionStart أو عند أول agentTrigger. وبعدها لا يجوز لـ LLM ولا لمخرجات الأدوات ولا للبيانات القادمة من قنوات غير موثوقة تغييره؛ وإذا حُدد Intent عند sessionStart، وجب رفض أي agentTrigger لاحق بنية مختلفة.

الطريق المتوافق الوحيد للتوسيع هو intent_extension يعيدها موافِق عبر مسار ask — مع بيانات إلزامية عن القدرات والنطاق. مع scope بقيمة this_request يسري التوسيع على الطلب الجاري فقط. ومع scope بقيمة session يضيف Guardian القدرات، ويكتب ContextEntry من نوع intent_extension مع هوية الموافِق، ويدير Provenance التوسيع منفصلًا عن Provenance النية الأصلية. وضمن scope_mode بقيمة strict لا يجوز له قبول أي توسيع تحظره السياسة في الوضع الصارم. وفي تقديرنا، هذه بالنسبة لمسؤولي أمن المعلومات (CISO) الرافعة ضد التوسع التدريجي للصلاحيات: فكل توسيع يحتاج إلى موافقة موثَّقة الهوية.

الهوية: معياريًا محدودة، والكثير قيد العمل

ما يسري معياريًا

لا يفرض ACS آلية مصادقة؛ إذ يُعلَن عن الآلية المستخدمة في Handshake، وتبقى مخططات الثقة مثل SPIFFE أو OIDC أو PKI محددة من قِبل النشر. والإلزامي هو مصادقة الموافِقين والفصل بين ثلاث هويات: Observed Agent وGuardian ومؤلف السياسة.

ما ليس ملزمًا بعد

تذكر وثائق العمل الخاصة بمسار الهوية خمسة تحديات لوقت التشغيل؛ أربعة منها «Pending» وواحد «Partially specified». وعبارات مثل «Required by ACS» بشأن DPoP أو RAR غير ملزمة — إذ يوضح المشروع نفسه أن ACS لا يفرض أي آلية. ونموذج المعرّفات وأعمار Tokens مقترحة فقط.

التمييز عن AIMS

تتناول مسودة IETF ‏AIMS ‏(draft-klrc-aiagent-auth) إصدار الهويات وربط بيانات الاعتماد ومصادقة النقل. ويعدّ ACS نفسه مكمّلًا: تنفيذ في وقت التشغيل بدلًا من إصدار الهويات.

يصادق توقيع ACS-Core القناة بين Observed Agent وGuardian بشكل متماثل. وهو ليس مصادقة للجهة الأصيلة (Principal) ولا عدم قابلية للإنكار — ولا ينبغي لكم الخلط بينهما في البنية وأدلة الإثبات.

12الفصل 12

MCP وA2A وSkills: البروتوكولات والقدرات القابلة للتحميل

يتواصل الوكلاء مع الأدوات عبر MCP، ومع وكلاء آخرين عبر A2A، ويحمّلون Skills كوحدات قابلة للتنفيذ. يغطي ACS v0.1 هذه المساحات الثلاث بدرجات متفاوتة: تغليف MCP محدد، وA2A محجوز فقط، ولدورة حياة Skills ‏Hooks خاصة بها.

تغليف MCP: محدد، مع سؤال مفتوح حول الإلزام

نطاق الأسماء protocols/MCP/* هو الطريق المعياري لنقل رسائل MCP إلى Guardian، مثل protocols/MCP/tools/call. تبقى رسالة MCP دون تغيير؛ ويضع ACS فوقها Envelope وعقد القرار وقواعد سلسلة التدقيق. يتم المسار على مرحلتين: يعرض الوكيل الطلب المغلَّف على Guardian، وينفّذ قراره، ويمرر الرسالة وفق وصف المسار بعد allow إلى خادم MCP، ويُخضع إجابته أيضًا للفحص قبل معالجتها.

يجوز للنشر دمج استدعاءات أدوات MCP ‏(tools/call) في الـ Hooks العامة steps/toolCallRequest وsteps/toolCallResult إذا كانت السياسات على مستوى الأداة كافية. وينبغي استخدام التغليف عندما تحتاج السياسة إلى فروق خاصة بـ MCP: التفاوض على القدرات عند initialize، وقوالب Prompt من جانب الخادم (prompts/get)، والوصول إلى الموارد (resources/read)، والإشعارات (notifications/*). وبمعزل عن ذلك: يجب على أطر العمل إطلاق toolCallRequest لكل إجراء يغادر سياق الاستدلال — بما في ذلك عمليات الملفات أو الشبكة أو Shell المدمجة.

MCP ⁦2026-07-28⁩: نص المواصفة متأخر عن الركب

منذ 28.07.2026 أصبحت مراجعة MCP ‏⁦2026-07-28⁩ هي الحالية (حتى أكتوبر 2026). وهي تجعل نواة البروتوكول عديمة الحالة (Stateless)، وتلغي Handshake الخاص بـ initialize، وتعلن من بين أمور أخرى أن Sampling وRoots متقادمة. نطاق الأسماء protocols/MCP/* في ACS محايد تجاه الإصدارات؛ ولا تظهر المراجعة ⁦2025-06-18⁩ في المواصفة إلا كمثال. غير أن النص لا يزال يفترض الدلالات الأقدم ويذكر صراحةً التفاوض عند initialize كنقطة ينبغي التحكم فيها. وتترك المواصفة مفتوحًا ما إذا كان ذلك يؤثر عمليًا على أدوات التغليف؛ ولا يتوفر لدينا تحليل موثوق. وفي تقديرنا، ينبغي للبنى المعتمدة بكثافة على MCP أن تخطط لاعتماد Tool-Hooks العامة نقطةَ تحكم أساسية.

A2A: محجوز لـ v0.2

نطاق الأسماء protocols/A2A/* في v0.1 محجوز فقط؛ ودلالات التغليف المعيارية مقررة لـ v0.2 (الموعد المستهدف لـ v0.2.0: مارس 2027). وصفحات A2A في المستودع تعود إلى حقبة AOS عام 2025 وليست متوافقة مع المخطط. ولا تظهر علاقات A2A اليوم إلا بشكل غير مباشر: عبر agentTrigger مع trigger_type بقيمة a2a_inbound وعبر مكونات a2a_peer في AgBOM. أما الوكلاء الفرعيون داخل العملية فيغطيهم ACS عبر subagentStart وsubagentStop؛ إذ يحصل كل وكيل فرعي على جلسة خاصة بسلسلة تدقيق خاصة، يشير إليها الأصل عبر final_chain_hash دون دمج السلاسل.

دورة حياة Skill: ‏register وload وunload

Hookالغرضخيارات Guardian
steps/skillRegisterبوابة فحص ثابتة: يرى Guardian تعريف Skill بالكامل قبل تنفيذ أي من إجراءاتها. وتسري الموافقة على الزوج (skill_id، digest).allow أو deny؛ ولا يجوز أن تصبح Skill مرفوضة قابلة للتحميل. وينبغي له فحص القدرات المعلنة مقابل الأدوات المركّبة، ويجوز له رفض الإعلانات الواسعة أكثر من اللازم.
steps/skillLoadبوابة وقت التشغيل لكل تفعيل؛ ويجعل load_path التحميلات المتتالية مرئية (Skill A تحمّل B، وB تحمّل C).allow أو deny؛ وينبغي له رفض التحميلات دون موافقة قابلة للإسناد، أو بقيمة Digest مختلفة، أو خارج composed_skills المعلنة.
steps/skillUnloadيحافظ على تحديث المخزون النشط؛ ويجوز بديلًا أن يندمج في agbom/changed.للتدقيق فقط؛ والتحميل والإلغاء المتكرر إشارة جديرة بالمراقبة وفق المواصفة.

ملخص خاص لأوصاف Hooks في ACS v0.1.0.

يغطي Digest الأداة القابلة للتحميل بالكامل، بما في ذلك أوزان النماذج أو المحوّلات (Adapters) المضمَّنة؛ ولا يُحفظ في AgBOM سوى المرجع وDigest، لا المحتوى. ولا ينبغي لـ Guardian أن يعتمد على digest_verified الذي يبلّغ عنه إطار العمل، بل أن يقارن بنفسه مع موافقته. ويسمي مقترح التصميم الخاص بدورة حياة Skill في المستودع الحد صراحةً: يربط Digest الأداة المسجلة، لا الكود الذي تحمّله Skill لاحقًا — إذ يمر هذا التحميل اللاحق بوصفه network.egress أو process.execute عبر Tool-Hooks الاعتيادية. وفحص Marketplace قبل النشر ليس جزءًا من ACS، ولا يزال ربط Trace مفقودًا للـ Hooks الثلاثة الخاصة بـ Skills (الفصل 9).

13الفصل 13

التوافق ومستوى النضج: ما يقدمه v0.1 — وما لا يقدمه

ACS مشروع OWASP حديث في مرحلة مبكرة. لذلك فإن المعتبر في قرارات البنية والمشتريات هو الوضع القابل للتحقق: المواصفة v0.1.0، والإصدار 0.1.2، وتطبيق مرجعي بوصفه إثبات مفهوم (Proof of Concept)، والتوافق بوصفه إعلانًا ذاتيًا.

0.1.0إصدار المواصفة؛ الإصدار 0.1.2، وسم بتاريخ 21.09.2026
2 من 19Hooks يقيّمها التطبيق المرجعي فعليًا
7ملفات تعريف التوافق؛ وكل ادعاء هو إعلان ذاتي
03/2027الموعد المستهدف لـ v0.2.0؛ ولا يوجد موعد لـ v1.0

ACS مشروع ضمن OWASP GenAI Security Project، ومصنَّف وفق بيانات OWASP-Nest الوصفية الخاصة به في المستوى 2 ‏(Incubator)؛ ويصف قائد المشروع الوضع بأنه «public preview». وACS ليس معيار ISO ولا IETF ولا W3C، وليس كذلك معيارًا منسَّقًا.

ما يقدمه v0.1 بالفعل

رغم المرحلة المبكرة، يقدم v0.1 مضمونًا: مفردات مشتركة من 19 Hook وخمس حالات تصرف (Dispositions)، و44 مخطط JSON منشورًا، ووضعية فشل (Failure Posture) موصوفة بوضوح مع التزام تدقيق لكل تجاوز، ومواصفة تسمي ثغراتها صراحةً. وفي تقديرنا، يكفي ذلك لقياس المورّدين بمعيار مفتوح ومشترك، ولتصميم نقاط التحكم الخاصة بحيث تبقى متوافقة مع الإصدارات اللاحقة — لكنه لا يكفي للاعتماد على ملصقات التوافق.

التوافق إعلان ذاتي

في Handshake يعلن Observed Agent الملفات التعريفية التي يدعمها (profiles_supported)، ويعلن Guardian ما يقبله (profiles_accepted). وهناك سبعة ملفات تعريفية بالضبط: acs-core إلزاميًا، إضافةً إلى acs-trace وacs-inspect وacs-inspect-dynamic وacs-provenance وacs-crypto وacs-audit. ولا توجد درجات أو مستويات. أما من يتحقق من ادعاءات التوافق، فتجيب المواصفة نفسها: في v0.1.0 لا أحد. لا توجد مجموعة اختبارات، ولا سجل للتطبيقات المتوافقة، ولا جهة تفصل في الادعاءات المتنازع عليها (Issue #19، مفتوحة، الأولوية P1). كما أن ACS-Core لا يضمن سوى أمرين — قناة موثَّقة، والتزام Observed Agent بقرارات Guardian. ولا يضمن سياسات صارمة: فحتى Guardian متساهل يكون متوافقًا.

التطبيق المرجعي: الوضع الفعلي بصراحة

التطبيق المرجعي الوحيد هو صراحةً إثبات مفهوم. فهو يشغّل Agent Governance Toolkit ‏(AGT) من Microsoft دون تعديل بوصفه محرك سياسات خلف ACS-Wire، مع ربط بمضيفَي Claude Code وOpenCode. ولا يدّعي acs-core إلا بشكل مقيَّد («qualified») ولا أيًّا من الملفات التعريفية الستة الاختيارية. ولا يتوفر معيار مقارنة لقابلية التشغيل البيني مع AGT؛ فهو هدف نافذة الـ 90 يومًا منذ الانطلاق في 10.09.2026. ولا يمكن أن يُستنتج من ذلك دعم Microsoft لـ ACS. تنبيه لتشابه الأسماء: في توثيق AGT يشير «ACS» إلى «Agent Control Specification» الخاصة بـ Microsoft ‏(02.06.2026)، وهي لغة السياسات في AGT — لا إلى معيار OWASP.

متطلب ACS-Coreوضع التطبيق المرجعي
المصافحة (Handshake) ‏handshake/helloمخدوم، لكن ServerHello يتكون من ثوابت؛ ولا يُقرأ ClientHello
ستة Hooks على الأقل2 من 19 مقيَّمان: steps/toolCallRequest وsteps/toolCallResult
جميع حالات التصرف الخمسallow وdeny وmodify موجودة؛ وask دون ask_details (غير صالح وفق المخطط)؛ وdefer لا يُنتَج أبدًا
chain_hash في الاستجاباتالسلسلة مُدارة، لكنها لا تُنشر في أي استجابة
توقيع خط الأساس HMAC-SHA256غير مطبَّق؛ Wire غير موثَّق، والحماية فقط عبر الربط بـ Loopback ‏(Issue #70)
الحماية من إعادة الإرسالغير مطبَّق
الالتزام بالقرار (Decision Honoring)، on_decision_failureمطبَّق على كلا المضيفين؛ الإعداد الافتراضي proceed ‏(fail-open)، ويُدقَّق كل تجاوز (Issues #32، #37)
system/ping، protocols/MCP/*غير مطبَّق

المصدر: الإفادة الذاتية للتطبيق المرجعي (reference-implementations/agt/README.md)، حالة فرع main بتاريخ 10.09.2026. ولم يُضَف التطبيق المرجعي إلى المستودع إلا بعد Commit الإصدار الموسوم 0.1.2.

ثغرات مفتوحة في المواصفة ذات أهمية عملية

  • الإعداد الافتراضي fail-open: يكون on_decision_failure ووضعية بدء التشغيل على proceed؛ ويجب عليكم إعداد fail-closed ‏(deny أو refuse) عن وعي.
  • لا آلية إيقاف: لا يعرف v0.1 مفتاح إيقاف طارئ (Kill-Switch)؛ والمقاطعة (interruption) والبث (Streaming) مقرران لـ v0.2. وفي v0.1 لا يُوقَف الوكيل إلا تدريجيًا عبر deny.
  • نطاق الإلزام في تحوّل: من شأن اقتراح مفتوح (PR #21) أن يخفض modify وsystem/ping إلى SHOULD.
  • ثغرات التشغيل البيني (تحليل خاص): معلمات HKDF وتوقيع Handshake ومدخلات request_hash غير محددة بما يكفي.
  • انحراف التوثيق: لا تزال بعض الصفحات تذكر 16 بدلًا من 19 Hook أو ثلاث حالات تصرف فقط. والمعياري هو المواصفة والمخططات.
14الفصل 14

التطبيق العملي والصلة بالإطار التنظيمي

ACS ليس أداة امتثال. لكنه يوفر لبنات تقنية يمكنكم بها دعم تقديم أدلة الإثبات للالتزامات الناشئة عن AI Act وNIS2 وDORA وCRA، وكذلك لمتطلبات ISO/IEC 42001. يربط هذا الفصل اللبنات بالمتطلبات ويرسم مدخلًا من خمس خطوات.

ثلاثة تصنيفات مسبقة. أولًا، لا يؤسس ACS أي افتراض للتوافق؛ ولا يتضمن نص المواصفة أي ربط بـ AI Act أو NIS2 أو DORA أو CRA أو ISO/IEC 42001 — وكل عمليات الربط أدناه استنتاجات من VamiSec. ثانيًا، وكلاء الذكاء الاصطناعي ليسوا بحد ذاتهم أنظمة عالية المخاطر. وتسري التزامات المخاطر العالية الواردة في الفصل III الأقسام 1–3 من اللائحة (EU) 2024/1689 بعد Digital Omnibus ‏(اللائحة (EU) 2026/1744) اعتبارًا من 02.12.2027 للملحق III واعتبارًا من 02.08.2028 للملحق I؛ وتسري المادة 50 منذ 02.08.2026. ثالثًا، تتوقف كل حجة على الملفات التعريفية: إذ لا يتضمن ACS-Core وحده Trace ولا AgBOM ولا request_hash.

المتطلبلبنة ACS (الملف التعريفي)دليل الإثباتتحفّظ
AI Act المادة 12: التسجيل التلقائيTrace لكل خطوة وأحداث القرار، وسلسلة التدقيق (acs-trace، acs-audit)بيانات SIEM، وسلسلة تجزئة قابلة للتحققTrace إفادة ذاتية؛ وACS-Core دون Trace
AI Act المادة 14 الفقرة 4 البند d: التجاوزask على toolCallRequest مع موافِق بشري وtimeout_disposition بقيمة deny ‏(acs-trace)أحداث القرار مع ask_details، وإدخالات intent_extensionيجوز وفق المواصفة أن يكون الموافِق أيضًا agent أو service — يُستبعد ذلك عبر السياسة
AI Act المادة 14 الفقرة 4 البند e: الإيقافdeny عند sessionStart وturnStart وtoolCallRequest؛ وon_decision_failure بقيمة deny، ووضعية بدء التشغيل refuseدليل إعداد fail-closed، وسجل تمرين إيقافلا Kill-Switch في v0.1؛ والإعداد الافتراضي fail-open
AI Act المادة 26: الإشراف والمراقبة والسجلات ≥ 6 أشهرموافِقون موثَّقون، وGuardian بوصفه مراقبًا لوقت التشغيل، وتصدير Traceمصفوفة أدوار الموافِقين، وتقرير المراقبة، وسياسة الاحتفاظلا ينظم ACS الاحتفاظ؛ وتبقى الكفاءة مسألة تنظيمية
AI Act المادة 72: المراقبة بعد الطرح في السوقمؤشرات Trace، وAgBOM ‏(mcp_server، a2a_peer)، وHooks الوكلاء الفرعيينقسم PMM «بيانات وقت التشغيل للوكلاء»قالب المفوضية لن يصدر قبل 02.09.2027
NIS2 المادة 21 الفقرة 2 / المادة 30 من BSIGPolicy-as-Code ‏(v0.1: ‏OPA/Rego؛ وربط Cedar مخطط لـ v0.2)، وسياسات القدرات، وAgBOM مع Digest الخاص بـ Skillكود سياسات معتمد، وسجل للمكونات والمورّدين لكل وكيلفحص Marketplace ليس جزءًا من ACS
DORA المواد 8–10، RTS ‏(EU) 2024/1774 المادة 12AgBOM بوصفها مخزونًا، وTrace وفق OCSF، ورأس سلسلة موقَّع، وأحداث تدقيق fail-open، وtimestamp وskew_window_msسجل أصول تقنية المعلومات والاتصالات (ICT) موسَّع، ومفهوم التسجيل، ودليل مزامنة الوقتلا يحمي HMAC من Guardian مخترَق
CRA الملحق I: التسجيل، SBOMTrace بوصفه وظيفة في المنتج، وتصدير AgBOM ‏(CycloneDX 1.6، SPDX 3.0)SBOM البناء إضافةً إلى تصدير AgBOM، وتوثيق المنتجلمنتجات الوكلاء فقط، ويسري الملحق I اعتبارًا من 11.12.2027؛ ولا تحل AgBOM محل SBOM
ISO/IEC 42001 ‏A.6.2.6، A.6.2.8، A.7.5، A.10.3Trace وسلسلة التدقيق، وacs-provenance، وAgBOMمفهوم سجل الأحداث، وأدلة Provenance، وقائمة المورّدينلا افتراض للتوافق مع AI Act من خلال 42001
NIST AI RMF ‏MANAGE 2.4، MEASURE 2.4، GOVERN 1.6deny وask، وTrace، وAgBOMمعايير التعطيل، وخطة المراقبة، والمخزونإطار طوعي

استنتاج VamiSec بناءً على ACS v0.1.0؛ لم تُجرِ OWASP ولا أي جهة رسمية هذا الربط. وينبغي للبنوك وشركات التأمين أن تحتج أساسًا عبر DORA، لأن التزام المراقبة وفق المادة 26 الفقرة 5 من AI Act يُعدّ مستوفًى من خلال الحوكمة المالية. وبالنسبة للمؤسسات المالية ذات إطار إدارة مخاطر ICT المبسّط (المادة 16 من DORA) يسري الباب III من RTS بدلًا من المادة 12.

مدخل من خمس خطوات

  1. الجردحصر الوكلاء وتصنيفهم

    احصروا الوكلاء والنماذج والأدوات وخوادم MCP وSkills، وحدّدوا لكل استخدام التصنيف وفق AI Act. النتيجة: سجل للوكلاء مع فئة المخاطر والمسؤولين والوصول إلى البيانات.

  2. البنيةتحديد نقاط التحكم والملفات التعريفية

    تحققوا من الـ Hooks التي تطلقها منصتكم فعليًا، ومن تلك التي يؤكدها Guardian في Handshake ضمن methods_evaluated: كل ما عدا ذلك يُعدّ allow-by-default وغير محمي. اختاروا الملفات التعريفية وفق حاجة الإثبات، مثل acs-core إضافةً إلى acs-trace وacs-audit لالتزامات التسجيل.

  3. السياسةصياغة السياسات ككود

    تعمل الطبقة الحتمية أولًا (مرجع v0.1: ‏OPA/Rego). صيغوا قواعد للأوامر التدميرية وEgress والمدفوعات، واشترطوا للإجراءات ذات العواقب ask مع موافِق بشري وtimeout_disposition بقيمة deny، وأشيروا إلى إصدارات السياسات في policy_references.

  4. التشغيلتحديد وضعية الفشل واختبارها

    اضبطوا للوكلاء ذوي إمكانات الضرر العالية on_decision_failure على deny ووضعية بدء التشغيل على refuse. اختبروا تعطل Guardian وإعادة الإرسال وأخطاء التوقيع، وراقبوا حالات فشل القرار مباشرةً، لأن نجاح Ping لا يثبت سلامة التنفيذ.

  5. دليل الإثباتربط Trace وتوثيق أدلة الإثبات

    صدّروا OCSF أو OpenTelemetry إلى SIEM، وطبّقوا حالات الاستخدام من الفصل 9، وحدّدوا فترات الاحتفاظ. أمّنوا رأس السلسلة خارجيًا، وتحققوا من بيانات التوافق لدى المورّدين عبر اختبارات خاصة بكم.

تقدم الورقة البيضاء لمسؤولي أمن المعلومات «Agent Control für CISOs» تعمقًا يتضمن برنامج 100 يوم ونموذج أدوار ومؤشرات وأسئلة تقييم لمنصات الوكلاء، ويمكنكم طلبها أدناه في هذه الصفحة. ترافق VamiSec التقييم والبنية وتصميم السياسات والاختبارات بوصفها جهة استشارية مستقلة؛ وVamiSec ليست جزءًا من مشروع ACS.

التقييم الذاتي (Self-Assessment)

ACS Readiness Assessment: إلى أي مدى وصل التحكم في وقت التشغيل لوكلاء الذكاء الاصطناعي لديكم؟

18 سؤالًا في ستة أبعاد، نحو 10 دقائق. تحصلون على مستوى نضجكم، والجاهزية لكل لبنة من ACS، وأكبر ثغراتكم مع خطوة تالية محددة.

0 / 18 أسئلة تمت الإجابة عنها

المستويات الأربعة
غير موجود
لا توجد بشأنه لائحة ولا تطبيق تقني.
مخصّص (Ad hoc)
تعالجه فرق منفردة بشكل فردي، دون توجيه ودون دليل إثبات.
محدَّد
منظَّم بشكل ملزم ومطبَّق لأهم الوكلاء.
مفروض ومقاس
مفروض تقنيًا، لجميع الوكلاء المعنيين، ومُتحقَّق منه بالمؤشرات.
01 / 06المخزون وAgBOM

هل تعرفون أي وكلاء يعملون وبأي نماذج وأدوات وخوادم MCP وSkills — حتى عندما يتغير ذلك أثناء التشغيل؟

  1. 01ACS Inspect · الوكيل المراقَب (Observed Agent)

    هل تديرون سجلًا كاملًا لجميع وكلاء الذكاء الاصطناعي المستخدمين إنتاجيًا مع الجهة المسؤولة؟

    بما في ذلك وظائف الوكلاء في منتجات SaaS المشتراة والوكلاء المبنيين ذاتيًا في الإدارات المتخصصة.

  2. 02ACS Inspect · ‏AgBOM ‏(agbom/snapshot)

    هل تعرفون لكل وكيل النماذج والأدوات وخوادم MCP ومصادر المعرفة ومخازن الذاكرة وSkills المستخدمة؟

    تميز AgBOM بين ثمانية أنواع من المكونات: model وmcp_server وa2a_peer وtool وknowledge_source وmemory_store وagent_capability وskill.

  3. 03ACS Inspect · ‏acs-inspect-dynamic ‏(agbom/changed)

    هل تكتشفون التغييرات على المكونات أثناء التشغيل — مثل خادم MCP متصل حديثًا أو تغيير النموذج؟

    لا تكفي لقطة لمرة واحدة عندما يحمّل الوكلاء قدرات إضافية أثناء الجلسة.

ورقة بيضاء مجانية

Agent Control für CISOs — التحكم في وقت التشغيل مع OWASP Agent Control Standard

الدليل العملي لـ ACS v0.1.0: ما الذي ينظمه المعيار، وكيف تُدخلون Guardian والسياسات وTrace وAgBOM، وكيف يمكن ربط ذلك بـ AI Act وNIS2 وDORA — وما لا يقدمه v0.1 بعد اليوم.

غلاف الورقة البيضاء من VamiSec ‏Agent Control für CISOs
41 صفحةPDF، مجانًاالألمانيةالإصدار 10/2026
  • عشر رسائل أساسية وإحاطة لمجلس الإدارة في صفحة واحدة — مع خمسة قرارات للإدارة العليا
  • بنية مرجعية لـ Guardian وPolicy-as-Code تشمل مفهوم وضعية الفشل والتكامل مع SOC
  • ربط تنظيمي من AI Act حتى ISO/IEC 42001 مع أدلة الإثبات — وحدود مميزة بوضوح
  • برنامج 100 يوم، ونموذج نضج، و20 سؤالًا للمشتريات موجهة إلى منصات الوكلاء ومزوّدي Guardian
تنزيل مجاني

اطلبوا الورقة البيضاء

Agent Control für CISOs — معيار OWASP Agent Control Standard ‏(ACS) v0.1

الورقة البيضاء لمسؤولي أمن المعلومات: Agent Control für CISOs

الجزء I · الفهم

ملخص تنفيذي بعشر رسائل أساسية وإحاطة لمجلس الإدارة في صفحة واحدة، ومشكلة التحكم في الذكاء الاصطناعي الوكيلي مع حوادث موثقة، وACS في لمحة: الأدوار والركائز والملفات التعريفية والتاريخ والحوكمة.

الجزء II · التنفيذ

الـ Hooks وحالات التصرف مع أمثلة Wire، وبنية Guardian وPolicy-as-Code، ووضعية الفشل، وTrace إلى SOC، وAgBOM بوصفها مخزون وقت التشغيل، والهوية وProvenance ضد عواقب Prompt Injection.

الجزء III · الإدارة

OWASP Agentic Top 10 × ACS بوصفها خريطة حرارية، وربط تنظيمي مع AI Act وNIS2 وDORA وCRA وISO/IEC 42001 وNIST AI RMF مع أدلة الإثبات — وتقييم صريح لما يقدمه v0.1 وما لا يقدمه.

البرنامج والمشتريات

نموذج نضج مع نموذج تشغيلي، وبرنامج تطبيق لمدة 100 يوم مع مخرجات ومؤشرات أداء (KPIs)، و20 سؤالًا للمشتريات موجهة إلى منصات الوكلاء ومزوّدي Guardian، وإجابات عن الاعتراضات المعتادة في مجلس الإدارة.

جديد · ICSPIS 2026 ‏(IEEE)

الاختبار بدلًا من الثقة: أي أدلة تجعل ضوابط ACS قابلة للفحص

Guardian يقرر – لكن هل يثبت القياس عن بُعد لديكم أيضًا أن التنفيذ طابق القرار؟ تستنتج ورقتنا المقبولة في ICSPIS 2026 من MAESTRO وSTRIDE عقدًا للأدلة (Evidence Contract)؛ وتنقله الدراسة المعمّقة حقلًا بحقل إلى Hooks وProvenance وTrace في ACS – مع مصفوفة أعطال (Fault-Matrix) وACS-Crosswalk واختبارات سلبية لـ CI لديكم.

92,9 %الاستدعاء (Recall) مع روابط ذات صلة بالأمن (P3)
16,7 %الاستدعاء مع تتبع سببي صرف (P2)
50 %الاستدعاء دون أحداث القرار (F1)
  • ACS-Crosswalk: عائلة الهجوم → المسند → Hook → استجابة Guardian
  • الحد الأدنى لحقول إيصال القرار (Decision-Receipt) في policy_data
  • Research Edition (بالإنجليزية): الورقة إضافةً إلى ACS Practitioner Brief
المسرد

مسرد: مصطلحات Agent Control Standard

أهم مصطلحات ACS v0.1.0 في تعريفات قصيرة قابلة للاقتباس — وتبقى مصطلحات المواصفة الإنجليزية بأصلها.

الوكيل الحارس (Guardian Agent)نقطة إنفاذ السياسات (Policy Enforcement Point)
جهة السياسات الخارجية في ACS: تقيّم Hooks الخاصة بـ Observed Agent خارج النموذج وتستجيب بحالة تصرف (Disposition) — أولًا عبر كود سياسات حتمي، ومستكملة اختياريًا بطبقة LLM. ولا ينبغي مساواتها بمصطلح Gartner السوقي «guardian agents».
الوكيل المراقَب (Observed Agent)
نظام الذكاء الاصطناعي المراقَب الذي يطبّق عقد ACS-Wire، ويرسل Hooks عند كل نقطة قرار، وينفّذ حالات التصرف التي يتلقاها. فهو يبلّغ، لكنه لا يقرر بشأن إجراءاته الخاصة.
Hooksteps/*
نقطة في دورة حياة وكيل الذكاء الاصطناعي يتوقف عندها ويستشير الـ Guardian قبل أن يتصرف. يحدد ACS v0.1.0 عدد 19 خطافًا أصليًا من نوع steps/*؛ ويشترط ACS-Core ستة منها على الأقل.
DispositionVerdict
ردّ الـ Guardian على خطاف ما: allow أو deny أو modify أو ask أو defer. وفي جميع الحالات باستثناء allow يكون التعليل في الحقل reasoning إلزاميًا.
Failure Postureon_decision_failure
سلوك الـ Observed Agent عندما لا يصل قرار قابل للاستخدام في الوقت المناسب. الإعداد الافتراضي هو proceed (fail-open)؛ أما deny (fail-closed) فيجب تهيئته عن قصد، ويجب تدقيق كل تنفيذ يتم دون قرار.
Handshakehandshake/hello
إنشاء الجلسة الإلزامي عبر handshake/hello، حيث يتفاوض الـ Observed Agent والـ Guardian على الإصدار والطرق المُقيَّمة (methods_evaluated) والمهلة الزمنية ووضعية الإخفاق (Failure Posture). وتُعدّ الطرق غير المُقيَّمة مسموحًا بها دون فحص.
ACS-Coreacs-core
الملف الأساسي الإلزامي لكل تطبيق لـ ACS. ووفقًا للمواصفة يضمن أمرين: قناة موثَّقة، والتزام الـ Observed Agent بقرارات الـ Guardian — لكنه لا يضمن سياسات صارمة.
ملف المطابقةملف المطابقة (Conformance Profile)
نطاق قدرات يُعلَن في الـ Handshake: acs-core إضافة إلى الملفات الاختيارية acs-trace وacs-inspect وacs-inspect-dynamic وacs-provenance وacs-crypto وacs-audit. وفي v0.1.0 يُعدّ ذلك إعلانًا ذاتيًا محضًا دون مجموعة اختبارات أو جهة فحص.
AgBOMقائمة مكوّنات الوكيل (Agent Bill of Materials)
الجرد الديناميكي لمكوّنات الـ Observed Agent بثمانية أنواع من model حتى skill. يُبلَّغ عنه في كل جلسة، ويُكتب في الـ Audit-Chain، ويمكن أن يُطلق قرارات من الـ Guardian؛ وهو ليس AI-BOM ولا CRA-SBOM.
Provenance
بيانات منشأ دقيقة على مستوى الحقل للبيانات في حمولة الخطاف (Hook-Payload): origin وsource_id وderived_from. يضعها الإطار بشكل حتمي، ولا يضعها الـ LLM أبدًا؛ وهي إلزامية فقط في ملف acs-provenance.
سلسلة التدقيق (Audit-Chain)SessionContext
سلسلة ContextEntries الخاصة بالجلسة، وهي قابلة للإلحاق فقط (append-only) ومترابطة عبر تجزئات SHA-256. يجعل الـ chain_hash المنشور والموقَّع أي تعديلات لاحقة قابلة للكشف — أي أنها كاشفة للتلاعب، لكنها غير محمية من Guardian مُخترَق.
Policy-as-Code
قواعد أمنية في صورة شيفرة قابلة للتنفيذ ومُدارة الإصدارات بدلًا من وثيقة. وفي ACS تمثّل الطبقة الحتمية للـ Guardian التي تعمل دائمًا أولًا؛ والمرجع الأولي في v0.1 هو OPA/Rego، ويتبعه Cedar مع v0.2.
الإنسان في الحلقة (Human-in-the-Loop) / ASK-Approverask، الجهة المعتمِدة (Approver)
في حالة ask يعرض الـ Guardian إجراءً على جهة معتمِدة (Approver) للموافقة. وقد تكون الجهة المعتمِدة إنسانًا أو وكيلًا أو خدمة، ويجب التحقق من هويتها؛ ولا تتحقق الرقابة البشرية إلا عبر سياسة تتضمن approver.type human وtimeout_disposition deny.
DEFERdefer
الحكم الذي يؤجّل به الـ Guardian قرارًا ما، مثلًا بسبب نقص السياق أو انخفاض الثقة. وإذا انقضت المهلة، يسري deny افتراضيًا؛ ويجب تقييد التأجيلات المتتالية لكل جلسة.
MODIFYmodify
الحكم الذي يسمح به الـ Guardian بإجراء ما في صيغة معدّلة — عبر parameter_overrides أو الحجب (redactions) أو محتوى بديل كامل. ويجب على الـ Observed Agent معاملة أي modify مخالف للقواعد معاملة deny.
نية الجلسة (Session Intent)Intent.parsed
مجموعة الـ Capabilities المسموح بها لغرض معيّن والمحددة عند بدء الجلسة. لا يجوز تغييرها من قِبل الـ LLM ولا عبر مخرجات الأدوات، ولا تتوسع إلا عبر موافقة مُدقَّقة من خلال ask (intent_extension).
Capability
صلاحية مجردة مثل filesystem.delete أو network.egress أو process.execute. تصف أثر الإجراء بصرف النظر عن الأداة المحددة، وهي الوحدة التي تُصاغ بها نية الجلسة (Session Intent) والسياسات.
تغليف MCPprotocols/MCP/*
نطاق الأسماء المحدد في v0.1 الذي يمرّر فيه ACS رسائل MCP دون تعديل إلى الـ Guardian. ويجوز لعمليات النشر بدلًا من ذلك تمثيل استدعاءات أدوات MCP عبر خطافات الأدوات العامة؛ أما تغليف A2A فمقرر فقط لـ v0.2.
التطبيق المرجعي (AGT)التطبيق المرجعي (Reference Implementation)
إثبات المفهوم الوحيد في مستودع ACS: Guardian مكتوب بـ TypeScript يشغّل Agent Governance Toolkit من Microsoft دون تعديل خلف ACS-Wire، ومتصل بـ Claude Code وOpenCode — وهو ليس جاهزًا للإنتاج ولا متوافقًا بالكامل مع ACS-Core.
Agent Control Specification (من Microsoft)Microsoft ACS
مواصفة سياسات مستقلة قائمة على Rego من Microsoft لـ Agent Governance Toolkit (02.06.2026). يُرمز إليها أيضًا بـ «ACS»، لكنها ليست جزءًا من OWASP Agent Control Standard.
FAQ

أسئلة شائعة حول Agent Control Standard

إجابات موجزة لمسؤولي أمن المعلومات (CISO) ومعماريي الأمن وفرق GRC — حتى 04.10.2026، المواصفة v0.1.0.

إن OWASP Agent Control Standard (ACS) مواصفة مفتوحة على مستوى البروتوكول (Wire) للتحكم في وكلاء الذكاء الاصطناعي أثناء التشغيل. وهي تحدد كيف يُبلغ وكيلٌ ما — الـ Observed Agent — عن الخطوات ذات الصلة عبر خطاف إلى Guardian Agent منفصل وينتظر قراره: allow أو deny أو modify أو ask أو defer. وتتكامل ثلاث ركائز: Instrument للخطافات والأحكام، وTrace لأحداث التدقيق وفق OpenTelemetry وOCSF، وInspect لـ AgBOM. ويُعدّ ACS مشروعًا ضمن OWASP GenAI Security Project، وهو حاليًا بصيغة المواصفة v0.1.0، الإصدار 0.1.2 (موسوم في 21.09.2026). الشيفرة والمخططات مرخّصة بموجب Apache-2.0، والتوثيق بموجب CC BY-SA 4.0.

لا. ACS مشروع من OWASP في مرحلة مبكرة — وفقًا لبيانات المشروع الوصفية في المستوى 2 (Incubator)، ويصفه قائد المشروع نفسه بأنه «public preview». وهو ليس معيارًا من ISO أو IETF أو W3C، ولا معيارًا مُنسَّقًا. والمطابقة في v0.1.0 إعلان ذاتي لا يتحقق منه أحد (Issue #19). بل إن النطاق الإلزامي لـ ACS-Core لا يزال قيد النقاش في Pull Request مفتوح. كما أن خارطة الطريق مؤقتة: إذ ذُكر v0.2.0 هدفًا لشهر مارس 2027، ولا يوجد بعد تاريخ لـ v1.0. وينبغي أيضًا الشفافية بشأن المنشأ: فتأسيس المشروع وقيادته متأثران بقوة بـ Zenity.

موجّهات النظام ليست ضوابط: فهي تعمل في القناة نفسها التي يستطيع المهاجم التأثير فيها عبر حقن الموجّهات (Prompt Injection). أما أطر الـ Guardrails فهي تطبيقات محددة لكل منها واجهتها الخاصة. في المقابل يحدد ACS واجهة مفتوحة عابرة للأطر بين مضيف الوكيل والـ Guardian الخارجي: يُتخذ القرار خارج النموذج، وتعمل السياسات الحتمية أولًا، ويجب على الوكيل تنفيذ النتيجة. ولهذا أهمية لأن حقن الموجّهات وفقًا لـ OpenAI «unlikely to ever be fully 'solved'» (22.12.2025). لا يمنع ACS حقن الموجّهات — بل يوفّر نقطة التحكم الموحّدة التي تعمل عندها السياسات ضد عواقبه.

لا يحل ACS محل أي من البروتوكولين، بل يضيف فوقهما طبقة تحكم. فبالنسبة إلى MCP تحدد v0.1 نطاق الأسماء المحايد للإصدارات protocols/MCP/*: تُمرَّر الرسائل دون تعديل إلى الـ Guardian الذي يقيّمها قبل تمريرها أو معالجتها. ويجوز لعمليات النشر بدلًا من ذلك تمثيل استدعاءات أدوات MCP عبر steps/toolCallRequest وsteps/toolCallResult؛ أما ما إذا كان تغليف MCP جزءًا من ACS-Core فنص المواصفة متناقض بشأنه. كما أن نص المواصفة لا يزال يفترض آليات سابقة لمراجعة MCP الحالية 2026-07-28. وA2A في v0.1 محجوز فقط، ويتبعه التغليف مع v0.2. وحتى ذلك الحين يبقى steps/agentTrigger مع a2a_inbound ونوع AgBOM المسمى a2a_peer.

يمكن لـ ACS دعم إعداد أدلة الإثبات، لكنه لا يحقق الامتثال لـ AI Act ولا يُنشئ قرينة مطابقة. فبالنسبة إلى التزام التسجيل وفق المادة 12 يوفّر acs-trace (أحداث لكل خطوة) وacs-audit (سلسلة تدقيق كاشفة للتلاعب ومرتبطة بمحتويات الطلبات) لبنات أساسية. وبالنسبة إلى الرقابة البشرية وفق المادة 14 لا يصلح ask إلا مع سياسة «جهة معتمِدة بشرية، المهلة deny»؛ ولا تعرف v0.1 زر إيقاف، بل deny على مستوى كل خطوة فقط. انتبهوا إلى المواعيد النهائية: تسري التزامات الأنظمة عالية المخاطر وفق اللائحة (EU) 2026/1744 اعتبارًا من 02.12.2027 (الملحق III) أو 02.08.2028 (الملحق I)، والمادة 50 سارية منذ 02.08.2026. ولا تُعدّ وكلاء الذكاء الاصطناعي عالية المخاطر بحد ذاتها. وهذا التصنيف استنتاج من VamiSec.

افتراضيًا يواصل الوكيل العمل. فإذا لم يصل قرار قابل للاستخدام خلال المهلة المتفاوض عليها، يسري on_decision_failure بالقيمة الافتراضية proceed (fail-open)؛ كما أن فشل الـ Handshake يبدأ الجلسة افتراضيًا دون حماية. ويجب تسجيل كل تنفيذ من هذا النوع بوصفه حدث تدقيق — وتقرّ المواصفة صراحةً بأن المهاجم الذي يعطّل القناة يحوّل التحكم بذلك إلى مجرد تسجيل. ويمكنكم تحقيق fail-closed عبر on_decision_failure: deny ووضعية بدء التشغيل refuse. في المقابل تؤول قرارات ask وdefer المنتهية افتراضيًا إلى deny. وبما أن الوضعية تسري لكل جلسة، نوصي باستخدام Guardians أو جلسات منفصلة لكل فئة مخاطر (تقييم VamiSec).

لا تحدد المواصفة قيمة بالمللي ثانية. فالمهلة يُتفاوض عليها في الـ Handshake (timeout_config.default_ms، واختياريًا لكل طريقة)؛ وكل مللي ثانية منها تمثّل في أسوأ الحالات وقت انتظار إضافيًا للوكيل. ويضبط التطبيق المرجعي 5000 ms. وتوفّر زمن الاستجابة السياساتُ الحتمية التي ينبغي ألا تتضمن وفق المواصفة استدعاءات HTTP خارجية؛ أما طبقة الـ LLM الاختيارية فتكلّف في تقديرنا أكثر بشكل ملحوظ، ويستغرق التوقيع باستخدام SLH-DSA-128s وفق المواصفة عدة مئات من المللي ثانية. ومن الناحية التشغيلية نوصي بتشغيل الـ Guardian قريبًا من الوكيل وبصورة مكررة، وتخصيص ميزانية للمهل لكل طريقة، ومراقبة معدل إخفاق القرارات (Decision-Failure-Rate) بوصفه مؤشرًا — فنجاح system/ping لا يثبت أن الإنفاذ يعمل.

يوجد تطبيق مرجعي واحد فقط، وهو صراحةً إثبات مفهوم: Guardian مكتوب بـ TypeScript يشغّل Agent Governance Toolkit من Microsoft دون تعديل خلف ACS-Wire، مع ربط بالمضيفين Claude Code وOpenCode. وهو يقيّم خطافين من أصل 19 بشكل حي (steps/toolCallRequest وsteps/toolCallResult)، ولا يوقّع شيئًا (Issue #70)، ولا يملك حماية من إعادة التشغيل (Replay)، ويعمل افتراضيًا بوضع fail-open (Issues #32 و#37). ويهدف المشروع إلى معيار قياس للتشغيل البيني حتى مطلع ديسمبر 2026، لكنه لم يتوفر بعد. ولا يُستنتج من ذلك دعم من Microsoft. ولا نعلم بوجود استخدامات إنتاجية موثوقة (حتى 04.10.2026).

لا — إنه فخ تسمية. فقد نشرت Microsoft في 02.06.2026 «Agent Control Specification» خاصة بها، يُرمز إليها أيضًا بـ ACS: مواصفة سياسات قائمة على Rego لـ Agent Governance Toolkit تتضمن ثماني نقاط اعتراض وقرارات مثل allow وwarn وdeny وescalate. وهي صادرة عن Microsoft وليس عن OWASP GenAI Security Project، ولا تذكر معيار OWASP. والصلة غير مباشرة: إذ يستخدم التطبيق المرجعي لـ ACS هذه الأداة محركًا للسياسات؛ وحزمة npm المستخدمة هناك agent-control-specification هي SDK من Microsoft، وليست من مخرجات معيار OWASP. وفي هذه الصفحة يعني ACS دائمًا OWASP Agent Control Standard.

تعاملوا مع ACS بوصفه بنية مرجعية، لا ميزة منتج. في البداية يأتي جرد للوكلاء يشمل الأدوات والنماذج وخوادم MCP والمهارات، وتصنيف للمخاطر، مثلًا وفق lethal trifecta. ويلي ذلك وضع سياسات للـ Capabilities ذات العواقب الكبيرة عند steps/toolCallRequest، واتخاذ قرار واعٍ بشأن وضعية الإخفاق والجهات المعتمِدة، وربط الـ Trace بنظام SIEM لديكم؛ ويصف الفصل 14 الخطوات الخمس بالتفصيل. ويُظهر Profil-Navigator والتقييم الذاتي نقطة انطلاقكم، وتتضمن الورقة البيضاء برنامجًا لمدة 100 يوم. أما ادعاءات المورّدين بشأن ملفات ACS فتحققوا منها بالاختبار بدلًا من تبنّيها. وتُبيّن دراستنا المعمّقة «Agentic AI Security Testing» حول ورقة ICSPIS-2026 كيف تثبتون فعالية سياسات الـ Guardian لديكم باختبارات سلبية وإيصالات قرارات (Decision Receipts) في الـ CI. وتقدّم VamiSec دعمًا مستقلًا في التقييم والبنية وتصميم السياسات والتطبيق والاختبارات.

المعايير والمصادر

يستند محتوى هذه الصفحة إلى الأدلة والدراسات التالية المتاحة للعموم.

OWASP GenAI Security Project · 2026

Agent Control Standard (ACS) — مستودع GitHub

مصدر أولي: المواصفة v0.1.0، الإصدار 0.1.2، و44 مخطط JSON، والتطبيق المرجعي (PoC)؛ الشيفرة والمخططات Apache-2.0، والتوثيق CC BY-SA 4.0 — جرى التقييم حتى 03.10.2026

OWASP GenAI Security Project · 2026

مواصفة ACS Instrument v0.1.0

توثيق المواصفة المنشور: صيغة الـ Wire، والـ Handshake، وتصنيف الخطافات بـ 19 خطافًا، والأحكام، ووضعية الإخفاق، والتواقيع، ورموز الأخطاء

OWASP GenAI Security Project · 2026

ACS Conformance — ACS-Core والملفات

النطاق الإلزامي لـ ACS-Core، والملفات الاختيارية الستة، والإشارة إلى أن أحدًا لا يتحقق من ادعاءات المطابقة في v0.1.0

OWASP GenAI Security Project · 2026

مخططات ACS JSON v0.1.0 (مثال: defer-details.json)

نطاق أسماء المخططات الخاص بالمشروع منذ 05.09.2026؛ وهو أساس أمثلة الـ Wire المطابقة للمخططات في المحاكي

OWASP GenAI Security Project · 2026

Agent Control Standard (ACS) — صفحة الموارد

إدراج في قسم Agentic Security، بتاريخ 01.09.2026

Zenity Labs (Rock Lambros) · 2026

Control Made It Into the Name: The Agent Control Standard Lands at OWASP

تدوينة قائد المشروع بتاريخ 10.09.2026 حول المنشأ وإعادة الإطلاق؛ يصف ACS بأنه «public preview» — مصدر من جهة مصنِّعة

مختبرات Cloud Security Alliance · 2026

CSA Research Note: OWASP's 2026 LLM Top 10 and New Agent Control Standard

تقييم خارجي بتاريخ 04.09.2026: ACS بوصفه «architecture to plan around and pilot against»

OWASP GenAI Security Project — مبادرة Agentic Security Initiative · 2025

قائمة OWASP Top 10 for Agentic Applications 2026

المخاطر ASI01–ASI10، نُشرت في ديسمبر 2025؛ الإطار المرجعي لمصفوفة المخاطر (لا يرد فيها ACS)

OWASP GenAI Security Project — مبادرة Agentic Security Initiative · 2025

Agentic AI – Threats and Mitigations (موارد Agentic Security Initiative)

تصنيف التهديدات T1–T15 في الإصدار 1.0 من فبراير 2025؛ متاح عبر نظرة الموارد العامة للمبادرة

الاتحاد الأوروبي، الجريدة الرسمية · 2024

اللائحة (EU) 2024/1689 (لائحة الذكاء الاصطناعي / AI Act)

المواد 9 و12 و14 و15 و19 و26 و50 و72 بوصفها نقاطًا مرجعية لمطابقة المتطلبات التنظيمية

الاتحاد الأوروبي، الجريدة الرسمية · 2026

اللائحة (EU) 2026/1744 (Digital Omnibus on AI)

تؤجّل التزامات الأنظمة عالية المخاطر إلى 02.12.2027 (الملحق III) أو 02.08.2028 (الملحق I)

المعهد الوطني للمعايير والتقنية (NIST) · 2023

NIST AI ⁦100-1⁩: إطار إدارة مخاطر الذكاء الاصطناعي (AI RMF 1.0)

إطار طوعي؛ MANAGE 2.4 بشأن آليات استبدال أنظمة الذكاء الاصطناعي أو فصلها أو تعطيلها

OpenTelemetry · تم الاطلاع 10/2026

OpenTelemetry Semantic Conventions للذكاء الاصطناعي التوليدي

الحالة «Development»؛ أساس المقارنة لمطابقات الـ Trace في ACS (امتدادات الأدوات هناك: execute_tool)

إطار Open Cybersecurity Schema Framework (Linux Foundation) · تم الاطلاع 10/2026

OCSF Schema 1.5.0 — الفئات والأصناف

مطابقة معرّفات UID وأسماء الأصناف التي يستخدمها ACS، ومنها 2004 Detection Finding و6002 Application Lifecycle

مؤسسة OWASP / Ecma TC54 · 2025

نظرة عامة على مواصفة CycloneDX

الإصدار الحالي 1.7؛ ويسلسل ACS الـ AgBOM وفق CycloneDX 1.6

Microsoft (Responsible AI) · 2026

Introducing Agent Control Specification: Portable runtime governance for AI Agents

للتمييز: مواصفة مستقلة من Microsoft بتاريخ 02.06.2026، يُرمز إليها أيضًا بـ «ACS»، وليست جزءًا من معيار OWASP

مدونة Microsoft للمصادر المفتوحة · 2026

Introducing the Agent Governance Toolkit (مدونة Microsoft Open Source)

إعلان بتاريخ 02.04.2026؛ تُستخدم الأداة دون تعديل محركًا للسياسات في التطبيق المرجعي لـ ACS

OpenAI · 2025

Continuously hardening ChatGPT Atlas against prompt injection attacks

22.12.2025: حقن الموجّهات «unlikely to ever be fully 'solved'» — حجة لصالح ضوابط تشغيل مستقلة عن النموذج

هل تريدون بناء تحكم أثناء التشغيل لوكلاء الذكاء الاصطناعي لديكم؟

ترافقكم VamiSec باستقلالية: تقييم بيئة الوكلاء لديكم، وبنية الـ Guardian وتصميم السياسات وفق ACS، والتطبيق والاختبارات — دون وعود بالحصول على شهادة ومع نظرة واضحة إلى مستوى نضج v0.1.