---
read_when:
    - تريد فهم توجيه الجلسات وعزلها
    - تريد تهيئة نطاق الرسائل المباشرة لإعدادات متعددة المستخدمين
    - أنت تقوم بتصحيح أخطاء إعادة تعيين الجلسات اليومية أو عند الخمول
summary: كيف يدير OpenClaw جلسات المحادثة
title: إدارة الجلسات
x-i18n:
    generated_at: "2026-04-26T11:28:06Z"
    model: gpt-5.4
    provider: openai
    source_hash: 8f36995997dc7eb612333c6bbfe6cd6c08dc22769ad0a7e47d15dbb4208e6113
    source_path: concepts/session.md
    workflow: 15
---

ينظم OpenClaw المحادثات ضمن **جلسات**. ويتم توجيه كل رسالة إلى
جلسة بناءً على مصدرها -- الرسائل المباشرة، والدردشات الجماعية، ووظائف Cron، وغيرها.

## كيفية توجيه الرسائل

| المصدر          | السلوك                    |
| --------------- | ------------------------- |
| الرسائل المباشرة | جلسة مشتركة افتراضيًا     |
| الدردشات الجماعية | معزولة لكل مجموعة         |
| الغرف/القنوات    | معزولة لكل غرفة           |
| وظائف Cron       | جلسة جديدة لكل تشغيل      |
| Webhooks         | معزولة لكل hook           |

## عزل الرسائل المباشرة

بشكل افتراضي، تشترك جميع الرسائل المباشرة في جلسة واحدة للحفاظ على الاستمرارية. وهذا مناسب
للإعدادات أحادية المستخدم.

<Warning>
إذا كان بإمكان عدة أشخاص مراسلة وكيلك، فقم بتمكين عزل الرسائل المباشرة. ومن دون ذلك، يشترك جميع
المستخدمين في سياق المحادثة نفسه -- وستصبح رسائل Alice الخاصة مرئية لـ Bob.
</Warning>

**الحل:**

```json5
{
  session: {
    dmScope: "per-channel-peer", // عزل حسب القناة + المرسل
  },
}
```

خيارات أخرى:

- `main` (الافتراضي) -- تشترك جميع الرسائل المباشرة في جلسة واحدة.
- `per-peer` -- عزل حسب المرسل (عبر القنوات).
- `per-channel-peer` -- عزل حسب القناة + المرسل (موصى به).
- `per-account-channel-peer` -- عزل حسب الحساب + القناة + المرسل.

<Tip>
إذا كان الشخص نفسه يتصل بك من قنوات متعددة، فاستخدم
`session.identityLinks` لربط هوياته بحيث يشترك في جلسة واحدة.
</Tip>

تحقق من إعدادك باستخدام `openclaw security audit`.

## دورة حياة الجلسة

تُعاد استخدام الجلسات حتى تنتهي صلاحيتها:

- **إعادة تعيين يومية** (الافتراضي) -- جلسة جديدة عند الساعة 4:00 صباحًا بالتوقيت المحلي على مضيف
  Gateway. وتعتمد الحداثة اليومية على وقت بدء `sessionId` الحالي، وليس
  على عمليات كتابة البيانات الوصفية اللاحقة.
- **إعادة تعيين عند الخمول** (اختياري) -- جلسة جديدة بعد فترة من عدم النشاط. عيّن
  `session.reset.idleMinutes`. وتعتمد حداثة الخمول على آخر
  تفاعل حقيقي للمستخدم/القناة، لذلك لا تُبقي أحداث النظام مثل Heartbeat وCron وexec الجلسة حيّة.
- **إعادة تعيين يدوية** -- اكتب `/new` أو `/reset` في الدردشة. كما أن `/new <model>` يبدّل النموذج أيضًا.

عند تهيئة كل من إعادة التعيين اليومية وإعادة التعيين عند الخمول، فإن أول ما تنتهي صلاحيته هو الذي يفوز.
قد تكتب أدوار أحداث النظام مثل Heartbeat وCron وexec وفعاليات النظام الأخرى بيانات تعريف الجلسة،
لكن هذه الكتابات لا تمدد حداثة إعادة التعيين اليومية أو عند الخمول. وعندما تؤدي إعادة التعيين إلى
تدوير الجلسة، يتم تجاهل إشعارات أحداث النظام المصطفة للجلسة القديمة حتى لا تُضاف تحديثات الخلفية القديمة
في مقدمة أول مطالبة في الجلسة الجديدة.

