CLI commands
نشستها
openclaw sessions
نشستهای گفتوگوی ذخیرهشده را فهرست کنید.
فهرست نشستها بررسی زندهبودن کانال/ارائهدهنده نیست. این فهرستها ردیفهای
گفتوگوی ماندگارشده در مخازن نشست را نشان میدهند. یک Discord، Slack، Telegram یا
کانال دیگرِ غیرفعال میتواند با موفقیت دوباره متصل شود، بیآنکه تا زمان پردازش
یک پیام، ردیف نشست جدیدی ایجاد کند. هنگامی که به اتصال زنده
کانال نیاز دارید، از openclaw channels status --probe،
openclaw status --deep یا openclaw health --verbose استفاده کنید.
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:
{ "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" } ]}دنبالکردن پیشرفت مسیر اجرا
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 --followopenclaw sessions tail رویدادهای اخیر مسیر اجرای زمان اجرا را بهشکل خطوط فشرده
پیشرفت نمایش میدهد. بدون --session-key، ابتدا نشستهای در حال اجرا و سپس
آخرین نشست ذخیرهشده را دنبال میکند. --tail <count> تعیین میکند پیش از حالت
دنبالکردن چند رویداد موجود چاپ شود؛ مقدار پیشفرض 80 است و
0 از انتهای فعلی آغاز میکند.
--follow نظارت بر نشست انتخابشده مبتنی بر SQLite یا یک فایل صریح
مسیر اجرای قدیمی را ادامه میدهد.
نمای پیشرفت عمداً محافظهکارانه است: متن پرامپت، آرگومانهای ابزار و
بدنه نتایج ابزار چاپ نمیشوند. فراخوانیهای ابزار نام ابزار را همراه با
{...redacted...} نشان میدهند؛ نتایج ابزار وضعیتهایی مانند ok،
error یا done را نشان میدهند؛ خطوط تکمیل مدل
ارائهدهنده/مدل و وضعیت پایانی را نشان میدهند.
صادرکردن یک بسته مسیر اجرا
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/ در فضای کاری انتخابشده تفکیک میشود.
نگهداری پاکسازی
بهجای انتظار برای چرخه نوشتن بعدی، نگهداری را اکنون اجرا کنید:
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 --jsonopenclaw 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:
{ "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 در حال اجرا نیاز دارد.
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:
{ "ok": true, "key": "agent:main:main", "compacted": true, "result": { "tokensBefore": 243868, "tokensAfter": 34941 }}نمونه پاسخ محدودسازی (--max-lines 200):
{ "ok": true, "key": "agent:main:main", "compacted": true, "archived": "/home/user/.openclaw/agents/main/sessions/transcripts/<id>.jsonl.bak", "kept": 200}