---
read_when:
    - تريد فهم توجيه الجلسات وعزلها
    - تريد تهيئة نطاق الرسائل المباشرة لإعدادات متعددة المستخدمين
    - أنت تعمل على تصحيح أخطاء إعادة تعيين الجلسات اليومية أو الخاملة
summary: كيفية إدارة OpenClaw لجلسات المحادثة
title: إدارة الجلسات
x-i18n:
    generated_at: "2026-07-16T13:48:59Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: 8ec9e33b4d288fa12016092ab2201431631fc9cb77e6e9d4261d348d5a849f65
    source_path: concepts/session.md
    workflow: 16
---

يوجّه OpenClaw كل رسالة واردة إلى **جلسة** بناءً على مصدرها:
الرسائل الخاصة، والمحادثات الجماعية، ومهام Cron، وما إلى ذلك. يمتلك
**Gateway** حالة الجلسة بالكامل؛ وتستعلم عملاء واجهة المستخدم من Gateway عن بيانات الجلسة.

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

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

## عزل الرسائل الخاصة

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

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

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

خيارات `session.dmScope`:

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

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

### إرساء القنوات المرتبطة

تنقل أوامر الإرساء مسار رد جلسة المحادثة المباشرة الحالية إلى قناة
مرتبطة أخرى من دون بدء جلسة جديدة. راجع
[إرساء القنوات](/ar/concepts/channel-docking) للاطلاع على الأمثلة والإعداد
واستكشاف الأخطاء وإصلاحها.

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

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

يُعاد استخدام الجلسات حتى تنتهي صلاحيتها وفقًا لـ `session.reset`:

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

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

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

تجاوز الإعداد الافتراضي حسب نوع المحادثة أو القناة:

```json5
{
  session: {
    reset: { mode: "daily", atHour: 4 },
    resetByType: {
      group: { mode: "idle", idleMinutes: 120 },
      thread: { mode: "daily", atHour: 6 },
    },
    resetByChannel: {
      discord: { mode: "idle", idleMinutes: 10080 },
    },
  },
}
```

يدعم `resetByType` القيم `direct` (الاسم البديل القديم `dm`) و`group` و`thread`.
لا يزال `session.idleMinutes` القديم في المستوى الأعلى يعمل بوصفه اسمًا بديلًا للتوافق لإعداد
افتراضي لوضع الخمول عندما لا تكون كتلة `session.reset`/`resetByType` مضبوطة.

## مكان تخزين الحالة

- **صفوف جلسات وقت التشغيل:** `~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite`
- **ملفات نصوص المحادثات المؤرشفة:** `~/.openclaw/agents/<agentId>/sessions/`
- **مصدر ترحيل الصفوف القديمة:** `~/.openclaw/agents/<agentId>/sessions/sessions.json`

تحتفظ صفوف الجلسات في قاعدة بيانات SQLite الخاصة بكل وكيل بطوابع زمنية منفصلة
لدورة الحياة:

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

أثناء الترحيل من التثبيتات الأقدم، يستورد بدء تشغيل Gateway و`openclaw doctor
--fix` صفوف `sessions.json` القديمة وسجل نصوص المحادثات النشط بتنسيق JSONL إلى
SQLite تلقائيًا. تُستخلص الصفوف التي لا تحتوي على `sessionStartedAt` من
ترويسة جلسة نص المحادثة القديم بتنسيق JSONL عند توفرها. وإذا كان صف أقدم
يفتقر أيضًا إلى `lastInteractionAt`، فتعود حداثة الخمول إلى وقت بدء تلك الجلسة،
لا إلى عمليات كتابة مسك الدفاتر اللاحقة. استخدم `openclaw doctor --session-sqlite inspect
--session-sqlite-all-agents` و[تسلسل ترحيل
Doctor](/ar/cli/doctor#session-sqlite-migration) عندما تريد فحصًا صريحًا
أو دليل تحقق.

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

يحدّ OpenClaw من تخزين الجلسات بمرور الوقت عبر `session.maintenance`، وتظهر
القيم الافتراضية أدناه:

```json5
{
  session: {
    maintenance: {
      mode: "enforce", // يطبّق "enforce" التنظيف؛ ويقتصر "warn" على الإبلاغ
      pruneAfter: "30d",
      maxEntries: 500,
    },
  },
}
```

بالنسبة إلى حدود `maxEntries` بحجم بيئات الإنتاج، تستخدم عمليات كتابة Gateway وقت التشغيل مخزنًا مؤقتًا صغيرًا
لعلامة الحد الأعلى، ثم تنظّف على دفعات وصولًا إلى الحد الأقصى المضبوط.
لا تنظّف قراءات مخزن الجلسات الإدخالات ولا تفرض حدًا أقصى عليها أثناء بدء تشغيل Gateway، ولذلك
لا تتحمل جلسات بدء التشغيل وجلسات Cron المعزولة كلفة تنظيف المخزن بالكامل.
يطبّق `openclaw sessions cleanup --enforce` الحد الأقصى فورًا.

جلسات فحص تشغيل النموذج في Gateway قصيرة العمر افتراضيًا. تستخدم الصفوف المطابقة
لـ `agent:*:explicit:model-run-<uuid>` مدة احتفاظ ثابتة قدرها `24h`، لكن التنظيف
مشروط بالضغط: فلا يزيل صفوف الفحص القديمة إلا عند بلوغ ضغط
صيانة/حد إدخالات الجلسات، ويُشغّل قبل حد العمر الأوسع
للإدخالات القديمة وقبل حد الإدخالات. لا ترث جلسات الرسائل المباشرة والمجموعات والسلاسل وCron والخطافات وHeartbeat
وACP والوكلاء الفرعيين العادية مدة الاحتفاظ هذه البالغة 24h.

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

إذا سبق أن استخدمت عزل الرسائل الخاصة ثم أعدت `session.dmScope` لاحقًا إلى
`main`، فعاين صفوف الرسائل الخاصة القديمة ذات المفاتيح المرتبطة بالنظير باستخدام
`openclaw sessions cleanup --dry-run --fix-dm-scope`. يؤدي تطبيق العلامة نفسها
إلى إيقاف صفوف الرسائل الخاصة المباشرة القديمة مع الاحتفاظ بنصوص محادثاتها كأرشيفات
محذوفة.

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

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

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

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

- [البحث في الجلسات](/ar/concepts/session-search) - استرجاع بالنص الكامل عبر نصوص المحادثات السابقة
- [تنظيف الجلسات](/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)
