---
read_when:
    - تكوين موافقات التنفيذ أو قوائم السماح
    - تنفيذ تجربة مستخدم الموافقة على exec في تطبيق macOS
    - مراجعة مطالبات الهروب من البيئة المعزولة وتداعياتها
sidebarTitle: Exec approvals
summary: 'موافقات تنفيذ المضيف: خيارات ضبط السياسة، وقوائم السماح، وسير عمل YOLO/الصارم'
title: موافقات التنفيذ
x-i18n:
    generated_at: "2026-05-11T20:42:16Z"
    model: gpt-5.5
    provider: openai
    source_hash: 2966a6f4633046941a9ef3267bad10f3a153956361b9f088fb3e29fcd3fcb99d
    source_path: tools/exec-approvals.md
    workflow: 16
---

موافقات التنفيذ هي **حاجز أمان التطبيق المرافق / مضيف Node** للسماح
لوكيل داخل صندوق حماية بتشغيل أوامر على مضيف حقيقي (`gateway` أو `node`). وهي
قفل أمان: لا يُسمح بالأوامر إلا عندما تتوافق السياسة + قائمة السماح +
موافقة المستخدم (اختياريًا) جميعًا. تُطبَّق موافقات التنفيذ **فوق**
سياسة الأدوات وبوابة الرفع (إلا إذا ضُبط الرفع على `full`، إذ
يتجاوز الموافقات).

<Note>
السياسة الفعالة هي **الأكثر صرامة** بين إعدادات `tools.exec.*` وقيم الموافقات
الافتراضية؛ إذا حُذف حقل موافقات، تُستخدم قيمة `tools.exec`. يستخدم تنفيذ المضيف أيضًا حالة الموافقات المحلية على ذلك الجهاز - فوجود
إعداد محلي للمضيف `ask: "always"` في `~/.openclaw/exec-approvals.json` يستمر
في طلب التأكيد حتى إذا طلبت الجلسة أو الإعدادات الافتراضية `ask: "on-miss"`.
</Note>

## فحص السياسة الفعالة

| الأمر                                                          | ما يعرضه                                                                          |
| ---------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| `openclaw approvals get` / `--gateway` / `--node <id\|name\|ip>` | السياسة المطلوبة، ومصادر سياسة المضيف، والنتيجة الفعالة.                       |
| `openclaw exec-policy show`                                      | العرض المدمج للجهاز المحلي.                                                             |
| `openclaw exec-policy set` / `preset`                            | مزامنة السياسة المحلية المطلوبة مع ملف موافقات المضيف المحلي في خطوة واحدة. |

عندما يطلب نطاق محلي `host=node`، يبلّغ `exec-policy show` عن ذلك
النطاق بوصفه مُدارًا بواسطة Node وقت التشغيل بدلًا من الادعاء بأن ملف
الموافقات المحلي هو مصدر الحقيقة.

إذا كانت واجهة مستخدم التطبيق المرافق **غير متاحة**، فإن أي طلب كان
سيطلب تأكيدًا عادةً يُحسم بواسطة **احتياطي السؤال** (الافتراضي: `deny`).

<Tip>
يمكن لعملاء موافقات الدردشة الأصليين تهيئة تسهيلات خاصة بالقناة على
رسالة الموافقة المعلقة. على سبيل المثال، تهيئ Matrix اختصارات التفاعل
(`✅` السماح مرة واحدة، `❌` الرفض، `♾️` السماح دائمًا) مع إبقاء
أوامر `/approve ...` في الرسالة كاحتياطي.
</Tip>

## أين ينطبق ذلك

تُفرض موافقات التنفيذ محليًا على مضيف التنفيذ:

- **مضيف Gateway** → عملية `openclaw` على جهاز Gateway.
- **مضيف Node** → مشغّل Node (تطبيق macOS المرافق أو مضيف Node بلا واجهة).

### نموذج الثقة

