CLI commands

نشست‌ها

openclaw sessions

نشست‌های گفت‌وگوی ذخیره‌شده را فهرست کنید.

فهرست نشست‌ها بررسی زنده‌بودن کانال/ارائه‌دهنده نیست. این فهرست‌ها ردیف‌های گفت‌وگوی ماندگارشده در مخازن نشست را نشان می‌دهند. یک Discord، Slack، Telegram یا کانال دیگرِ غیرفعال می‌تواند با موفقیت دوباره متصل شود، بی‌آنکه تا زمان پردازش یک پیام، ردیف نشست جدیدی ایجاد کند. هنگامی که به اتصال زنده کانال نیاز دارید، از openclaw channels status --probe، openclaw status --deep یا openclaw health --verbose استفاده کنید.

bash
openclaw sessionsopenclaw sessions --agent workopenclaw sessions --all-agentsopenclaw sessions --active 120openclaw sessions --limit 25openclaw sessions --store ./tmp/sessions.jsonopenclaw sessions --json

پرچم‌ها:

پرچم توضیحات
--agent <id> یک مخزن عامل پیکربندی‌شده (پیش‌فرض: عامل پیش‌فرض پیکربندی‌شده).
--all-agents همه مخازن عامل پیکربندی‌شده را تجمیع می‌کند.
--store <path> مسیر صریح مخزن (نمی‌توان آن را با --agent یا --all-agents ترکیب کرد).
--active <minutes> فقط نشست‌هایی را نشان می‌دهد که در N دقیقه گذشته به‌روزرسانی شده‌اند.
--limit <n|all> حداکثر تعداد ردیف‌های خروجی (پیش‌فرض 100؛ all خروجی کامل را برمی‌گرداند).
--json خروجی ماشین‌خوان.
--verbose گزارش‌گیری مشروح.

openclaw sessions و RPC مربوط به sessions.list در Gateway به‌طور پیش‌فرض محدود هستند تا مخازن بزرگ و دیرپا نتوانند فرایند CLI یا حلقه رویداد Gateway را در انحصار خود بگیرند. CLI به‌طور پیش‌فرض جدیدترین 100 نشست را برمی‌گرداند؛ برای بازه‌ای کوچک‌تر/بزرگ‌تر --limit <n> را ارسال کنید، یا هنگامی که عمداً به کل مخزن نیاز دارید از --limit all استفاده کنید. پاسخ‌های JSON شامل totalCount، limitApplied و hasMore هستند تا فراخوانندگان در صورت نیاز بتوانند وجود ردیف‌های بیشتر را نشان دهند.

کلاینت‌های RPC می‌توانند configuredAgentsOnly: true را ارسال کنند تا منبع گسترده و ترکیبی کشف حفظ شود، اما فقط ردیف‌های عامل‌هایی برگردانده شوند که اکنون در پیکربندی حضور دارند. Control UI به‌طور پیش‌فرض از این حالت استفاده می‌کند تا مخازن عامل حذف‌شده یا فقط موجود روی دیسک دوباره در نمای نشست‌ها ظاهر نشوند.

--all-agents مخازن عامل پیکربندی‌شده را می‌خواند. کشف نشست در Gateway و ACP گسترده‌تر است: این فرایند مخازن SQLite را نیز شامل می‌شود که از ریشه‌های عامل پیکربندی‌شده یا یک ریشه قالب‌دار session.store تفکیک شده‌اند. مسیرهای انتخابگر قدیمی باید درون ریشه عامل تفکیک شوند؛ پیوندهای نمادین و مسیرهای خارج از ریشه نادیده گرفته می‌شوند.

openclaw sessions --all-agents --json:

json
{  "path": null,  "stores": [    { "agentId": "main", "path": "/home/user/.openclaw/agents/main/sessions/sessions.json" },    { "agentId": "work", "path": "/home/user/.openclaw/agents/work/sessions/sessions.json" }  ],  "allAgents": true,  "count": 2,  "totalCount": 2,  "limitApplied": 100,  "hasMore": false,  "activeMinutes": null,  "sessions": [    { "agentId": "main", "key": "agent:main:main", "model": "openai/gpt-5.6-sol" },    { "agentId": "work", "key": "agent:work:main", "model": "anthropic/claude-sonnet-4-6" }  ]}

دنبال‌کردن پیشرفت مسیر اجرا

bash
openclaw sessions tailopenclaw sessions tail --followopenclaw sessions tail --session-key "agent:main:telegram:direct:123" --tail 25openclaw sessions --agent work tail --followopenclaw sessions --all-agents tail --follow

openclaw sessions tail رویدادهای اخیر مسیر اجرای زمان اجرا را به‌شکل خطوط فشرده پیشرفت نمایش می‌دهد. بدون --session-key، ابتدا نشست‌های در حال اجرا و سپس آخرین نشست ذخیره‌شده را دنبال می‌کند. --tail <count> تعیین می‌کند پیش از حالت دنبال‌کردن چند رویداد موجود چاپ شود؛ مقدار پیش‌فرض 80 است و 0 از انتهای فعلی آغاز می‌کند. --follow نظارت بر نشست انتخاب‌شده مبتنی بر SQLite یا یک فایل صریح مسیر اجرای قدیمی را ادامه می‌دهد.

