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