- يُعد المتصلون المصادق عليهم عبر Gateway مشغلين موثوقين لذلك Gateway.
- توسّع العقد المقترنة قدرة المشغل الموثوق هذه إلى مضيف Node.
- تقلل موافقات التنفيذ خطر التنفيذ العرضي، لكنها **ليست** حدًا للمصادقة لكل مستخدم أو سياسة قراءة فقط لنظام الملفات.
- بعد الموافقة، يمكن للأمر تعديل الملفات وفق أذونات نظام الملفات للمضيف أو صندوق الحماية المحدد.
- تربط عمليات مضيف Node الموافق عليها سياق التنفيذ القياسي: دليل العمل القياسي، ووسيطات argv الدقيقة، وربط البيئة عند وجوده، ومسار الملف التنفيذي المثبّت عند انطباق ذلك.
- بالنسبة إلى سكربتات الصدفة واستدعاءات ملفات المفسر/وقت التشغيل المباشرة، يحاول OpenClaw أيضًا ربط معامل ملف محلي ملموس واحد. إذا تغيّر ذلك الملف المربوط بعد الموافقة وقبل التنفيذ، تُرفض العملية بدلًا من تنفيذ محتوى تغيّر.
- ربط الملفات مقصود أن يكون بأفضل جهد، **وليس** نموذجًا دلاليًا كاملًا لكل مسار تحميل لمفسر/وقت تشغيل. إذا لم يستطع وضع الموافقة تحديد ملف محلي ملموس واحد بالضبط لربطه، فإنه يرفض إنشاء تشغيل مدعوم بالموافقة بدلًا من الادعاء بتغطية كاملة.

### فصل macOS

- تمرر **خدمة مضيف Node** `system.run` إلى **تطبيق macOS** عبر IPC محلي.
- يفرض **تطبيق macOS** الموافقات وينفذ الأمر في سياق واجهة المستخدم.

## الإعدادات والتخزين

توجد الموافقات في ملف JSON محلي على مضيف التنفيذ:

```text
~/.openclaw/exec-approvals.json
```

مثال على المخطط:

```json
{
  "version": 1,
  "socket": {
    "path": "~/.openclaw/exec-approvals.sock",
    "token": "base64url-token"
  },
  "defaults": {
    "security": "deny",
    "ask": "on-miss",
    "askFallback": "deny",
    "autoAllowSkills": false
  },
  "agents": {
    "main": {
      "security": "allowlist",
      "ask": "on-miss",
      "askFallback": "deny",
      "autoAllowSkills": true,
      "allowlist": [
        {
          "id": "B0C8C0B3-2C2D-4F8A-9A3C-5A4B3C2D1E0F",
          "pattern": "~/Projects/**/bin/rg",
          "source": "allow-always",
          "commandText": "rg -n TODO",
          "lastUsedAt": 1737150000000,
          "lastUsedCommand": "rg -n TODO",
          "lastResolvedPath": "/Users/user/Projects/.../bin/rg"
        }
      ]
    }
  }
}
```

## عناصر ضبط السياسة

### `exec.security`

<ParamField path="security" type='"deny" | "allowlist" | "full"'>
  - `deny` - حظر كل طلبات تنفيذ المضيف.
  - `allowlist` - السماح بالأوامر الموجودة في قائمة السماح فقط.
  - `full` - السماح بكل شيء (مكافئ للرفع).

</ParamField>

### `exec.ask`

<ParamField path="ask" type='"off" | "on-miss" | "always"'>
  - `off` - عدم طلب التأكيد أبدًا.
  - `on-miss` - طلب التأكيد فقط عندما لا تطابق قائمة السماح.
  - `always` - طلب التأكيد على كل أمر. الثقة الدائمة `allow-always` **لا** تلغي طلبات التأكيد عندما يكون وضع السؤال الفعال `always`.

</ParamField>

### `askFallback`

<ParamField path="askFallback" type='"deny" | "allowlist" | "full"'>
  الحسم عندما يكون طلب التأكيد مطلوبًا ولكن لا يمكن الوصول إلى واجهة مستخدم.

- `deny` - الحظر.
- `allowlist` - السماح فقط إذا طابقت قائمة السماح.
- `full` - السماح.

</ParamField>

### `tools.exec.strictInlineEval`

<ParamField path="strictInlineEval" type="boolean">
  عندما تكون `true`، يعامل OpenClaw صيغ تقييم الكود المضمن على أنها تتطلب موافقة فقط
  حتى إذا كان ملف المفسر الثنائي نفسه في قائمة السماح. هذا دفاع متعدد الطبقات
  لمحمّلات المفسرات التي لا تُطابق بوضوح معامل ملف واحدًا مستقرًا.
</ParamField>

أمثلة يلتقطها الوضع الصارم:

- `python -c`
- `node -e`, `node --eval`, `node -p`
- `ruby -e`
- `perl -e`, `perl -E`
- `php -r`
- `lua -e`
- `osascript -e`

