macOS companion app

وب‌چت (macOS)

اپلیکیشن نوار منوی macOS، رابط کاربری WebChat را به‌صورت یک نمای بومی SwiftUI در خود جای می‌دهد. این اپلیکیشن به Gateway متصل می‌شود و به‌طور پیش‌فرض از نشست اصلی عامل انتخاب‌شده استفاده می‌کند (main، یا هنگامی که session.scope برابر با global است، global).

پنجره کامل گفت‌وگو یک نمای تقسیم‌شده بومی است:

  • نوار کناری نشست‌ها: فهرست قابل‌جست‌وجوی نشست‌ها با بخش‌های سنجاق‌شده و اخیر، نشانگرهای خوانده‌نشده و منوهای زمینه‌ای برای سنجاق‌کردن/برداشتن سنجاق، کپی‌کردن کلید نشست و حذف. یک دکمه نوار ابزار (یا Cmd-N) از طریق sessions.create یک نشست جدید واقعی ایجاد می‌کند.
  • نوار ابزار پنجره: حلقه میزان استفاده از زمینه (توکن‌ها و هزینه نشست، همراه با یک کنش فشرده)، انتخاب‌گر سطح تفکر، انتخاب‌گر مدل و منوی کنش‌های نشست (نشست جدید، تازه‌سازی، کپی کلید نشست، برون‌بری رونوشت، فشرده‌سازی، پاک‌کردن تاریخچه).
  • رونوشت و کادر نگارش: پیام‌های دستیار به‌صورت متن ساده همراه با آواتار و پیام‌های کاربر به‌شکل حباب‌های رنگی برجسته نمایش داده می‌شوند. تایپ‌کردن /، تکمیل خودکار فرمان‌های اسلش را که از commands.list پشتیبانی می‌شود باز می‌کند و پیمایش با کلیدهای جهت‌نما/Tab/Return/Escape انجام می‌شود. برای کپی‌کردن پیام، روی آن راست‌کلیک کنید.

پنل گفت‌وگوی سریع متصل به نوار منو، چیدمان فشرده تک‌ستونه را با انتخاب‌گرهای درون‌خطی حفظ می‌کند.

  • حالت محلی: مستقیماً به WebSocket محلی Gateway متصل می‌شود.
  • حالت راه دور: درگاه کنترل Gateway را از طریق SSH هدایت می‌کند و از آن تونل به‌عنوان صفحه داده استفاده می‌کند.

اجرا و اشکال‌زدایی

  • دستی: منوی Lobster -> "Open Chat".

  • بازشدن خودکار برای آزمایش:

    bash
    dist/OpenClaw.app/Contents/MacOS/OpenClaw --chat

    (--webchat به‌عنوان نام مستعار قدیمی پذیرفته می‌شود.)

  • گزارش‌ها: ./scripts/clawlog.sh (زیرسامانه ai.openclaw، دسته WebChatSwiftUI).

نحوه اتصال اجزا

  • صفحه داده: متدهای WS در Gateway شامل chat.history، chat.send، chat.abort و chat.inject و رویدادهای chat، agent، presence، tick و health.
  • chat.history یک رونوشت نرمال‌شده برای نمایش برمی‌گرداند: برچسب‌های دستورالعمل درون‌خطی از متن قابل‌مشاهده حذف می‌شوند؛ بارهای XML فراخوانی ابزار به‌صورت متن ساده (<tool_call>، <function_call>، <tool_calls>، <function_calls>، از جمله بلوک‌های ناقص) و توکن‌های کنترلی فاش‌شده مدل حذف می‌شوند؛ ردیف‌های دستیار که صرفاً شامل توکن سکوت مانند NO_REPLY/no_reply دقیق هستند کنار گذاشته می‌شوند؛ و ردیف‌های بیش‌ازحد بزرگ ممکن است با یک جای‌نگهدار کوتاه‌شده جایگزین شوند.
  • نشست: مطابق توضیح بالا، به‌طور پیش‌فرض نشست اصلی است؛ رابط کاربری می‌تواند بین نشست‌ها جابه‌جا شود.
  • راه‌اندازی اولیه از یک نشست اختصاصی استفاده می‌کند تا تنظیمات اجرای نخست جدا باقی بماند.
  • حافظه نهان آفلاین: اپلیکیشن برای هر Gateway، یک حافظه نهان کوچک و فقط‌خواندنی از نشست‌ها و رونوشت‌های اخیر گفت‌وگو نگه می‌دارد (~/Library/Application Support/OpenClaw/chat-cache.sqlite): هنگام اجرای سرد، آخرین رونوشت شناخته‌شده بلافاصله نمایش داده می‌شود و پس از پاسخ Gateway تازه‌سازی می‌گردد؛ همچنین هنگام قطع اتصال، مرور گفت‌وگوهای اخیر همچنان ممکن است (ارسال تا زمان برقراری دوباره اتصال غیرفعال می‌ماند).

سطح امنیتی

  • حالت راه دور فقط درگاه کنترل WebSocket در Gateway را از طریق SSH هدایت می‌کند.

محدودیت‌های شناخته‌شده

  • رابط کاربری برای نشست‌های گفت‌وگو بهینه شده است، نه برای یک محیط ایزوله کامل مرورگر.

مرتبط

Was this useful?
On this page

On this page