Sessions and memory

اتصال کانال

داک‌کردن کانال نوعی انتقال تماس برای یک نشست OpenClaw است. این کار زمینهٔ همان گفت‌وگو را حفظ می‌کند، اما محل تحویل پاسخ‌های آیندهٔ آن نشست را تغییر می‌دهد. داک‌کردن فقط از گفت‌وگوی مستقیم کار می‌کند و در گفت‌وگوی گروهی اجرا نمی‌شود.

مثال

Alice می‌تواند در Telegram و Discord به OpenClaw پیام دهد:

json5
{  session: {    identityLinks: {      alice: ["telegram:123", "discord:456"],    },  },}

اگر Alice این دستور را از یک گفت‌وگوی مستقیم Telegram ارسال کند:

text
/dock_discord

OpenClaw زمینهٔ نشست فعلی را حفظ می‌کند و مسیر پاسخ را تغییر می‌دهد:

پیش از داک‌کردن پس از /dock_discord
پاسخ‌ها به Telegram 123 می‌روند پاسخ‌ها به Discord 456 می‌روند

نشست دوباره ایجاد نمی‌شود. تاریخچهٔ رونوشت به همان نشست پیوسته باقی می‌ماند.

چرا از آن استفاده کنیم

هنگامی از داک‌کردن استفاده کنید که کاری در یک برنامهٔ گفت‌وگو آغاز می‌شود، اما پاسخ‌های بعدی باید در جای دیگری تحویل داده شوند.

روند رایج:

  1. یک کار عامل را از Telegram آغاز کنید.
  2. به Discord بروید که در آن کار را هماهنگ می‌کنید.
  3. از گفت‌وگوی مستقیم Telegram، دستور /dock_discord را ارسال کنید.
  4. همان نشست OpenClaw را حفظ کنید، اما پاسخ‌های آینده را در Discord دریافت کنید.

پیکربندی الزامی

داک‌کردن به session.identityLinks نیاز دارد. فرستندهٔ مبدأ و همتای مقصد باید در یک گروه هویتی باشند:

json5
{  session: {    identityLinks: {      alice: ["telegram:123", "discord:456", "slack:U123"],    },  },}

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

مقدار معنا
telegram:123 شناسهٔ فرستندهٔ Telegram، 123
discord:456 شناسهٔ همتای مستقیم Discord، 456
slack:U123 شناسهٔ کاربر Slack، U123

کلید متعارف (alice در بالا) فقط نام گروه هویتی مشترک است. دستورهای داک‌کردن از مقادیر دارای پیشوند کانال استفاده می‌کنند تا اثبات کنند فرستندهٔ مبدأ و همتای مقصد یک شخص هستند.

دستورها

OpenClaw برای هر Plugin کانال بارگذاری‌شده که از دستورهای بومی پشتیبانی می‌کند، یک دستور /dock-<channel> ایجاد می‌کند؛ بنابراین با افزودن Pluginها، این فهرست گسترش می‌یابد. Pluginهای همراهی که اکنون از آن پشتیبانی می‌کنند:

کانال مقصد دستور نام مستعار
Discord /dock-discord /dock_discord
Mattermost /dock-mattermost /dock_mattermost
Slack /dock-slack /dock_slack
Telegram /dock-telegram /dock_telegram

شکل دارای زیرخط، در محیط‌هایی مانند Telegram که دستورهای اسلش را مستقیماً ارائه می‌کنند، نام دستور بومی نیز هست.

چه چیزهایی تغییر می‌کنند

داک‌کردن فیلدهای تحویل نشست فعال را به‌روزرسانی می‌کند:

فیلد نشست نمونه پس از /dock_discord
lastChannel discord
lastTo 456
lastAccountId حساب کانال مقصد، یا default

این فیلدها در مخزن نشست ماندگار می‌شوند و برای تحویل پاسخ‌های بعدی آن نشست به کار می‌روند.

چه چیزهایی تغییر نمی‌کنند

داک‌کردن موارد زیر را انجام نمی‌دهد:

  • ایجاد حساب‌های کانال
  • اتصال یک ربات جدید Discord، Telegram، Slack یا Mattermost
  • اعطای دسترسی به یک کاربر
  • دور زدن فهرست‌های مجاز کانال یا سیاست‌های پیام مستقیم
  • انتقال تاریخچهٔ رونوشت به نشستی دیگر
  • واداشتن کاربران نامرتبط به اشتراک‌گذاری یک نشست

این کار فقط مسیر تحویل نشست فعلی را تغییر می‌دهد.

عیب‌یابی

دستور می‌گوید فرستنده پیوند داده نشده است.

فرستندهٔ فعلی و همتای مقصد را به یک گروه مشترک session.identityLinks اضافه کنید. برای مثال، اگر فرستندهٔ Telegram با شناسهٔ 123 باید به همتای Discord با شناسهٔ 456 داک شود، هر دو مقدار telegram:123 و discord:456 را وارد کنید.

دستور می‌گوید داک‌کردن فقط از گفت‌وگوهای مستقیم در دسترس است.

دستور داک‌کردن را از یک گفت‌وگوی مستقیم با OpenClaw ارسال کنید، نه از یک گفت‌وگوی گروهی.

دستور می‌گوید هیچ نشست فعالی وجود ندارد.

از یک نشست موجودِ گفت‌وگوی مستقیم داک کنید. دستور به یک ورودی نشست فعال نیاز دارد تا بتواند مسیر جدید را ماندگار کند.

پاسخ‌ها همچنان به کانال قدیمی می‌روند.

بررسی کنید که دستور با پیام موفقیت پاسخ داده باشد و تأیید کنید شناسهٔ همتای مقصد با شناسهٔ مورد استفادهٔ آن کانال مطابقت دارد. داک‌کردن فقط مسیر نشست فعال را تغییر می‌دهد؛ ممکن است نشست دیگری همچنان به جای دیگری مسیریابی شود.

باید به کانال قبلی برگردم.

دستور متناظر با کانال اصلی، مانند /dock_telegram یا /dock-telegram، را از یک فرستندهٔ پیوندخورده ارسال کنید.

Was this useful?
On this page

On this page