Gateway

بررسی‌های سلامت

راهنمای کوتاه برای بررسی اتصال کانال بدون حدس‌زدن.

بررسی‌های سریع

  • openclaw status — خلاصه محلی: دسترسی‌پذیری/حالت Gateway، راهنمای به‌روزرسانی، عمر احراز هویت کانال متصل، نشست‌ها + فعالیت اخیر.
  • openclaw status --all — عیب‌یابی کامل محلی (فقط‌خواندنی، رنگی، ایمن برای چسباندن جهت اشکال‌زدایی).
  • openclaw status --deep — از Gateway در حال اجرا یک آزمون سلامت زنده درخواست می‌کند (health با probe:true)، شامل آزمون‌های کانال برای هر حساب در صورت پشتیبانی.
  • openclaw health — از Gateway در حال اجرا نمای سلامت آن را درخواست می‌کند (فقط WS؛ بدون سوکت‌های مستقیم کانال از CLI).
  • openclaw health --verbose — یک آزمون سلامت زنده را اجباری می‌کند و جزئیات اتصال Gateway را چاپ می‌کند.
  • openclaw health --json — خروجی نمای سلامت قابل‌خواندن توسط ماشین.
  • /status را به‌صورت یک پیام مستقل در WhatsApp/WebChat بفرستید تا بدون فراخوانی عامل، پاسخ وضعیت بگیرید.
  • لاگ‌ها: /tmp/openclaw/openclaw-*.log را tail کنید و برای web-heartbeat، web-reconnect، web-auto-reply، web-inbound فیلتر کنید.

برای Discord و دیگر ارائه‌دهندگان چت، ردیف‌های نشست نشان‌دهنده زنده‌بودن سوکت نیستند. openclaw sessions، sessions.list در Gateway، و ابزار sessions_list عامل وضعیت ذخیره‌شده مکالمه را می‌خوانند. یک ارائه‌دهنده می‌تواند دوباره متصل شود و وضعیت کانال سالم نشان دهد، پیش از آن‌که هیچ ردیف نشست جدیدی ساخته شود. برای بررسی‌های اتصال زنده، از فرمان‌های وضعیت کانال و سلامت بالا استفاده کنید.

