---
read_when:
    - می‌خواهید مسیریابی و ایزوله‌سازی نشست را درک کنید
    - می‌خواهید دامنهٔ DM را برای راه‌اندازی‌های چندکاربره پیکربندی کنید
    - در حال عیب‌یابی بازنشانی‌های روزانه یا بازنشانی‌های نشست به‌دلیل بی‌کاری هستید
summary: OpenClaw چگونه نشست‌های گفتگو را مدیریت می‌کند
title: مدیریت نشست
x-i18n:
    generated_at: "2026-05-02T11:44:16Z"
    model: gpt-5.5
    provider: openai
    source_hash: b2fd0c9e880242a8d0070c24bd1f7971e4082344240e28632e2e3ca032404807
    source_path: concepts/session.md
    workflow: 16
---

OpenClaw گفتگوها را در **نشست‌ها** سازمان‌دهی می‌کند. هر پیام بر اساس محل دریافتش به یک نشست
مسیریابی می‌شود؛ پیام‌های مستقیم، چت‌های گروهی، وظایف Cron و غیره.

## پیام‌ها چگونه مسیریابی می‌شوند

| منبع          | رفتار                  |
| --------------- | ------------------------- |
| پیام‌های مستقیم | به‌طور پیش‌فرض نشست مشترک |
| چت‌های گروهی     | جداگانه برای هر گروه        |
| اتاق‌ها/کانال‌ها  | جداگانه برای هر اتاق         |
| وظایف Cron       | نشست تازه برای هر اجرا     |
| Webhookها        | جداگانه برای هر Hook         |

## جداسازی پیام مستقیم

به‌طور پیش‌فرض، همه پیام‌های مستقیم برای حفظ پیوستگی یک نشست را به اشتراک می‌گذارند. این برای
راه‌اندازی‌های تک‌کاربره مناسب است.

<Warning>
اگر چند نفر می‌توانند به عامل شما پیام بدهند، جداسازی پیام مستقیم را فعال کنید. بدون آن، همه
کاربران یک زمینه گفتگوی مشترک دارند؛ پیام‌های خصوصی آلیس برای باب قابل مشاهده خواهد بود.
</Warning>

**راه‌حل:**

```json5
{
  session: {
    dmScope: "per-channel-peer", // isolate by channel + sender
  },
}
```

گزینه‌های دیگر:

- `main` (پیش‌فرض) -- همه پیام‌های مستقیم یک نشست را به اشتراک می‌گذارند.
- `per-peer` -- جداسازی بر اساس فرستنده (در همه کانال‌ها).
- `per-channel-peer` -- جداسازی بر اساس کانال + فرستنده (توصیه‌شده).
- `per-account-channel-peer` -- جداسازی بر اساس حساب + کانال + فرستنده.

<Tip>
اگر یک شخص از چند کانال با شما تماس می‌گیرد، از
`session.identityLinks` برای پیوند دادن هویت‌های او استفاده کنید تا یک نشست مشترک داشته باشد.
</Tip>

### اتصال کانال‌های پیوندشده

فرمان‌های اتصال به کاربر اجازه می‌دهند مسیر پاسخ نشست گفتگوی مستقیم فعلی را بدون شروع نشست جدید به
کانال پیوندشده دیگری منتقل کند. برای نمونه‌ها، پیکربندی و
عیب‌یابی، [اتصال کانال](/fa/concepts/channel-docking) را ببینید.

راه‌اندازی خود را با `openclaw security audit` بررسی کنید.

## چرخه عمر نشست

نشست‌ها تا زمان انقضا دوباره استفاده می‌شوند:

- **بازنشانی روزانه** (پیش‌فرض) -- نشست جدید در ساعت ۴:۰۰ صبح به وقت محلی میزبان 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,
    },
  },
}
```

برای محدودیت‌های `maxEntries` در اندازه تولید، نوشتن‌های زمان اجرای Gateway از یک بافر کوچک سقف بالا استفاده می‌کنند و در دسته‌ها دوباره تا سقف پیکربندی‌شده پاک‌سازی می‌شوند. خواندن‌های ذخیره‌گاه نشست هنگام راه‌اندازی Gateway ورودی‌ها را هرس یا محدود نمی‌کنند. این کار از اجرای پاک‌سازی کامل ذخیره‌گاه در هر راه‌اندازی یا نشست Cron جداگانه جلوگیری می‌کند. `openclaw sessions cleanup --enforce` سقف را بلافاصله اعمال می‌کند.

نگهداری، اشاره‌گرهای پایدار گفتگوی خارجی، از جمله نشست‌های گروهی و
نشست‌های چت محدود به رشته را حفظ می‌کند، در حالی که همچنان اجازه می‌دهد ورودی‌های ساختگی Cron،
Hook، Heartbeat، ACP و زیردست‌عامل با گذر زمان خارج شوند.

با `openclaw sessions cleanup --dry-run` پیش‌نمایش بگیرید.

## بررسی نشست‌ها

- `openclaw status` -- مسیر ذخیره‌گاه نشست و فعالیت اخیر.
- `openclaw sessions --json` -- همه نشست‌ها (فیلتر با `--active <minutes>`).
- `/status` در چت -- میزان استفاده از زمینه، مدل و کلیدهای تغییر وضعیت.
- `/context list` -- آنچه در پرامپت سیستم قرار دارد.

## مطالعه بیشتر

- [هرس نشست](/fa/concepts/session-pruning) -- کوتاه‌کردن نتایج ابزار
- [Compaction](/fa/concepts/compaction) -- خلاصه‌سازی گفتگوهای طولانی
- [ابزارهای نشست](/fa/concepts/session-tool) -- ابزارهای عامل برای کار میان‌نشستی
- [بررسی عمیق مدیریت نشست](/fa/reference/session-management-compaction) --
  شمای ذخیره‌گاه، رونوشت‌ها، سیاست ارسال، فراداده مبدا و پیکربندی پیشرفته
- [چندعاملی](/fa/concepts/multi-agent) — مسیریابی و جداسازی نشست میان عامل‌ها
- [وظایف پس‌زمینه](/fa/automation/tasks) — کارهای جداشده چگونه رکوردهای وظیفه با ارجاع نشست می‌سازند
- [مسیریابی کانال](/fa/channels/channel-routing) — پیام‌های ورودی چگونه به نشست‌ها مسیریابی می‌شوند

## مرتبط

- [هرس نشست](/fa/concepts/session-pruning)
- [ابزارهای نشست](/fa/concepts/session-tool)
- [صف فرمان](/fa/concepts/queue)