في الوضع الصارم، تظل هذه الأوامر بحاجة إلى موافقة صريحة، ولا
يحفظ `allow-always` إدخالات قائمة سماح جديدة لها
تلقائيًا.

### `tools.exec.commandHighlighting`

<ParamField path="commandHighlighting" type="boolean" default="false">
  يتحكم في العرض فقط داخل مطالبات موافقة التنفيذ. عند تمكينه،
  قد يرفق OpenClaw نطاقات أوامر مشتقة من المحلل بحيث تستطيع مطالبات
  الموافقة عبر الويب تمييز رموز الأمر. اضبطه على `true` لتمكين
  تمييز نص الأمر.
</ParamField>

لا يغير هذا الإعداد `security` أو `ask` أو مطابقة قائمة السماح
أو سلوك التقييم المضمن الصارم أو تمرير الموافقات أو تنفيذ الأوامر.
يمكن ضبطه عموميًا ضمن `tools.exec.commandHighlighting` أو لكل
وكيل ضمن `agents.list[].tools.exec.commandHighlighting`.

## وضع YOLO (بلا موافقة)

إذا أردت أن يعمل تنفيذ المضيف دون مطالبات موافقة، فيجب أن تفتح
**كلتا** طبقتي السياسة - سياسة التنفيذ المطلوبة في إعدادات OpenClaw
(`tools.exec.*`) **و** سياسة الموافقات المحلية للمضيف في
`~/.openclaw/exec-approvals.json`.

YOLO هو سلوك المضيف الافتراضي ما لم تشدده صراحةً:

| الطبقة                 | إعداد YOLO               |
| --------------------- | -------------------------- |
| `tools.exec.security` | `full` على `gateway`/`node` |
| `tools.exec.ask`      | `off`                      |
| `askFallback` للمضيف    | `full`                     |

<Warning>
**فروق مهمة:**

- `tools.exec.host=auto` يختار **أين** يعمل التنفيذ: صندوق الحماية عند توفره، وإلا Gateway.
- يختار YOLO **كيف** تتم الموافقة على تنفيذ المضيف: `security=full` بالإضافة إلى `ask=off`.
- في وضع YOLO، لا يضيف OpenClaw بوابة موافقة منفصلة لاكتشاف تمويه الأوامر بالاستدلال أو طبقة رفض تمهيدية للسكربتات فوق سياسة تنفيذ المضيف المضبوطة.
- لا يجعل `auto` توجيه Gateway تجاوزًا مجانيًا من جلسة داخل صندوق حماية. يُسمح بطلب `host=node` لكل استدعاء من `auto`؛ ولا يُسمح بـ `host=gateway` من `auto` إلا عندما لا يكون وقت تشغيل صندوق الحماية نشطًا. للحصول على افتراضي ثابت غير تلقائي، اضبط `tools.exec.host` أو استخدم `/exec host=...` صراحةً.

</Warning>

يمكن للمزودين المدعومين بواجهة CLI الذين يعرّضون وضع أذونات غير تفاعلي خاصًا بهم
اتباع هذه السياسة. تضيف Claude CLI
`--permission-mode bypassPermissions` عندما تكون سياسة التنفيذ المطلوبة من OpenClaw
هي YOLO. تجاوز سلوك الخلفية هذا باستخدام وسائط Claude صريحة
ضمن `agents.defaults.cliBackends.claude-cli.args` / `resumeArgs` -
مثل `--permission-mode default` أو `acceptEdits` أو
`bypassPermissions`.

إذا أردت إعدادًا أكثر تحفظًا، فشدّد أيًا من الطبقتين مجددًا إلى
`allowlist` / `on-miss` أو `deny`.

### إعداد "عدم طلب التأكيد مطلقًا" دائم لمضيف Gateway

<Steps>
  <Step title="اضبط سياسة الإعدادات المطلوبة">
    ```bash
    openclaw config set tools.exec.host gateway
    openclaw config set tools.exec.security full
    openclaw config set tools.exec.ask off
    openclaw gateway restart
    ```
  </Step>
  <Step title="طابق ملف موافقات المضيف">
    ```bash
    openclaw approvals set --stdin <<'EOF'
    {
      version: 1,
      defaults: {
        security: "full",
        ask: "off",
        askFallback: "full"
      }
    }
    EOF
    ```
  </Step>
