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 بروید که در آن کار را هماهنگ میکنید.
- از گفتوگوی مستقیم Telegram، دستور
/dock_discordرا ارسال کنید. - همان نشست 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، را
از یک فرستندهٔ پیوندخورده ارسال کنید.