لا تُقطع الجلسات التي تملك جلسة CLI نشطة مملوكة للمزوّد بواسطة
الإعداد اليومي الضمني الافتراضي. استخدم `/reset` أو هيّئ `session.reset` صراحة عندما يجب أن تنتهي
تلك الجلسات وفق مؤقت.

## مكان وجود الحالة

جميع حالة الجلسة مملوكة لـ **Gateway**. وتستعلم عملاء واجهة المستخدم من Gateway عن
بيانات الجلسة.

- **المخزن:** `~/.openclaw/agents/<agentId>/sessions/sessions.json`
- **النصوص:** `~/.openclaw/agents/<agentId>/sessions/<sessionId>.jsonl`

يحتفظ `sessions.json` بطوابع زمنية منفصلة لدورة الحياة:

- `sessionStartedAt`: وقت بدء `sessionId` الحالي؛ وتستخدمه إعادة التعيين اليومية.
- `lastInteractionAt`: آخر تفاعل مستخدم/قناة يمدد عمر الخمول.
- `updatedAt`: آخر تعديل في صف المخزن؛ وهو مفيد للعرض والتشذيب، لكنه ليس
  المرجع النهائي لحداثة إعادة التعيين اليومية/عند الخمول.

تُحل الصفوف الأقدم التي لا تحتوي على `sessionStartedAt` من ترويسة جلسة
النص JSONL عند توفرها. وإذا كان صف أقدم يفتقد أيضًا إلى `lastInteractionAt`،
فإن حداثة الخمول تعود إلى وقت بدء تلك الجلسة، وليس إلى كتابات المتابعة اللاحقة.

## صيانة الجلسات

يقوم OpenClaw تلقائيًا بتقييد تخزين الجلسات بمرور الوقت. وبشكل افتراضي، يعمل
في وضع `warn` (يبلّغ عما كان سيتم تنظيفه). عيّن `session.maintenance.mode`
إلى `"enforce"` للتنظيف التلقائي:

```json5
{
  session: {
    maintenance: {
      mode: "enforce",
      pruneAfter: "30d",
      maxEntries: 500,
    },
  },
}
```

اعرض المعاينة باستخدام `openclaw sessions cleanup --dry-run`.

## فحص الجلسات

- `openclaw status` -- مسار مخزن الجلسات والنشاط الحديث.
- `openclaw sessions --json` -- جميع الجلسات (قم بالتصفية باستخدام `--active <minutes>`).
- `/status` في الدردشة -- استخدام السياق والنموذج والمفاتيح.
- `/context list` -- ما يوجد في مطالبة النظام.

## قراءة إضافية

- [تشذيب الجلسات](/ar/concepts/session-pruning) -- تقليم نتائج الأدوات
- [Compaction](/ar/concepts/compaction) -- تلخيص المحادثات الطويلة
- [أدوات الجلسة](/ar/concepts/session-tool) -- أدوات الوكيل للعمل عبر الجلسات
- [شرح معمق لإدارة الجلسات](/ar/reference/session-management-compaction) --
  مخطط المخزن، والنصوص، وسياسة الإرسال، وبيانات تعريف المصدر، والتهيئة المتقدمة
- [الوكلاء المتعددون](/ar/concepts/multi-agent) — التوجيه وعزل الجلسات عبر الوكلاء
- [المهام الخلفية](/ar/automation/tasks) — كيف ينشئ العمل المنفصل سجلات مهام مع مراجع جلسات
- [توجيه القنوات](/ar/channels/channel-routing) — كيف يتم توجيه الرسائل الواردة إلى الجلسات

## ذو صلة

- [تشذيب الجلسات](/ar/concepts/session-pruning)
- [أدوات الجلسة](/ar/concepts/session-tool)
- [قائمة انتظار الأوامر](/ar/concepts/queue)