</Steps>

### اختصار محلي

```bash
openclaw exec-policy preset yolo
```

يحدث ذلك الاختصار المحلي كليهما:

- `tools.exec.host/security/ask` المحلي.
- الإعدادات الافتراضية المحلية في `~/.openclaw/exec-approvals.json`.

إنه محلي فقط عن قصد. لتغيير موافقات مضيف Gateway أو مضيف Node
عن بُعد، استخدم `openclaw approvals set --gateway` أو
`openclaw approvals set --node <id|name|ip>`.

### مضيف Node

بالنسبة إلى مضيف Node، طبّق ملف الموافقات نفسه على تلك العقدة بدلًا من ذلك:

```bash
openclaw approvals set --node <id|name|ip> --stdin <<'EOF'
{
  version: 1,
  defaults: {
    security: "full",
    ask: "off",
    askFallback: "full"
  }
}
EOF
```

<Note>
**قيود محلية فقط:**

- لا يزامن `openclaw exec-policy` موافقات Node.
- يُرفض `openclaw exec-policy set --host node`.
- تُجلب موافقات تنفيذ Node من العقدة وقت التشغيل، لذلك يجب أن تستخدم التحديثات الموجهة إلى Node الأمر `openclaw approvals --node ...`.

</Note>

### اختصار خاص بالجلسة فقط

- يغير `/exec security=full ask=off` الجلسة الحالية فقط.
- `/elevated full` هو اختصار لكسر الحاجز يتجاوز أيضًا موافقات التنفيذ لتلك الجلسة.

إذا ظل ملف موافقات المضيف أكثر صرامة من الإعدادات، فستظل سياسة المضيف
الأكثر صرامة هي الغالبة.

## قائمة السماح (لكل وكيل)

قوائم السماح **لكل وكيل**. إذا وُجد عدة وكلاء، فبدّل الوكيل
الذي تعدّله في تطبيق macOS. الأنماط هي مطابقات glob.

يمكن أن تكون الأنماط مسارات ملفات ثنائية محلولة بصيغة glob أو أسماء أوامر مجردة بصيغة glob.
الأسماء المجردة لا تطابق إلا الأوامر المستدعاة عبر `PATH`، لذلك يمكن أن يطابق `rg`
المسار `/opt/homebrew/bin/rg` عندما يكون الأمر `rg`، لكنه **لا** يطابق `./rg` أو
`/tmp/rg`. استخدم نمط مسار glob عندما تريد الوثوق بموقع ملف ثنائي محدد
واحد.

تُرحّل إدخالات `agents.default` القديمة إلى `agents.main` عند التحميل.
ما زالت سلاسل الصدفة مثل `echo ok && pwd` تحتاج إلى أن يستوفي كل مقطع من المستوى الأعلى
قواعد قائمة السماح.

أمثلة:

- `rg`
- `~/Projects/**/bin/peekaboo`
- `~/.local/bin/*`
- `/opt/homebrew/bin/rg`

### تقييد الوسيطات باستخدام argPattern

أضف `argPattern` عندما يجب أن يطابق إدخال قائمة السماح ملفًا ثنائيًا وشكل
وسيطات محددًا. يقيّم OpenClaw التعبير النمطي
على وسيطات الأمر المحللة، مع استبعاد رمز الملف التنفيذي
(`argv[0]`). بالنسبة إلى الإدخالات المكتوبة يدويًا، تُدمج الوسيطات
بمسافة واحدة، لذلك ثبّت النمط عندما تحتاج إلى مطابقة دقيقة.

```json
{
  "version": 1,
  "agents": {
    "main": {
      "allowlist": [
        {
          "pattern": "python3",
          "argPattern": "^safe\\.py$"
        }
      ]
    }
  }
}
```

يسمح ذلك الإدخال بـ `python3 safe.py`؛ أما `python3 other.py` فهو عدم مطابقة
لقائمة السماح. إذا كان إدخال مسار فقط للملف الثنائي نفسه موجودًا أيضًا، فقد
تظل الوسيطات غير المطابقة تعود إلى ذلك الإدخال ذي المسار فقط. احذف إدخال المسار فقط
عندما يكون الهدف هو تقييد الملف الثنائي بالوسيطات المعلنة.

