Discord
عامل Triggerfish خود را به Discord متصل کنید تا بتواند در کانالهای سرور و پیامهای مستقیم پاسخ دهد. آداپتور از discord.js برای اتصال به Discord Gateway استفاده میکند.
طبقهبندی پیشفرض
Discord بهصورت پیشفرض طبقهبندی PUBLIC دارد. سرورهای Discord اغلب شامل ترکیبی از اعضای مورد اعتماد و بازدیدکنندگان عمومی هستند، بنابراین PUBLIC پیشفرض امن است. اگر سرور شما خصوصی و مورد اعتماد است، میتوانید این را افزایش دهید.
راهاندازی
مرحله ۱: ایجاد برنامه Discord
۱. به پرتال توسعهدهندگان Discord بروید ۲. روی New Application کلیک کنید ۳. برنامه خود را نامگذاری کنید (مثلاً «Triggerfish») ۴. روی Create کلیک کنید
مرحله ۲: ایجاد کاربر ربات
۱. در برنامه خود، به Bot در نوار کناری بروید ۲. روی Add Bot کلیک کنید (اگر قبلاً ایجاد نشده) ۳. زیر نام کاربری ربات، روی Reset Token کلیک کنید تا توکن جدید تولید شود ۴. توکن ربات را کپی کنید
توکن خود را مخفی نگه دارید توکن ربات شما کنترل کامل ربات را اعطا میکند. هرگز آن را در کنترل منبع ثبت نکنید یا به اشتراک عمومی نگذارید. :::
مرحله ۳: پیکربندی Intentهای ممتاز
همچنان در صفحه Bot، این Intentهای ممتاز Gateway را فعال کنید:
- Message Content Intent — برای خواندن محتوای پیام الزامی است
- Server Members Intent — اختیاری، برای جستجوی اعضا
مرحله ۴: دریافت شناسه کاربر Discord
۱. Discord را باز کنید ۲. به Settings > Advanced بروید و Developer Mode را فعال کنید ۳. در هر جای Discord روی نام کاربری خود کلیک کنید ۴. روی Copy User ID کلیک کنید
این شناسه snowflake است که Triggerfish برای تأیید هویت مالک استفاده میکند.
مرحله ۵: تولید لینک دعوت
۱. در پرتال توسعهدهندگان، به OAuth2 > URL Generator بروید ۲. زیر Scopes، bot را انتخاب کنید ۳. زیر Bot Permissions، انتخاب کنید:
- Send Messages
- Read Message History
- View Channels ۴. URL تولیدشده را کپی کنید و در مرورگر باز کنید ۵. سرور مورد نظر برای افزودن ربات را انتخاب کنید و روی Authorize کلیک کنید
مرحله ۶: پیکربندی Triggerfish
کانال Discord را به triggerfish.yaml اضافه کنید:
yaml
channels:
discord:
# botToken در کلیدزنجیر سیستمعامل ذخیره شده
ownerId: "123456789012345678"| گزینه | نوع | الزامی | توضیحات |
|---|---|---|---|
botToken | string | بله | توکن ربات Discord |
ownerId | string | توصیهشده | شناسه کاربر Discord شما (snowflake) برای تأیید مالک |
classification | string | خیر | سطح طبقهبندی (پیشفرض: PUBLIC) |
مرحله ۷: شروع Triggerfish
bash
triggerfish stop && triggerfish startدر کانالی که ربات حاضر است پیامی بفرستید یا مستقیماً به آن DM بدهید تا اتصال را تأیید کنید.
هویت مالک
Triggerfish وضعیت مالک را با مقایسه شناسه کاربر Discord فرستنده با ownerId پیکربندیشده تعیین میکند. این بررسی در کد قبل از دیدن پیام توسط LLM رخ میدهد:
- مطابقت — پیام دستور مالک است
- عدم مطابقت — پیام ورودی خارجی با Taint
PUBLICاست
اگر ownerId پیکربندی نشده باشد، تمام پیامها بهعنوان آمده از مالک برخورد میشوند.
همیشه شناسه مالک را تنظیم کنید اگر ربات شما در سروری با اعضای دیگر است، همیشه ownerId را پیکربندی کنید. بدون آن، هر عضو سرور میتواند به عامل شما دستور بدهد. :::
تقسیمبندی پیام
Discord محدودیت ۲٬۰۰۰ کاراکتری دارد. وقتی عامل پاسخی بلندتر از این تولید میکند، Triggerfish بهصورت خودکار آن را به چند پیام تقسیم میکند. تقسیمکننده روی خطوط جدید یا فاصلهها برای حفظ خوانایی میشکند.
رفتار ربات
آداپتور Discord:
- پیامهای خود را نادیده میگیرد — ربات به پیامهایی که خودش میفرستد پاسخ نمیدهد
- در تمام کانالهای قابل دسترس گوش میدهد — کانالهای سرور، DM گروهی و پیامهای مستقیم
- نیاز به Message Content Intent دارد — بدون این، ربات رویدادهای پیام خالی دریافت میکند
نشانگرهای تایپ
Triggerfish وقتی عامل در حال پردازش درخواست است، نشانگرهای تایپ به Discord میفرستد. Discord رویدادهای تایپ کاربران را بهصورت قابل اعتماد به رباتها افشا نمیکند، بنابراین این فقط ارسال است.
چت گروهی
ربات میتواند در کانالهای سرور شرکت کند. رفتار گروه را پیکربندی کنید:
yaml
groups:
default_behavior: "mentioned-only"
overrides:
- channel: discord
behavior: "always"| رفتار | توضیحات |
|---|---|
mentioned-only | فقط وقتی ربات @mention شود پاسخ میدهد |
always | به تمام پیامها در کانال پاسخ میدهد |
تغییر طبقهبندی
yaml
channels:
discord:
# botToken در کلیدزنجیر سیستمعامل ذخیره شده
ownerId: "123456789012345678"
classification: INTERNALسطوح معتبر: PUBLIC، INTERNAL، CONFIDENTIAL، RESTRICTED.
