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 للإبقاء على مصدر
الاكتشاف المدمج الواسع مع إعادة صفوف الوكلاء الموجودين حاليًا في الإعدادات فقط.
تستخدم واجهة التحكم هذا الوضع افتراضيًا حتى لا تظهر مخازن الوكلاء المحذوفة
أو الموجودة على القرص فقط مجددًا في عرض الجلسات.
يقرأ --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 --followيعرض openclaw 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 --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:
{ "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 النص المنسوخ. لا يفرض 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 | لا | الاقتطاع إلى آخر N سطرًا بدلًا من التلخيص باستخدام LLM. |
مثال على استجابة التلخيص باستخدام 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}