نمای پیشرفت عمداً محافظه‌کارانه است: متن پرامپت، آرگومان‌های ابزار و بدنه نتایج ابزار چاپ نمی‌شوند. فراخوانی‌های ابزار نام ابزار را همراه با {...redacted...} نشان می‌دهند؛ نتایج ابزار وضعیت‌هایی مانند ok، error یا done را نشان می‌دهند؛ خطوط تکمیل مدل ارائه‌دهنده/مدل و وضعیت پایانی را نشان می‌دهند.

صادرکردن یک بسته مسیر اجرا

bash
openclaw sessions export-trajectory --session-key "agent:main:telegram:direct:123" --workspace .openclaw sessions export-trajectory --session-key "agent:main:telegram:direct:123" --output bug-123 --json

این همان مسیر فرمانی است که فرمان اسلش /export-trajectory پس از تأیید درخواست اجرا توسط مالک استفاده می‌کند. پوشه خروجی همیشه درون .openclaw/trajectory-exports/ در فضای کاری انتخاب‌شده تفکیک می‌شود.

نگه‌داری پاک‌سازی

به‌جای انتظار برای چرخه نوشتن بعدی، نگه‌داری را اکنون اجرا کنید:

bash
openclaw sessions cleanup --dry-runopenclaw sessions cleanup --agent work --dry-runopenclaw sessions cleanup --all-agents --dry-runopenclaw sessions cleanup --enforceopenclaw sessions cleanup --enforce --active-key "agent:main:telegram:direct:123"openclaw sessions cleanup --dry-run --fix-dm-scopeopenclaw sessions cleanup --json

openclaw sessions cleanup از تنظیمات session.maintenance در پیکربندی استفاده می‌کند (مرجع پیکربندی):

  • نکته دامنه: openclaw sessions cleanup مخازن نشست، رونوشت‌ها، ردیف‌های مسیر اجرا و فایل‌های جانبی قدیمی مسیر اجرا را نگه‌داری می‌کند. این فرایند تاریخچه اجرای cron را هرس نمی‌کند؛ این تاریخچه به‌طور خودکار جدیدترین 2000 ردیف را برای هر کار نگه می‌دارد (پیکربندی Cron).
  • پاک‌سازی همچنین مصنوعات رونوشت قدیمی/بایگانیِ بدون ارجاع، نقاط وارسی Compaction و فایل‌های جانبی مسیر اجرای قدیمی‌تر از session.maintenance.pruneAfter را هرس می‌کند؛ مصنوعاتی که همچنان توسط ردیف‌های نشست SQLite مورد ارجاع هستند حفظ می‌شوند.
  • پاک‌سازی، حذف کاوشگرهای کوتاه‌عمر اجرای مدل Gateway را جداگانه با عنوان modelRunPruned گزارش می‌کند. این مورد فقط با کلیدهای صریح و سخت‌گیرانه‌ای با ساختار agent:*:explicit:model-run-<uuid> مطابقت دارد. مدت نگه‌داری ثابت و برابر با 24h است و به فشار وابسته است: ردیف‌های کاوشگر منقضی فقط هنگامی حذف می‌شوند که فشار نگه‌داری/سقف ورودی نشست ایجاد شود. هنگام اجرا، پاک‌سازی اجرای مدل پیش از پاک‌سازی کلی موارد منقضی و اعمال سقف انجام می‌شود.

پرچم‌ها:

پرچم توضیحات
--dry-run بدون نوشتن، تعداد ورودی‌هایی را که هرس می‌شوند یا سقف می‌خورند پیش‌نمایش می‌کند. در حالت متنی، یک جدول اقدام برای هر نشست (Action، Key، Age، Model، Flags) به‌همراه خلاصه‌ای گروه‌بندی‌شده بر اساس برچسب نشست چاپ می‌کند.
--enforce حتی هنگامی که session.maintenance.mode برابر با warn است، نگه‌داری را اعمال می‌کند.
--fix-missing ورودی‌های قدیمی را که مصنوعات رونوشت بایگانی‌شده آن‌ها مفقود، فقط شامل سرآیند یا خالی هستند حذف می‌کند، حتی اگر هنوز طبق روال عادی به محدودیت سن/تعداد نرسیده باشند.
--fix-dm-scope هنگامی که session.dmScope برابر با main است، ردیف‌های پیام مستقیمِ منقضی و کلیدگذاری‌شده بر اساس همتا را که از مسیریابی پیشین per-peer، per-channel-peer یا per-account-channel-peer باقی مانده‌اند کنار می‌گذارد. ابتدا از --dry-run استفاده کنید؛ اعمال آن، ردیف‌ها را از SQLite حذف و مصنوعات رونوشت قدیمی آن‌ها را به‌صورت بایگانی‌های حذف‌شده حفظ می‌کند.
--active-key <key> از یک کلید فعال مشخص در برابر اخراج ناشی از بودجه دیسک محافظت می‌کند. اشاره‌گرهای ماندگار گفت‌وگوی خارجی، مانند نشست‌های گروهی و نشست‌های گفت‌وگوی محدود به رشته، نیز توسط نگه‌داری مبتنی بر سن/تعداد/بودجه دیسک حفظ می‌شوند.
--agent <id> پاک‌سازی را برای یک مخزن عامل پیکربندی‌شده اجرا می‌کند.
--all-agents پاک‌سازی را برای همه مخازن عامل پیکربندی‌شده اجرا می‌کند.
--store <path> روی یک مسیر انتخابگر مخزن قدیمی مشخص اجرا می‌شود.
--json یک خلاصه JSON چاپ می‌کند. همراه با --all-agents، خروجی برای هر مخزن یک خلاصه دارد.

