CLI commands

کانال‌ها

Edit source

openclaw channels

حساب‌های کانال گفت‌وگو و وضعیت زمان‌اجرای آن‌ها را روی Gateway مدیریت کنید.

اسناد مرتبط:

فرمان‌های رایج

bash
openclaw channels listopenclaw channels list --allopenclaw channels statusopenclaw channels capabilitiesopenclaw channels capabilities --channel discord --target channel:123openclaw channels capabilities --channel discord --target channel:<voice-channel-id>openclaw channels resolve --channel slack "#general" "@jane"openclaw channels logs --channel all

channels list فقط کانال‌های گفت‌وگو را نشان می‌دهد: به‌طور پیش‌فرض حساب‌های پیکربندی‌شده، همراه با برچسب‌های وضعیت installed، configured و enabled برای هر حساب. برای نمایش کانال‌های همراهی که هنوز حساب پیکربندی‌شده ندارند و کانال‌های کاتالوگ قابل‌نصب که هنوز روی دیسک نیستند، --all را ارسال کنید. ارائه‌دهندگان احراز هویت (OAuth + کلیدهای API) و اسنپ‌شات‌های مصرف/سهمیهٔ ارائه‌دهندهٔ مدل دیگر اینجا چاپ نمی‌شوند؛ برای پروفایل‌های احراز هویت ارائه‌دهنده از openclaw models auth list و برای مصرف از openclaw status یا openclaw models list استفاده کنید.