تستخدم الإدخالات المحفوظة بواسطة تدفقات الموافقة تنسيق فاصل داخليًا
لمطابقة argv بدقة. فضّل استخدام واجهة المستخدم أو تدفق الموافقة لإعادة توليد تلك
الإدخالات بدلًا من تحرير القيمة المرمّزة يدويًا. إذا تعذر على OpenClaw
تحليل argv لمقطع أمر، فلن تتطابق الإدخالات التي تحتوي على `argPattern`.

يدعم كل إدخال في قائمة السماح ما يلي:

| الحقل              | المعنى                                                       |
| ------------------ | ------------------------------------------------------------- |
| `pattern`          | نمط glob لمسار الملف التنفيذي المحلول أو نمط glob لاسم أمر مجرد           |
| `argPattern`       | تعبير argv نمطي اختياري؛ الإدخالات التي حُذف منها تكون للمسار فقط            |
| `id`               | UUID ثابت يُستخدم لهوية واجهة المستخدم                              |
| `source`           | مصدر الإدخال، مثل `allow-always`                          |
| `commandText`      | نص الأمر الذي تم التقاطه عندما أنشأ تدفق موافقة الإدخال |
| `lastUsedAt`       | الطابع الزمني لآخر استخدام                                           |
| `lastUsedCommand`  | آخر أمر تطابق                                     |
| `lastResolvedPath` | آخر مسار ملف تنفيذي محلول                                     |

## السماح التلقائي لواجهات CLI الخاصة بـ Skills

عند تفعيل **السماح التلقائي لواجهات CLI الخاصة بـ Skills**، تُعامل الملفات التنفيذية المشار إليها بواسطة
Skills المعروفة على أنها مدرجة في قائمة السماح على العقد (عقدة macOS أو مضيف
عقدة بلا واجهة). يستخدم هذا `skills.bins` عبر Gateway RPC لجلب
قائمة ملفات bin الخاصة بالمهارة. عطّل هذا إذا كنت تريد قوائم سماح يدوية صارمة.

<Warning>
- هذه **قائمة سماح ضمنية للتيسير**، منفصلة عن إدخالات قائمة السماح اليدوية للمسارات.
- وهي مخصصة لبيئات المشغّلين الموثوقة التي يكون فيها Gateway والعقدة ضمن حد الثقة نفسه.
- إذا كنت تتطلب ثقة صريحة صارمة، فأبقِ `autoAllowSkills: false` واستخدم إدخالات قائمة السماح اليدوية للمسارات فقط.

</Warning>

## ملفات bin الآمنة وتمرير الموافقات

لملفات bin الآمنة (المسار السريع الخاص بـ stdin فقط)، وتفاصيل ربط المفسّر، و
كيفية تمرير مطالبات الموافقة إلى Slack/Discord/Telegram (أو تشغيلها كعملاء
موافقة أصليين)، راجع
[موافقات التنفيذ - متقدم](/ar/tools/exec-approvals-advanced).

## تحرير واجهة التحكم

استخدم بطاقة **واجهة التحكم → العقد → موافقات التنفيذ** لتحرير الإعدادات الافتراضية،
والتجاوزات لكل وكيل، وقوائم السماح. اختر نطاقًا (الإعدادات الافتراضية أو وكيلًا)،
وعدّل السياسة، وأضف/أزل أنماط قائمة السماح، ثم اضغط **حفظ**. تعرض واجهة المستخدم
بيانات تعريف آخر استخدام لكل نمط حتى تتمكن من إبقاء القائمة مرتبة.

يختار محدد الهدف **Gateway** (موافقات محلية) أو **Node**.
يجب أن تعلن العقد عن `system.execApprovals.get/set` (تطبيق macOS أو
مضيف عقدة بلا واجهة). إذا لم تكن عقدة ما تعلن موافقات التنفيذ بعد،
فحرّر ملفها المحلي `~/.openclaw/exec-approvals.json` مباشرةً.

CLI: يدعم `openclaw approvals` تحرير Gateway أو العقدة - راجع
[CLI الموافقات](/ar/cli/approvals).

## تدفق الموافقة

عندما تكون المطالبة مطلوبة، يبث Gateway
`exec.approval.requested` إلى عملاء المشغّل. تحلها واجهة التحكم وتطبيق macOS
عبر `exec.approval.resolve`، ثم يمرر Gateway الطلب
الموافق عليه إلى مضيف العقدة.

