Gateway
راهنمای عملیاتی Gateway
از این صفحه برای راهاندازی روز اول و عملیات روز دوم سرویس Gateway استفاده کنید.
عیبیابی مبتنی بر نشانه با نردبانهای فرمان دقیق و امضاهای لاگ.
راهنمای راهاندازی وظیفهمحور + مرجع کامل پیکربندی.
قرارداد SecretRef، رفتار snapshot زمان اجرا، و عملیات migrate/reload.
قواعد دقیق هدف/مسیر secrets apply و رفتار auth-profile فقط-ارجاع.
راهاندازی محلی ۵ دقیقهای
Gateway را شروع کنید
openclaw gateway --port 18789# debug/trace mirrored to stdioopenclaw gateway --port 18789 --verbose# force-kill listener on selected port, then startopenclaw gateway --forceسلامت سرویس را تأیید کنید
openclaw gateway statusopenclaw statusopenclaw logs --followمبنای سالم: Runtime: running، Connectivity probe: ok، و Capability: ... که با انتظار شما مطابقت دارد. وقتی به اثبات RPC با دامنه خواندن نیاز دارید، نه فقط دسترسیپذیری، از openclaw gateway status --require-rpc استفاده کنید.
آمادگی channel را اعتبارسنجی کنید
openclaw channels status --probeبا یک gateway در دسترس، این فرمان probeهای زنده channel برای هر حساب و auditهای اختیاری را اجرا میکند. اگر gateway در دسترس نباشد، CLI بهجای خروجی probe زنده، به خلاصههای فقط-پیکربندی channel برمیگردد.
مدل زمان اجرا
- یک فرایند همیشه روشن برای مسیریابی، control plane، و اتصالهای channel.
- یک پورت multiplexed واحد برای:
- کنترل/RPC از طریق WebSocket
- APIهای HTTP، سازگار با OpenAI (
/v1/models،/v1/embeddings،/v1/chat/completions،/v1/responses،/tools/invoke) - UI کنترل و hookها
- حالت bind پیشفرض:
loopback. - احراز هویت بهطور پیشفرض الزامی است. راهاندازیهای shared-secret از
gateway.auth.token/gateway.auth.password(یاOPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD) استفاده میکنند، و راهاندازیهای reverse-proxy غیر-loopback میتوانند ازgateway.auth.mode: "trusted-proxy"استفاده کنند.
endpointهای سازگار با OpenAI
سطح سازگاری با بیشترین اهرم در OpenClaw اکنون اینهاست:
GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completionsPOST /v1/responses
چرایی اهمیت این مجموعه:
- بیشتر یکپارچهسازیهای Open WebUI، LobeChat، و LibreChat ابتدا
/v1/modelsرا probe میکنند. - بسیاری از pipelineهای RAG و memory انتظار
/v1/embeddingsرا دارند. - clientهای agent-native بهطور فزایندهای
/v1/responsesرا ترجیح میدهند.
نکته برنامهریزی:
/v1/modelsagent-first است:openclaw،openclaw/default، وopenclaw/<agentId>را برمیگرداند.openclaw/defaultalias پایدار است که همیشه به agent پیشفرض پیکربندیشده نگاشت میشود.- وقتی override برای provider/model پشتیبان میخواهید از
x-openclaw-modelاستفاده کنید؛ در غیر این صورت تنظیمات معمول model و embedding مربوط به agent انتخابشده کنترل را حفظ میکند.
همه اینها روی پورت اصلی Gateway اجرا میشوند و از همان مرز احراز هویت operator مورد اعتماد مانند بقیه API HTTP Gateway استفاده میکنند.
اولویت پورت و bind
| تنظیمات | ترتیب حلوفصل |
|---|---|
| پورت Gateway | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| حالت bind | CLI/override → gateway.bind → loopback |
سرویسهای gateway نصبشده --port حلشده را در metadata ناظر ثبت میکنند. پس از تغییر gateway.port، openclaw doctor --fix یا openclaw gateway install --force را اجرا کنید تا launchd/systemd/schtasks فرایند را روی پورت جدید شروع کند.
راهاندازی Gateway هنگام seed کردن originهای محلی
Control UI برای bindهای غیر-loopback از همان پورت و bind مؤثر استفاده میکند. برای مثال، --bind lan --port 3000
پیش از اجرای اعتبارسنجی زمان اجرا، http://localhost:3000 و http://127.0.0.1:3000 را seed میکند. هر origin مرورگر راهدور، مانند URLهای proxy HTTPS، را صراحتاً به
gateway.controlUi.allowedOrigins اضافه کنید.
حالتهای hot reload
gateway.reload.mode |
رفتار |
|---|---|
off |
بدون بارگذاری مجدد پیکربندی |
hot |
فقط تغییرات hot-safe را اعمال میکند |
restart |
در تغییراتی که نیازمند reload هستند restart میکند |
hybrid (پیشفرض) |
وقتی ایمن باشد hot-apply میکند، و وقتی لازم باشد restart میکند |
مجموعه فرمانهای operator
openclaw gateway statusopenclaw gateway status --deep # adds a system-level service scanopenclaw gateway status --jsonopenclaw gateway installopenclaw gateway restartopenclaw gateway stopopenclaw secrets reloadopenclaw logs --followopenclaw doctorgateway status --deep برای کشف سرویس اضافه است (LaunchDaemons/واحدهای systemd system
/schtasks)، نه یک probe سلامت RPC عمیقتر.
چند Gateway (همان میزبان)
بیشتر نصبها باید روی هر ماشین یک gateway اجرا کنند. یک gateway واحد میتواند چندین agent و channel را میزبانی کند.
فقط وقتی به چند gateway نیاز دارید که عمداً جداسازی یا یک bot نجات بخواهید.
بررسیهای مفید:
openclaw gateway status --deepopenclaw gateway probeانتظار چه چیزی را داشته باشید:
gateway status --deepمیتواندOther gateway-like services detected (best effort)را گزارش کند و وقتی نصبهای stale launchd/systemd/schtasks هنوز وجود دارند، راهنمای cleanup چاپ کند.gateway probeوقتی بیش از یک هدف پاسخ دهد میتواند دربارهmultiple reachable gatewaysهشدار دهد.- اگر این عمدی است، پورتها، config/state، و ریشههای workspace را برای هر gateway جدا کنید.
چکلیست برای هر instance:
gateway.portیکتاOPENCLAW_CONFIG_PATHیکتاOPENCLAW_STATE_DIRیکتاagents.defaults.workspaceیکتا
مثال:
OPENCLAW_CONFIG_PATH=~/.openclaw/a.json OPENCLAW_STATE_DIR=~/.openclaw-a openclaw gateway --port 19001OPENCLAW_CONFIG_PATH=~/.openclaw/b.json OPENCLAW_STATE_DIR=~/.openclaw-b openclaw gateway --port 19002راهاندازی تفصیلی: /gateway/multiple-gateways.
دسترسی راهدور
ترجیحی: Tailscale/VPN. Fallback: تونل SSH.
ssh -N -L 18789:127.0.0.1:18789 user@hostسپس clientها را بهصورت محلی به ws://127.0.0.1:18789 وصل کنید.
ببینید: Gateway راهدور، احراز هویت، Tailscale.
نظارت و چرخهعمر سرویس
برای قابلیت اتکای شبیه production از اجراهای تحت نظارت استفاده کنید.
macOS (launchd)
openclaw gateway installopenclaw gateway statusopenclaw gateway restartopenclaw gateway stopبرای restartها از openclaw gateway restart استفاده کنید. openclaw gateway stop و openclaw gateway start را بهعنوان جایگزین restart زنجیره نکنید.
در macOS، gateway stop بهطور پیشفرض از launchctl bootout استفاده میکند — این کار LaunchAgent را از نشست boot فعلی بدون پایدار کردن disable حذف میکند، بنابراین بازیابی خودکار KeepAlive پس از crashهای غیرمنتظره همچنان کار میکند و gateway start دوباره بهصورت تمیز فعال میشود. برای جلوگیری پایدار از auto-respawn در restartهای سیستم، --disable را پاس کنید: openclaw gateway stop --disable.
labelهای LaunchAgent برابر ai.openclaw.gateway (پیشفرض) یا ai.openclaw.<profile> (profile نامدار) هستند. openclaw doctor drift پیکربندی سرویس را audit و repair میکند.
Linux (systemd user)
openclaw gateway installsystemctl --user enable --now openclaw-gateway[-<profile>].serviceopenclaw gateway statusبرای پایداری پس از logout، lingering را فعال کنید:
sudo loginctl enable-linger <user>نمونه user-unit دستی وقتی به مسیر نصب سفارشی نیاز دارید:
[Unit]Description=OpenClaw GatewayAfter=network-online.targetWants=network-online.target [Service]ExecStart=/usr/local/bin/openclaw gateway --port 18789Restart=alwaysRestartSec=5TimeoutStopSec=30TimeoutStartSec=30SuccessExitStatus=0 143KillMode=control-group [Install]WantedBy=default.targetWindows (native)
openclaw gateway installopenclaw gateway status --jsonopenclaw gateway restartopenclaw gateway stopراهاندازی مدیریتشده native Windows از یک Scheduled Task با نام OpenClaw Gateway
(یا OpenClaw Gateway (<profile>) برای profileهای نامدار) استفاده میکند. اگر ایجاد Scheduled Task
رد شود، OpenClaw به یک launcher پوشه Startup برای هر کاربر برمیگردد
که به gateway.cmd داخل دایرکتوری state اشاره میکند.
Linux (system service)
برای میزبانهای چندکاربره/همیشهروشن از یک system unit استفاده کنید.
sudo systemctl daemon-reloadsudo systemctl enable --now openclaw-gateway[-<profile>].serviceاز همان بدنه سرویس user unit استفاده کنید، اما آن را زیر
/etc/systemd/system/openclaw-gateway[-<profile>].service نصب کنید و اگر binary openclaw شما جای دیگری است
ExecStart= را تنظیم کنید.
اجازه ندهید openclaw doctor --fix هم برای همان profile/port یک سرویس gateway در سطح کاربر نصب کند. وقتی Doctor یک سرویس Gateway OpenClaw در سطح system پیدا کند، از آن نصب خودکار خودداری میکند؛ وقتی system unit مالک چرخهعمر است از OPENCLAW_SERVICE_REPAIR_POLICY=external استفاده کنید.
مسیر سریع profile توسعه
openclaw --dev setupopenclaw --dev gateway --allow-unconfiguredopenclaw --dev statusپیشفرضها شامل state/config جداافتاده و پورت پایه gateway برابر 19001 هستند.
مرجع سریع protocol (نمای operator)
- نخستین frame client باید
connectباشد. - Gateway snapshot
hello-okرا برمیگرداند (presence،health،stateVersion،uptimeMs، limits/policy). hello-ok.features.methods/eventsیک فهرست کشف محافظهکارانه هستند، نه dump تولیدشده از هر مسیر helper قابل فراخوانی.- درخواستها:
req(method, params)→res(ok/payload|error). - eventهای رایج شامل
connect.challenge،agent،chat،session.message،session.tool،sessions.changed،presence،tick،health،heartbeat، eventهای چرخهعمر pairing/approval، وshutdownهستند.
اجرای agent دو مرحلهای است:
- ack پذیرش فوری (
status:"accepted") - پاسخ تکمیل نهایی (
status:"ok"|"error")، همراه با eventهایagentstreamشده در این بین.
مستندات کامل protocol را ببینید: Protocol Gateway.
بررسیهای عملیاتی
زنده بودن
- WS را باز کنید و
connectبفرستید. - انتظار پاسخ
hello-okبا snapshot را داشته باشید.
آمادگی
openclaw gateway statusopenclaw channels status --probeopenclaw healthبازیابی gap
eventها replay نمیشوند. در gapهای sequence، پیش از ادامه state (health، system-presence) را refresh کنید.
امضاهای رایج خرابی
| امضا | مشکل محتمل |
|---|---|
refusing to bind gateway ... without auth |
bind غیر loopback بدون مسیر معتبر احراز هویت Gateway |
another gateway instance is already listening / EADDRINUSE |
تداخل پورت |
Gateway start blocked: set gateway.mode=local |
پیکربندی روی حالت راه دور تنظیم شده، یا نشان حالت محلی از پیکربندی آسیبدیده حذف شده است |
unauthorized هنگام اتصال |
ناهماهنگی احراز هویت بین کلاینت و Gateway |
برای نردبانهای کامل تشخیص، از عیبیابی Gateway استفاده کنید.
تضمینهای ایمنی
- کلاینتهای پروتکل Gateway وقتی Gateway در دسترس نباشد سریع شکست میخورند (بدون fallback ضمنی به کانال مستقیم).
- فریمهای نخست نامعتبر/غیراتصالی رد و بسته میشوند.
- خاموشی graceful رویداد
shutdownرا پیش از بستهشدن سوکت صادر میکند.
مرتبط: