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. /dock_discord را از گفتگوی مستقیم Telegram ارسال کنید.
  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