Tools
حالت ارتقایافته
وقتی یک عامل درون sandbox اجرا میشود، فرمانهای exec آن به محیط sandbox محدود هستند. حالت ارتقایافته به عامل اجازه میدهد از sandbox خارج شود و بهجای آن فرمانها را بیرون از sandbox اجرا کند؛ دروازههای تأیید نیز قابل پیکربندی هستند.
دستورها
حالت ارتقایافته را برای هر نشست با فرمانهای اسلش کنترل کنید:
| دستور | کاری که انجام میدهد |
|---|---|
/elevated on |
اجرا بیرون از sandbox در مسیر میزبان پیکربندیشده، با حفظ تأییدها |
/elevated ask |
همانند on (نام مستعار) |
/elevated full |
اجرا بیرون از sandbox در مسیر میزبان پیکربندیشده و رد کردن تأییدها، وقتی سیاست تأیید حالت/میزبان از قبل سهلگیرانه است |
/elevated off |
بازگشت به اجرای محدودشده به sandbox |
بهشکل /elev on|off|ask|full نیز در دسترس است.
برای مشاهده سطح فعلی، /elevated را بدون آرگومان ارسال کنید.
نحوه کار
بررسی دسترسپذیری
حالت ارتقایافته باید در پیکربندی فعال باشد و فرستنده باید در فهرست مجاز قرار داشته باشد:
{ tools: { elevated: { enabled: true, allowFrom: { discord: ["user-id-123"], whatsapp: ["+15555550123"], }, }, },}تنظیم سطح
برای تنظیم پیشفرض نشست، پیامی فقط شامل دستور ارسال کنید:
/elevated fullیا آن را بهصورت درونخطی استفاده کنید (فقط برای همان پیام اعمال میشود):
/elevated on اسکریپت استقرار را اجرا کناجرای فرمانها بیرون از sandbox
وقتی حالت ارتقایافته فعال است، فراخوانیهای exec از sandbox خارج میشوند. میزبان مؤثر بهطور پیشفرض
gateway است، یا هنگامی که مقصد exec پیکربندیشده/نشست
node باشد، node است. در حالت full، وقتی سیاست تأیید حالت/میزبان exec حلشده
از قبل کاملاً سهلگیرانه باشد، تأییدهای exec رد میشوند (امنیت full،
درخواست off)؛ در غیر این صورت، سیاست تأیید عادی همچنان اعمال میشود. در
حالت on/ask، قواعد تأیید پیکربندیشده همیشه اعمال میشوند.
ترتیب تفکیک
- دستور درونخطی در پیام (فقط برای همان پیام اعمال میشود)
- بازنویسی نشست (با ارسال پیامی فقط شامل دستور تنظیم میشود)
- پیشفرض سراسری (
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) را برای فرستندگان مجاز تنظیم میکند و به حالت ارتقایافته نیاز ندارد.