Tools

حالت ارتقایافته

وقتی یک عامل درون sandbox اجرا می‌شود، فرمان‌های exec آن به محیط sandbox محدود هستند. حالت ارتقایافته به عامل اجازه می‌دهد از sandbox خارج شود و به‌جای آن فرمان‌ها را بیرون از sandbox اجرا کند؛ دروازه‌های تأیید نیز قابل پیکربندی هستند.

دستورها

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

دستور کاری که انجام می‌دهد
/elevated on اجرا بیرون از sandbox در مسیر میزبان پیکربندی‌شده، با حفظ تأییدها
/elevated ask همانند on (نام مستعار)
/elevated full اجرا بیرون از sandbox در مسیر میزبان پیکربندی‌شده و رد کردن تأییدها، وقتی سیاست تأیید حالت/میزبان از قبل سهل‌گیرانه است
/elevated off بازگشت به اجرای محدودشده به sandbox

به‌شکل /elev on|off|ask|full نیز در دسترس است.

برای مشاهده سطح فعلی، /elevated را بدون آرگومان ارسال کنید.

نحوه کار

  • بررسی دسترس‌پذیری

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

    json5
    {  tools: {    elevated: {      enabled: true,      allowFrom: {        discord: ["user-id-123"],        whatsapp: ["+15555550123"],      },    },  },}
  • تنظیم سطح

    برای تنظیم پیش‌فرض نشست، پیامی فقط شامل دستور ارسال کنید:

    Code
    /elevated full

    یا آن را به‌صورت درون‌خطی استفاده کنید (فقط برای همان پیام اعمال می‌شود):

    Code
    /elevated on اسکریپت استقرار را اجرا کن
  • اجرای فرمان‌ها بیرون از sandbox

    وقتی حالت ارتقایافته فعال است، فراخوانی‌های exec از sandbox خارج می‌شوند. میزبان مؤثر به‌طور پیش‌فرض gateway است، یا هنگامی که مقصد exec پیکربندی‌شده/نشست node باشد، node است. در حالت full، وقتی سیاست تأیید حالت/میزبان exec حل‌شده از قبل کاملاً سهل‌گیرانه باشد، تأییدهای exec رد می‌شوند (امنیت full، درخواست off)؛ در غیر این صورت، سیاست تأیید عادی همچنان اعمال می‌شود. در حالت on/ask، قواعد تأیید پیکربندی‌شده همیشه اعمال می‌شوند.

  • ترتیب تفکیک

    1. دستور درون‌خطی در پیام (فقط برای همان پیام اعمال می‌شود)
    2. بازنویسی نشست (با ارسال پیامی فقط شامل دستور تنظیم می‌شود)
    3. پیش‌فرض سراسری (agents.defaults.elevatedDefault در پیکربندی)

    دسترس‌پذیری و فهرست‌های مجاز

    • دروازه سراسری: tools.elevated.enabled (باید true باشد)
    • فهرست مجاز فرستنده: tools.elevated.allowFrom با فهرست‌های مختص هر کانال
    • دروازه مختص عامل: agents.entries.*.tools.elevated.enabled (فقط می‌تواند محدودیت بیشتری اعمال کند؛ هر دو دروازه سراسری و مختص عامل باید true باشند)
    • فهرست مجاز مختص عامل: agents.entries.*.tools.elevated.allowFrom (فرستنده باید با هر دو فهرست سراسری و مختص عامل مطابقت داشته باشد)
    • فهرست مجاز جایگزین ارائه‌شده توسط کانال: Pluginهای کانال می‌توانند به‌طور اختیاری از طریق یک هوک تطبیق‌دهنده SDK، فهرست مجاز جایگزینی ارائه کنند که وقتی tools.elevated.allowFrom.<provider> پیکربندی نشده باشد استفاده می‌شود. در حال حاضر هیچ کانال همراهی این هوک را پیاده‌سازی نمی‌کند؛ بنابراین امروزه در عمل هر ارائه‌دهنده به یک ورودی صریح tools.elevated.allowFrom.<provider> نیاز دارد.
    • همه دروازه‌ها باید پذیرفته شوند؛ در غیر این صورت، حالت ارتقایافته در دسترس تلقی نمی‌شود

    قالب‌های ورودی فهرست مجاز:

    پیشوند مورد مطابقت
    (هیچ‌کدام) شناسه فرستنده، E.164 یا فیلد From
    name: نام نمایشی فرستنده
    username: نام کاربری فرستنده
    tag: برچسب فرستنده
    id:، from:، e164: هدف‌گیری صریح هویت

    مواردی که حالت ارتقایافته کنترل نمی‌کند

    • سیاست ابزار: اگر exec توسط سیاست ابزار رد شده باشد، حالت ارتقایافته نمی‌تواند آن را نادیده بگیرد.
    • سیاست انتخاب میزبان: حالت ارتقایافته auto را به یک بازنویسی آزاد میان‌میزبانی تبدیل نمی‌کند. این حالت از قواعد مقصد exec پیکربندی‌شده/نشست استفاده می‌کند و فقط وقتی مقصد از قبل node باشد، node را انتخاب می‌کند.
    • جدا از /exec: دستور /exec پیش‌فرض‌های exec هر نشست (میزبان، امنیت، درخواست، node) را برای فرستندگان مجاز تنظیم می‌کند و به حالت ارتقایافته نیاز ندارد.

    مرتبط

    Was this useful?
    On this page

    On this page