Gateway
چند Gateway
بیشتر راهاندازیها باید از یک Gateway استفاده کنند، زیرا یک Gateway واحد میتواند چندین اتصال پیامرسانی و agent را مدیریت کند. اگر به جداسازی یا افزونگی قویتری نیاز دارید (مثلاً یک ربات نجات)، Gatewayهای جداگانه را با پروفایلها/پورتهای جداشده اجرا کنید.
بهترین راهاندازی پیشنهادی
برای بیشتر کاربران، سادهترین راهاندازی ربات نجات این است:
- ربات اصلی را روی پروفایل پیشفرض نگه دارید
- ربات نجات را روی
--profile rescueاجرا کنید - برای حساب نجات از یک ربات Telegram کاملاً جدا استفاده کنید
- ربات نجات را روی یک پورت پایه متفاوت، مثل
19789، نگه دارید
این کار ربات نجات را از ربات اصلی جدا نگه میدارد تا اگر ربات اصلی از کار افتاد، بتواند اشکالزدایی کند یا تغییرات پیکربندی را اعمال کند. بین پورتهای پایه حداقل 20 پورت فاصله بگذارید تا پورتهای مشتقشده مرورگر/canvas/CDP هرگز با هم تداخل نداشته باشند.
شروع سریع ربات نجات
از این مسیر بهعنوان مسیر پیشفرض استفاده کنید، مگر اینکه دلیل محکمی برای انجام کار دیگری داشته باشید:
# Rescue bot (separate Telegram bot, separate profile, port 19789)
openclaw --profile rescue onboard
openclaw --profile rescue gateway install --port 19789
اگر ربات اصلی شما از قبل در حال اجرا است، معمولاً همین کافی است.
در طول اجرای openclaw --profile rescue onboard:
- از توکن ربات Telegram جداگانه استفاده کنید
- پروفایل
rescueرا نگه دارید - از یک پورت پایه استفاده کنید که حداقل 20 تا بالاتر از ربات اصلی باشد
- فضای کاری نجات پیشفرض را بپذیرید، مگر اینکه از قبل خودتان یکی را مدیریت میکنید
اگر فرایند onboarding قبلاً سرویس نجات را برای شما نصب کرده باشد، اجرای نهایی
gateway install لازم نیست.
چرا این کار جواب میدهد
ربات نجات مستقل میماند چون موارد زیر را جداگانه دارد:
- پروفایل/پیکربندی
- دایرکتوری وضعیت
- فضای کاری
- پورت پایه (بهعلاوه پورتهای مشتقشده)
- توکن ربات Telegram
برای بیشتر راهاندازیها، برای پروفایل نجات از یک ربات Telegram کاملاً جدا استفاده کنید:
- نگهداشتن آن فقط برای operatorها آسان است
- توکن و هویت ربات جداگانه دارد
- از نصب channel/app ربات اصلی مستقل است
- مسیر بازیابی ساده مبتنی بر DM را وقتی ربات اصلی خراب است فراهم میکند
تغییرات --profile rescue onboard
openclaw --profile rescue onboard از جریان onboarding معمولی استفاده میکند، اما
همه چیز را در یک پروفایل جداگانه مینویسد.
در عمل، این یعنی ربات نجات موارد زیر را جداگانه دریافت میکند:
- فایل پیکربندی
- دایرکتوری وضعیت
- فضای کاری (بهطور پیشفرض
~/.openclaw/workspace-rescue) - نام سرویس مدیریتشده
در غیر این صورت، promptها همان promptهای onboarding معمولی هستند.
راهاندازی عمومی چند Gateway
طرح ربات نجات بالا سادهترین حالت پیشفرض است، اما همین الگوی جداسازی برای هر جفت یا گروهی از Gatewayها روی یک میزبان هم کار میکند.
برای یک راهاندازی عمومیتر، به هر Gateway اضافی پروفایل نامدار خودش و پورت پایه خودش را بدهید:
# main (default profile)
openclaw setup
openclaw gateway --port 18789
# extra gateway
openclaw --profile ops setup
openclaw --profile ops gateway --port 19789
اگر میخواهید هر دو Gateway از پروفایلهای نامدار استفاده کنند، این هم کار میکند:
openclaw --profile main setup
openclaw --profile main gateway --port 18789
openclaw --profile ops setup
openclaw --profile ops gateway --port 19789
سرویسها از همین الگو پیروی میکنند:
openclaw gateway install
openclaw --profile ops gateway install --port 19789
وقتی یک مسیر operator پشتیبان میخواهید، از شروع سریع ربات نجات استفاده کنید. وقتی برای channelها، tenantها، فضاهای کاری یا نقشهای عملیاتی متفاوت چند Gateway بلندمدت میخواهید، از الگوی عمومی پروفایل استفاده کنید.
چکلیست جداسازی
این موارد را برای هر نمونه Gateway یکتا نگه دارید:
OPENCLAW_CONFIG_PATH— فایل پیکربندی مختص هر نمونهOPENCLAW_STATE_DIR— نشستها، اعتبارنامهها و cacheهای مختص هر نمونهagents.defaults.workspace— ریشه فضای کاری مختص هر نمونهgateway.port(یا--port) — برای هر نمونه یکتا- پورتهای مشتقشده مرورگر/canvas/CDP
اگر این موارد مشترک باشند، با raceهای پیکربندی و تداخل پورت مواجه میشوید.
نگاشت پورت (مشتقشده)
پورت پایه = gateway.port (یا OPENCLAW_GATEWAY_PORT / --port).
- پورت سرویس کنترل مرورگر = پایه + 2 (فقط loopback)
- میزبان canvas روی سرور HTTP Gateway سرو میشود (همان پورت
gateway.port) - پورتهای CDP پروفایل مرورگر بهطور خودکار از
browser.controlPort + 9 .. + 108تخصیص داده میشوند
اگر هرکدام از اینها را در پیکربندی یا env بازنویسی میکنید، باید آنها را برای هر نمونه یکتا نگه دارید.
نکات مرورگر/CDP (اشتباه رایج)
browser.cdpUrlرا در چند نمونه روی مقادیر یکسان pin نکنید.- هر نمونه به پورت کنترل مرورگر و بازه CDP خودش نیاز دارد (مشتقشده از پورت gateway خودش).
- اگر به پورتهای CDP صریح نیاز دارید،
browser.profiles.<name>.cdpPortرا برای هر نمونه تنظیم کنید. - Chrome راه دور: از
browser.profiles.<name>.cdpUrlاستفاده کنید (برای هر پروفایل، برای هر نمونه).
نمونه env دستی
OPENCLAW_CONFIG_PATH=~/.openclaw/main.json \
OPENCLAW_STATE_DIR=~/.openclaw \
openclaw gateway --port 18789
OPENCLAW_CONFIG_PATH=~/.openclaw/rescue.json \
OPENCLAW_STATE_DIR=~/.openclaw-rescue \
openclaw gateway --port 19789
بررسیهای سریع
openclaw gateway status --deep
openclaw --profile rescue gateway status --deep
openclaw --profile rescue gateway probe
openclaw status
openclaw --profile rescue status
openclaw --profile rescue browser status
تفسیر:
gateway status --deepکمک میکند سرویسهای قدیمی launchd/systemd/schtasks از نصبهای قدیمیتر شناسایی شوند.- متن هشدار
gateway probeمانندmultiple reachable gateways detectedفقط زمانی مورد انتظار است که عمداً بیش از یک gateway جداشده را اجرا میکنید.