عیب‌یابی عمیق

  • اعتبارنامه‌ها روی دیسک: ls -l ~/.openclaw/credentials/whatsapp/<accountId>/creds.json (mtime باید جدید باشد).
  • ذخیره‌گاه نشست: ls -l ~/.openclaw/agents/<agentId>/sessions/sessions.json (مسیر می‌تواند در پیکربندی بازنویسی شود). شمارش و گیرندگان اخیر از طریق status نمایش داده می‌شوند.
  • جریان پیوند مجدد: وقتی کدهای وضعیت 409–515 یا loggedOut در لاگ‌ها ظاهر می‌شوند، openclaw channels logout && openclaw channels login --verbose. (نکته: جریان ورود QR پس از جفت‌سازی، برای وضعیت 515 یک‌بار خودکار دوباره راه‌اندازی می‌شود.)
  • عیب‌یابی‌ها به‌صورت پیش‌فرض فعال هستند. Gateway واقعیت‌های عملیاتی را ثبت می‌کند مگر این‌که diagnostics.enabled: false تنظیم شده باشد. رویدادهای حافظه، شمارش بایت RSS/heap، فشار آستانه، و فشار رشد را ثبت می‌کنند. هشدارهای زنده‌بودن، وقتی فرایند در حال اجراست اما اشباع شده است، تأخیر event-loop، بهره‌برداری event-loop، نسبت هسته CPU، و شمار نشست‌های فعال/منتظر/در صف را ثبت می‌کنند. رویدادهای payload بیش‌ازحد بزرگ ثبت می‌کنند چه چیزی رد، کوتاه، یا بخش‌بندی شده است، به‌همراه اندازه‌ها و محدودیت‌ها در صورت موجود بودن. آن‌ها متن پیام، محتوای پیوست، بدنه Webhook، بدنه خام درخواست یا پاسخ، توکن‌ها، کوکی‌ها، یا مقادیر محرمانه را ثبت نمی‌کنند. همان Heartbeat ضبط‌کننده محدود پایداری را شروع می‌کند که از طریق openclaw gateway stability یا Gateway RPC به نام diagnostics.stability در دسترس است. خروج‌های مرگبار Gateway، timeoutهای خاموش‌سازی، و شکست‌های شروع پس از راه‌اندازی مجدد، وقتی رویدادی وجود داشته باشد، تازه‌ترین نمای ضبط‌کننده را زیر ~/.openclaw/logs/stability/ ذخیره می‌کنند؛ تازه‌ترین بسته ذخیره‌شده را با openclaw gateway stability --bundle latest بررسی کنید.
  • برای گزارش‌های باگ، openclaw gateway diagnostics export را اجرا کنید و zip تولیدشده را پیوست کنید. خروجی export یک خلاصه Markdown، تازه‌ترین بسته پایداری، فراداده لاگ پاک‌سازی‌شده، نماهای وضعیت/سلامت پاک‌سازی‌شده Gateway، و شکل پیکربندی را ترکیب می‌کند. این خروجی برای اشتراک‌گذاری ساخته شده است: متن چت، بدنه‌های Webhook، خروجی‌های ابزار، اعتبارنامه‌ها، کوکی‌ها، شناسه‌های حساب/پیام، و مقادیر محرمانه حذف یا پوشانده می‌شوند. خروجی عیب‌یابی را ببینید.

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

  • gateway.channelHealthCheckMinutes: Gateway هر چند وقت یک‌بار سلامت کانال را بررسی کند. پیش‌فرض: 5. برای غیرفعال کردن راه‌اندازی مجدد توسط پایشگر سلامت به‌صورت سراسری، 0 تنظیم کنید.
  • gateway.channelStaleEventThresholdMinutes: یک کانال متصل چه مدت می‌تواند بی‌کار بماند پیش از آن‌که پایشگر سلامت آن را stale بداند و دوباره راه‌اندازی کند. پیش‌فرض: 30. این مقدار را بزرگ‌تر یا برابر با gateway.channelHealthCheckMinutes نگه دارید.
  • gateway.channelMaxRestartsPerHour: سقف لغزان یک‌ساعته برای راه‌اندازی‌های مجدد پایشگر سلامت به‌ازای هر کانال/حساب. پیش‌فرض: 10.
  • channels.<provider>.healthMonitor.enabled: راه‌اندازی‌های مجدد پایشگر سلامت را برای یک کانال مشخص غیرفعال کنید، در حالی که پایش سراسری فعال می‌ماند.
  • channels.<provider>.accounts.<accountId>.healthMonitor.enabled: بازنویسی چندحسابی که بر تنظیم سطح کانال اولویت دارد.
  • این بازنویسی‌های هر کانال، برای پایشگرهای داخلی کانال که امروز آن‌ها را ارائه می‌کنند اعمال می‌شوند: Discord، Google Chat، iMessage، Microsoft Teams، Signal، Slack، Telegram، و WhatsApp.

وقتی چیزی شکست می‌خورد

  • logged out یا وضعیت 409–515 → با openclaw channels logout و سپس openclaw channels login دوباره پیوند دهید.
  • Gateway دسترس‌ناپذیر است → آن را شروع کنید: openclaw gateway --port 18789 (اگر پورت مشغول است از --force استفاده کنید).
  • پیام ورودی وجود ندارد → تأیید کنید تلفن متصل آنلاین است و فرستنده مجاز است (channels.whatsapp.allowFrom)؛ برای چت‌های گروهی، مطمئن شوید allowlist + قواعد اشاره مطابقت دارند (channels.whatsapp.groups، agents.list[].groupChat.mentionPatterns).

فرمان اختصاصی "health"

openclaw health از Gateway در حال اجرا نمای سلامت آن را درخواست می‌کند (بدون سوکت‌های مستقیم کانال از CLI). به‌صورت پیش‌فرض می‌تواند یک نمای تازه کش‌شده Gateway را برگرداند؛ سپس Gateway آن cache را در پس‌زمینه تازه‌سازی می‌کند. openclaw health --verbose به‌جای آن یک آزمون زنده را اجباری می‌کند. این فرمان اعتبارنامه‌های متصل/عمر احراز هویت را در صورت موجود بودن، خلاصه‌های آزمون هر کانال، خلاصه ذخیره‌گاه نشست، و مدت آزمون را گزارش می‌کند. اگر Gateway دسترس‌ناپذیر باشد یا آزمون شکست بخورد/timeout شود، با مقدار غیرصفر خارج می‌شود.

گزینه‌ها:

  • --json: خروجی JSON قابل‌خواندن توسط ماشین
  • --timeout <ms>: بازنویسی timeout پیش‌فرض 10s برای آزمون
  • --verbose: اجبار یک آزمون زنده و چاپ جزئیات اتصال Gateway
  • --debug: نام مستعار برای --verbose

نمای سلامت شامل این موارد است: ok (بولی)، ts (timestamp)، durationMs (زمان آزمون)، وضعیت هر کانال، دسترس‌پذیری عامل، و خلاصه ذخیره‌گاه نشست.

مرتبط