Sessions and memory
اتصال کانال
داککردن کانال، انتقال تماس برای یک نشست OpenClaw است. این کار همان بافت گفتگو را حفظ میکند، اما محل تحویل پاسخهای آینده آن نشست را تغییر میدهد. داککردن فقط از گفتگوی مستقیم کار میکند؛ از گفتگوی گروهی اجرا نمیشود.
مثال
Alice میتواند در Telegram و Discord به OpenClaw پیام دهد:
{ session: { identityLinks: { alice: ["telegram:123", "discord:456"], }, },}اگر Alice این دستور را از یک گفتگوی مستقیم Telegram ارسال کند:
/dock_discordOpenClaw بافت نشست فعلی را حفظ میکند و مسیر پاسخ را تغییر میدهد:
| پیش از داککردن | پس از /dock_discord |
|---|---|
پاسخها به Telegram 123 میروند |
پاسخها به Discord 456 میروند |
نشست دوباره ایجاد نمیشود. تاریخچه رونوشت همچنان به همان نشست متصل میماند.
چرا از آن استفاده کنیم
وقتی کاری در یک برنامه گفتگو آغاز میشود، اما پاسخهای بعدی باید جای دیگری تحویل داده شوند، از داککردن استفاده کنید.
روند رایج:
- یک وظیفه عامل را از Telegram آغاز کنید.
- به Discord بروید، جایی که مشغول هماهنگی کار هستید.
/dock_discordرا از گفتگوی مستقیم Telegram ارسال کنید.- همان نشست OpenClaw را حفظ کنید، اما پاسخهای آینده را در Discord دریافت کنید.
پیکربندی الزامی
داککردن به session.identityLinks نیاز دارد. فرستنده مبدأ و همتای مقصد
باید در یک گروه هویتی باشند:
{ 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، را از یک فرستنده پیونددادهشده ارسال کنید.