هنگامی که Gateway در دسترس باشد، پاک‌سازی غیرآزمایشی برای مخازن عامل پیکربندی‌شده از طریق Gateway ارسال می‌شود تا از همان نویسنده مخزن نشستِ ترافیک زمان اجرا استفاده کند. برای تعمیر آفلاین صریح یک انتخابگر مخزن قدیمی، از --store <path> استفاده کنید.

openclaw sessions cleanup --all-agents --dry-run --json:

json
{  "allAgents": true,  "mode": "warn",  "dryRun": true,  "stores": [    {      "agentId": "main",      "storePath": "/home/user/.openclaw/agents/main/sessions/sessions.json",      "beforeCount": 120,      "afterCount": 80,      "missing": 0,      "dmScopeRetired": 0,      "pruned": 40,      "capped": 0    },    {      "agentId": "work",      "storePath": "/home/user/.openclaw/agents/work/sessions/sessions.json",      "beforeCount": 18,      "afterCount": 18,      "missing": 0,      "dmScopeRetired": 0,      "pruned": 0,      "capped": 0    }  ]}

فشرده‌سازی یک نشست

بودجه زمینه را برای یک نشست گیرکرده یا بیش‌ازحد بزرگ بازیابی کنید. openclaw sessions compact <key> پوشش درجه‌اولی پیرامون RPC مربوط به sessions.compact در Gateway است و به یک Gateway در حال اجرا نیاز دارد.

bash
openclaw sessions compact "agent:main:main"openclaw sessions compact "agent:main:main" --max-lines 200openclaw sessions compact "agent:work:main" --agent work --json
  • بدون --max-lines، Gateway رونوشت را با LLM خلاصه می‌کند. CLI به‌طور پیش‌فرض مهلت کلاینتی اعمال نمی‌کند؛ Gateway چرخه عمر Compaction پیکربندی‌شده را مدیریت می‌کند.
  • با --max-lines <n>، رونوشت به آخرین n خط محدود می‌شود و رونوشت قبلی به‌عنوان یک فایل جانبی .bak بایگانی می‌شود.
  • --agent <id>: عاملی که مالک نشست است؛ برای کلیدهای global الزامی است.
  • --url / --token / --password: بازنویسی‌های اتصال Gateway.
  • --timeout <ms>: مهلت اختیاری RPC در سمت کلاینت بر حسب میلی‌ثانیه.
  • --json: محموله خام RPC را چاپ می‌کند.

فرمان زمانی با کد غیرصفر خارج می‌شود که Gateway یک Compaction ناموفق را گزارش کند یا دسترس‌ناپذیر باشد؛ بنابراین Cronها و اسکریپت‌ها هرگز یک عملیات بی‌اثرِ بی‌صدا را با موفقیت اشتباه نمی‌گیرند.

RPC مربوط به sessions.compact

openclaw gateway call sessions.compact --params '<json>' موارد زیر را می‌پذیرد:

فیلد نوع الزامی توضیحات
key رشته بله کلید نشست برای Compaction (برای مثال agent:main:main).
agentId رشته خیر شناسه عاملی که مالک نشست است (برای کلیدهای global).
maxLines عدد صحیح ≥ 1 خیر به‌جای خلاصه‌سازی با LLM، به آخرین N خط محدود می‌کند.

نمونه پاسخ خلاصه‌سازی با LLM:

json
{  "ok": true,  "key": "agent:main:main",  "compacted": true,  "result": { "tokensBefore": 243868, "tokensAfter": 34941 }}

نمونه پاسخ محدودسازی (--max-lines 200):

json
{  "ok": true,  "key": "agent:main:main",  "compacted": true,  "archived": "/home/user/.openclaw/agents/main/sessions/transcripts/<id>.jsonl.bak",  "kept": 200}

مرتبط

Was this useful?
On this page

On this page