بالنسبة إلى `host=node`، تتضمن طلبات الموافقة حمولة `systemRunPlan`
معيارية. يستخدم Gateway تلك الخطة باعتبارها سياق
الأمر/cwd/الجلسة المعتمد عند تمرير طلبات `system.run`
الموافق عليها.

وهذا مهم لزمن انتقال الموافقات غير المتزامنة:

- يجهّز مسار تنفيذ العقدة خطة معيارية واحدة مقدمًا.
- يخزن سجل الموافقة تلك الخطة وبيانات تعريف ربطها.
- بعد الموافقة، تعيد استدعاءة `system.run` النهائية المُمرّرة استخدام الخطة المخزنة بدلًا من الوثوق بتعديلات لاحقة من المستدعي.
- إذا غيّر المستدعي `command` أو `rawCommand` أو `cwd` أو `agentId` أو `sessionKey` بعد إنشاء طلب الموافقة، يرفض Gateway التشغيل المُمرّر باعتباره عدم تطابق في الموافقة.

## أحداث النظام

تظهر دورة حياة التنفيذ كرسائل نظام:

- `Exec running` (فقط إذا تجاوز الأمر حد إشعار التشغيل).
- `Exec finished`.
- `Exec denied`.

تُنشر هذه إلى جلسة الوكيل بعد أن تبلغ العقدة عن الحدث.
تصدر موافقات التنفيذ المستضافة على Gateway أحداث دورة الحياة نفسها عند
انتهاء الأمر (واختياريًا عند استمرار التشغيل لفترة أطول من الحد).
تعيد عمليات التنفيذ المحكومة بالموافقة استخدام معرف الموافقة باعتباره `runId` في هذه
الرسائل لتسهيل الربط.

## سلوك الموافقة المرفوضة

عند رفض موافقة تنفيذ غير متزامنة، يمنع OpenClaw الوكيل من
إعادة استخدام خرج أي تشغيل سابق للأمر نفسه في الجلسة.
يُمرر سبب الرفض مع إرشاد صريح بأنه لا يتوفر خرج للأمر،
مما يمنع الوكيل من الادعاء بوجود خرج جديد أو
تكرار الأمر المرفوض بنتائج قديمة من تشغيل سابق ناجح.

## الآثار

- **`full`** قوي؛ فضّل قوائم السماح متى أمكن.
- **`ask`** يبقيك ضمن الحلقة مع الاستمرار في إتاحة موافقات سريعة.
- تمنع قوائم السماح لكل وكيل تسرب موافقات وكيل إلى وكلاء آخرين.
- تنطبق الموافقات فقط على طلبات تنفيذ المضيف من **المرسلين المصرح لهم**. لا يستطيع المرسلون غير المصرح لهم إصدار `/exec`.
- يُعد `/exec security=full` تيسيرًا على مستوى الجلسة للمشغّلين المصرح لهم ويتجاوز الموافقات بحكم التصميم. لحظر تنفيذ المضيف حظرًا صارمًا، اضبط أمان الموافقات على `deny` أو ارفض أداة `exec` عبر سياسة الأدوات.

## ذات صلة

<CardGroup cols={2}>
  <Card title="موافقات التنفيذ - متقدم" href="/ar/tools/exec-approvals-advanced" icon="gear">
    ملفات bin الآمنة، وربط المفسّر، وتمرير الموافقات إلى الدردشة.
  </Card>
  <Card title="أداة التنفيذ" href="/ar/tools/exec" icon="terminal">
    أداة تنفيذ أوامر الصدفة.
  </Card>
  <Card title="الوضع المرتفع" href="/ar/tools/elevated" icon="shield-exclamation">
    مسار كسر الزجاج الذي يتجاوز الموافقات أيضًا.
  </Card>
  <Card title="العزل في Sandbox" href="/ar/gateway/sandboxing" icon="box">
    أوضاع Sandbox والوصول إلى مساحة العمل.
  </Card>
  <Card title="الأمان" href="/ar/gateway/security" icon="lock">
    نموذج الأمان والتقوية.
  </Card>
  <Card title="Sandbox مقابل سياسة الأدوات مقابل الوضع المرتفع" href="/ar/gateway/sandbox-vs-tool-policy-vs-elevated" icon="sliders">
    متى تستخدم كل عنصر تحكم.
  </Card>
  <Card title="Skills" href="/ar/tools/skills" icon="sparkles">
    سلوك السماح التلقائي المدعوم بالمهارات.
  </Card>
</CardGroup>