وضعیت / قابلیت‌ها / resolve / لاگ‌ها

  • channels status: --channel <name>, --probe, --timeout <ms>, --json
  • channels capabilities: --channel <name>, --account <id> (فقط همراه با --channel--target <dest>, --timeout <ms>, --json
  • channels resolve: <entries...>, --channel <name>, --account <id>, --kind <auto|user|group>, --json
  • channels logs: --channel <name|all>, --lines <n>, --json

channels status --probe مسیر زنده است: روی Gateway قابل‌دسترسی، بررسی‌های probeAccount برای هر حساب و بررسی‌های اختیاری auditAccount را اجرا می‌کند، بنابراین خروجی می‌تواند شامل وضعیت انتقال به‌همراه نتایج کاوش مانند works، probe failed، audit ok یا audit failed باشد. اگر Gateway دردسترس نباشد، channels status به‌جای خروجی کاوش زنده، به خلاصه‌های فقط‌پیکربندی بازمی‌گردد.

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

افزودن / حذف حساب‌ها

bash
openclaw channels add --channel telegram --token <bot-token>openclaw channels add --channel nostr --private-key "$NOSTR_PRIVATE_KEY"openclaw channels remove --channel telegram --delete

channels remove فقط روی Pluginهای کانال نصب‌شده/پیکربندی‌شده عمل می‌کند. برای کانال‌های کاتالوگ قابل‌نصب، ابتدا از channels add استفاده کنید. برای Pluginهای کانال دارای پشتوانهٔ زمان‌اجرا، channels remove همچنین از Gateway در حال اجرا می‌خواهد حساب انتخاب‌شده را پیش از به‌روزرسانی پیکربندی متوقف کند، بنابراین غیرفعال‌کردن یا حذف یک حساب باعث نمی‌شود شنوندهٔ قدیمی تا زمان راه‌اندازی مجدد فعال بماند.

سطوح رایج افزودن غیرتعاملی شامل این مواردند:

  • کانال‌های bot-token: --token، --bot-token، --app-token، --token-file
  • فیلدهای انتقال Signal/iMessage: --signal-number، --cli-path، --http-url، --http-host، --http-port، --db-path، --service، --region
  • فیلدهای Google Chat: --webhook-path، --webhook-url، --audience-type، --audience
  • فیلدهای Matrix: --homeserver، --user-id، --access-token، --password، --device-name، --initial-sync-limit
  • فیلدهای Nostr: --private-key، --relay-urls
  • فیلدهای Tlon: --ship، --url، --code، --group-channels، --dm-allowlist، --auto-discover-channels
  • --use-env برای احراز هویت حساب پیش‌فرض با پشتوانهٔ env در موارد پشتیبانی‌شده

اگر هنگام اجرای فرمان افزودن مبتنی بر پرچم لازم باشد یک Plugin کانال نصب شود، OpenClaw بدون بازکردن اعلان تعاملی نصب Plugin، از منبع نصب پیش‌فرض آن کانال استفاده می‌کند.

وقتی openclaw channels add را بدون پرچم اجرا می‌کنید، ویزارد تعاملی می‌تواند این موارد را درخواست کند:

  • شناسه‌های حساب برای هر کانال انتخاب‌شده
  • نام‌های نمایشی اختیاری برای آن حساب‌ها
  • Route these channel accounts to agents now?

اگر اتصال را اکنون تأیید کنید، ویزارد می‌پرسد کدام عامل باید مالک هر حساب کانال پیکربندی‌شده باشد و bindingهای مسیریابی با دامنهٔ حساب را می‌نویسد.

همچنین می‌توانید همین قواعد مسیریابی را بعداً با openclaw agents bindings، openclaw agents bind و openclaw agents unbind مدیریت کنید (نگاه کنید به agents).

وقتی یک حساب غیرپیش‌فرض را به کانالی اضافه می‌کنید که هنوز از تنظیمات سطح‌بالای تک‌حسابی استفاده می‌کند، OpenClaw پیش از نوشتن حساب جدید، مقدارهای سطح‌بالای با دامنهٔ حساب را به نقشهٔ حساب آن کانال ارتقا می‌دهد. بیشتر کانال‌ها این مقدارها را در channels.<channel>.accounts.default قرار می‌دهند، اما کانال‌های همراه می‌توانند به‌جای آن یک حساب ارتقایافتهٔ مطابق و موجود را حفظ کنند. Matrix نمونهٔ فعلی است: اگر یک حساب نام‌دار از قبل وجود داشته باشد، یا defaultAccount به یک حساب نام‌دار موجود اشاره کند، ارتقا آن حساب را به‌جای ایجاد accounts.default جدید حفظ می‌کند.

رفتار مسیریابی سازگار می‌ماند:

  • bindingهای موجود فقط‌کانال (بدون accountId) همچنان با حساب پیش‌فرض مطابقت دارند.
  • channels add در حالت غیرتعاملی bindingها را به‌طور خودکار ایجاد یا بازنویسی نمی‌کند.
  • راه‌اندازی تعاملی می‌تواند به‌صورت اختیاری bindingهای با دامنهٔ حساب اضافه کند.

اگر پیکربندی شما از قبل در وضعیت آمیخته بود (حساب‌های نام‌دار وجود دارند و مقدارهای سطح‌بالای تک‌حسابی هنوز تنظیم شده‌اند)، openclaw doctor --fix را اجرا کنید تا مقدارهای با دامنهٔ حساب به حساب ارتقایافتهٔ انتخاب‌شده برای آن کانال منتقل شوند. بیشتر کانال‌ها به accounts.default ارتقا می‌دهند؛ Matrix می‌تواند به‌جای آن یک هدف نام‌دار/پیش‌فرض موجود را حفظ کند.

ورود و خروج (تعاملی)

bash
openclaw channels login --channel whatsappopenclaw channels logout --channel whatsapp
  • channels login از --verbose پشتیبانی می‌کند.
  • channels login و logout وقتی فقط یک هدف ورود پشتیبانی‌شده پیکربندی شده باشد، می‌توانند کانال را استنتاج کنند.
  • channels logout در صورت دردسترس‌بودن، مسیر زندهٔ Gateway را ترجیح می‌دهد، بنابراین خروج پیش از پاک‌کردن وضعیت احراز هویت کانال، هر شنوندهٔ فعال را متوقف می‌کند. اگر Gateway محلی دردسترس نباشد، به پاک‌سازی محلی احراز هویت بازمی‌گردد.
  • channels login را از یک ترمینال روی میزبان gateway اجرا کنید. exec عامل این جریان ورود تعاملی را مسدود می‌کند؛ ابزارهای ورود بومی کانال برای عامل، مانند whatsapp_login، در صورت موجودبودن باید از گفت‌وگو استفاده شوند.

عیب‌یابی

  • برای کاوش گسترده، openclaw status --deep را اجرا کنید.
  • برای رفع‌های هدایت‌شده از openclaw doctor استفاده کنید.
  • openclaw channels list دیگر اسنپ‌شات‌های مصرف/سهمیهٔ ارائه‌دهندهٔ مدل را چاپ نمی‌کند. برای آن‌ها از openclaw status (نمای کلی) یا openclaw models list (برای هر ارائه‌دهنده) استفاده کنید.
  • وقتی gateway دردسترس نباشد، openclaw channels status به خلاصه‌های فقط‌پیکربندی بازمی‌گردد. اگر اعتبارنامهٔ یک کانال پشتیبانی‌شده از طریق SecretRef پیکربندی شده اما در مسیر فرمان فعلی دردسترس نباشد، آن حساب را به‌عنوان پیکربندی‌شده همراه با یادداشت‌های کاهش‌یافته گزارش می‌کند، نه اینکه آن را پیکربندی‌نشده نشان دهد.

کاوش قابلیت‌ها

راهنمایی‌های قابلیت ارائه‌دهنده (intents/scopes در صورت وجود) را به‌همراه پشتیبانی ایستای ویژگی دریافت کنید:

bash
openclaw channels capabilitiesopenclaw channels capabilities --channel discord --target channel:123

نکات:

  • --channel اختیاری است؛ برای فهرست‌کردن همهٔ کانال‌ها (از جمله افزونه‌ها) آن را حذف کنید.
  • --account فقط همراه با --channel معتبر است.
  • --target مقدار channel:<id> یا یک شناسهٔ عددی خام کانال را می‌پذیرد و فقط برای Discord اعمال می‌شود. برای کانال‌های صوتی Discord، بررسی مجوز، نبود ViewChannel، Connect، Speak، SendMessages و ReadMessageHistory را پرچم‌گذاری می‌کند.
  • کاوش‌ها مختص ارائه‌دهنده هستند: intents در Discord + مجوزهای اختیاری کانال؛ دامنه‌های بات + کاربر در Slack؛ پرچم‌های بات Telegram + Webhook؛ نسخهٔ daemon در Signal؛ توکن برنامهٔ Microsoft Teams + نقش‌ها/دامنه‌های Graph (در موارد شناخته‌شده با توضیح). کانال‌های بدون کاوش، Probe: unavailable را گزارش می‌کنند.

تبدیل نام‌ها به شناسه‌ها

نام‌های کانال/کاربر را با استفاده از فهرست ارائه‌دهنده به شناسه تبدیل کنید:

bash
openclaw channels resolve --channel slack "#general" "@jane"openclaw channels resolve --channel discord "My Server/#support" "@someone"openclaw channels resolve --channel matrix "Project Room"

نکات:

  • برای اجبار نوع هدف از --kind user|group|auto استفاده کنید.
  • وقتی چند ورودی نام یکسانی دارند، resolve مطابقت‌های فعال را ترجیح می‌دهد.
  • channels resolve فقط‌خواندنی است. اگر حساب انتخاب‌شده از طریق SecretRef پیکربندی شده باشد اما آن اعتبارنامه در مسیر فرمان فعلی دردسترس نباشد، فرمان به‌جای متوقف‌کردن کل اجرا، نتایج resolveنشدهٔ کاهش‌یافته را همراه با یادداشت‌ها برمی‌گرداند.
  • channels resolve Pluginهای کانال را نصب نمی‌کند. پیش از resolve نام‌ها برای یک کانال کاتالوگ قابل‌نصب، از channels add --channel <name> استفاده کنید.

مرتبط

Was this useful?