Підтвердження exec
Підтвердження exec — це запобіжний механізм companion app / вузла-хоста для того, щоб дозволити sandbox-агенту запускати команди на реальному хості (gateway або node). Думайте про це як про запобіжне блокування:
команди дозволяються лише тоді, коли політика + allowlist + (необов’язкове) підтвердження користувача збігаються.
Підтвердження exec діють додатково до політики інструментів і elevated gating (якщо тільки elevated не встановлено в full, що пропускає підтвердження).
Ефективна політика — це суворіше з tools.exec.* і типових значень підтверджень; якщо поле підтверджень пропущено, використовується значення tools.exec.
Host exec також використовує локальний стан підтверджень на цій машині. Локальне для хоста
ask: "always" у ~/.openclaw/exec-approvals.json продовжує показувати запити, навіть якщо
типові значення сесії або конфігурації вимагають ask: "on-miss".
Використовуйте openclaw approvals get, openclaw approvals get --gateway або
openclaw approvals get --node <id|name|ip>, щоб переглянути запитану політику,
джерела політики хоста та ефективний результат.
Якщо UI companion app недоступний, будь-який запит, що потребує підтвердження,
обробляється через ask fallback (типово: deny).
Нативні клієнти підтвердження в чаті також можуть надавати прив’язаний до каналу інтерфейс у
повідомленні з очікуванням підтвердження. Наприклад, Matrix може додати скорочення через реакції до
запиту підтвердження (✅ дозволити один раз, ❌ відхилити та ♾️ дозволити завжди, якщо доступно),
при цьому залишаючи команди /approve ... у повідомленні як резервний варіант.
Де це застосовується
Підтвердження exec застосовуються локально на хості виконання:- gateway host → процес
openclawна машині gateway - node host → runner вузла (companion app macOS або headless node host)
- Виклики, автентифіковані gateway, вважаються довіреними операторами для цього Gateway.
- Спарені вузли розширюють цю можливість довіреного оператора на host вузла.
- Підтвердження exec знижують ризик випадкового виконання, але не є межею автентифікації на рівні користувача.
- Схвалені запуски на host вузла прив’язують канонічний контекст виконання: канонічний cwd, точний argv, прив’язку env, якщо вона присутня, і зафіксований шлях до виконуваного файла, якщо застосовно.
- Для shell-скриптів і прямих викликів файлів інтерпретатора/середовища виконання OpenClaw також намагається прив’язати один конкретний локальний файловий операнд. Якщо цей прив’язаний файл змінюється після підтвердження, але до виконання, запуск відхиляється замість виконання зміненого вмісту.
- Ця прив’язка файла навмисно є best-effort, а не повною семантичною моделлю для кожного шляху завантажувача інтерпретатора/середовища виконання. Якщо режим підтвердження не може визначити рівно один конкретний локальний файл для прив’язки, він відмовляється створювати запуск на основі підтвердження замість того, щоб удавати повне покриття.
- служба node host пересилає
system.runдо застосунку macOS через локальний IPC. - застосунок macOS застосовує підтвердження + виконує команду в контексті UI.
Налаштування та зберігання
Підтвердження зберігаються в локальному JSON-файлі на хості виконання:~/.openclaw/exec-approvals.json
Приклад схеми:
Режим “YOLO” без підтверджень
Якщо ви хочете, щоб host exec працював без запитів на підтвердження, потрібно відкрити обидва шари політики:- запитана політика exec у конфігурації OpenClaw (
tools.exec.*) - локальна політика підтверджень хоста в
~/.openclaw/exec-approvals.json
tools.exec.security:fullнаgateway/nodetools.exec.ask:off- host
askFallback:full
tools.exec.host=autoвибирає, де виконується exec: у sandbox, якщо доступно, інакше на gateway.- YOLO визначає, як підтверджується host exec:
security=fullплюсask=off. - У режимі YOLO OpenClaw не додає окремий евристичний бар’єр підтвердження для обфускації команд поверх налаштованої політики host exec.
autoне перетворює маршрутизацію на gateway на вільне перевизначення із сесії в sandbox. Запитhost=nodeдля окремого виклику дозволений ізauto, аhost=gatewayдозволений ізautoлише тоді, коли немає активного середовища виконання sandbox. Якщо вам потрібне стабільне типове значення без auto, задайтеtools.exec.hostабо використовуйте/exec host=...явно.
allowlist / on-miss
або deny.
Постійне налаштування для gateway host “ніколи не показувати запит”:
/exec security=full ask=offзмінює лише поточну сесію./elevated full— це break-glass скорочення, яке також пропускає підтвердження exec для цієї сесії.
Параметри політики
Security (exec.security)
- deny: блокувати всі запити host exec.
- allowlist: дозволяти лише команди з allowlist.
- full: дозволяти все (еквівалент elevated).
Ask (exec.ask)
- off: ніколи не показувати запит.
- on-miss: показувати запит лише тоді, коли allowlist не збігається.
- always: показувати запит для кожної команди.
- тривала довіра
allow-alwaysне пригнічує запити, коли ефективний режим ask дорівнюєalways
Ask fallback (askFallback)
Якщо потрібне підтвердження, але жоден UI недоступний, fallback визначає результат:
- deny: блокувати.
- allowlist: дозволяти лише за збігом allowlist.
- full: дозволяти.
Посилення для inline interpreter eval (tools.exec.strictInlineEval)
Коли tools.exec.strictInlineEval=true, OpenClaw розглядає inline форми виконання коду як такі, що потребують лише підтвердження, навіть якщо сам бінарний файл інтерпретатора є в allowlist.
Приклади:
python -cnode -e,node --eval,node -pruby -eperl -e,perl -Ephp -rlua -eosascript -e
- ці команди все одно потребують явного підтвердження;
allow-alwaysне зберігає для них нові записи allowlist автоматично.
Allowlist (для кожного агента)
Allowlist-и є для кожного агента окремо. Якщо агентів кілька, перемкніть агента, якого редагуєте, у застосунку macOS. Патерни — це glob-збіги без урахування регістру. Патерни мають вказувати на шляхи до бінарних файлів (записи лише з basename ігноруються). Застарілі записиagents.default мігрують у agents.main під час завантаження.
Shell-ланцюжки на зразок echo ok && pwd усе одно вимагають, щоб кожен сегмент верхнього рівня задовольняв правила allowlist.
Приклади:
~/Projects/**/bin/peekaboo~/.local/bin/*/opt/homebrew/bin/rg
- id — стабільний UUID для ідентичності в UI (необов’язково)
- last used timestamp
- last used command
- last resolved path
Автодозвіл CLI навичок
Коли увімкнено Auto-allow skill CLIs, виконувані файли, на які посилаються відомі Skills, вважаються такими, що входять в allowlist на вузлах (macOS node або headless node host). Для цього використовуєтьсяskills.bins через Gateway RPC, щоб отримати список бінарних файлів навичок. Вимкніть це, якщо вам потрібні суворі ручні allowlist-и.
Важливі примітки щодо довіри:
- Це неявний зручний allowlist, окремий від ручних записів allowlist за шляхами.
- Він призначений для середовищ довірених операторів, де Gateway і вузол перебувають у межах однієї моделі довіри.
- Якщо вам потрібна сувора явна довіра, залиште
autoAllowSkills: falseі використовуйте лише ручні записи allowlist за шляхами.
Safe bins (лише stdin)
tools.exec.safeBins визначає невеликий список бінарних файлів лише для stdin (наприклад, cut),
які можуть виконуватися в режимі allowlist без явних записів allowlist. Safe bins відхиляють
позиційні файлові аргументи й токени, схожі на шляхи, тому можуть працювати лише з вхідним потоком.
Розглядайте це як вузький швидкий шлях для потокових фільтрів, а не як загальний список довіри.
Не додавайте бінарні файли інтерпретаторів або середовищ виконання (наприклад, python3, node, ruby, bash, sh, zsh) до safeBins.
Якщо команда може виконувати код, запускати підкоманди або читати файли за своїм задумом, краще використовувати явні записи allowlist і залишити запити підтвердження увімкненими.
Користувацькі safe bins мають визначати явний профіль у tools.exec.safeBinProfiles.<bin>.
Перевірка детерміновано ґрунтується лише на формі argv (без перевірок існування файлів у файловій системі хоста), що
запобігає поведінці oracle за існуванням файлів через різницю allow/deny.
Орієнтовані на файли опції відхиляються для типових safe bins (наприклад, sort -o, sort --output,
sort --files0-from, sort --compress-program, sort --random-source,
sort --temporary-directory/-T, wc --files0-from, jq -f/--from-file,
grep -f/--file).
Safe bins також застосовують явну політику для прапорців кожного бінарного файла окремо для опцій, які порушують поведінку
лише зі stdin (наприклад, sort -o/--output/--compress-program і рекурсивні прапорці grep).
Довгі опції перевіряються fail-closed у режимі safe-bin: невідомі прапорці й неоднозначні
скорочення відхиляються.
Відхилені прапорці за профілем safe-bin:
grep:--dereference-recursive,--directories,--exclude-from,--file,--recursive,-R,-d,-f,-rjq:--argfile,--from-file,--library-path,--rawfile,--slurpfile,-L,-fsort:--compress-program,--files0-from,--output,--random-source,--temporary-directory,-T,-owc:--files0-from
$VARS) для сегментів лише зі stdin, тож шаблони на кшталт * або $HOME/... не можуть бути
використані для прихованого читання файлів.
Safe bins також мають розв’язуватися лише з довірених каталогів бінарних файлів (типові системні каталоги плюс необов’язкові
tools.exec.safeBinTrustedDirs). Записи PATH ніколи не вважаються довіреними автоматично.
Типові довірені каталоги safe-bin навмисно мінімальні: /bin, /usr/bin.
Якщо ваш виконуваний файл safe-bin знаходиться у шляхах пакетного менеджера/користувача (наприклад
/opt/homebrew/bin, /usr/local/bin, /opt/local/bin, /snap/bin), додайте їх явно
до tools.exec.safeBinTrustedDirs.
Shell chaining і redirection не дозволяються автоматично в режимі allowlist.
Shell chaining (&&, ||, ;) дозволено, коли кожен сегмент верхнього рівня задовольняє allowlist
(включно з safe bins або автодозволом навичок). Redirection залишається непідтримуваним у режимі allowlist.
Підстановка команд ($() / backticks) відхиляється під час розбору allowlist, зокрема й усередині
подвійних лапок; використовуйте одинарні лапки, якщо вам потрібен буквальний текст $().
У підтвердженнях companion app macOS сирий shell-текст, що містить синтаксис керування shell або розгортання
(&&, ||, ;, |, `, $, <, >, (, )), вважається промахом allowlist, якщо
сам бінарний файл shell не входить до allowlist.
Для shell-обгорток (bash|sh|zsh ... -c/-lc) перевизначення env на рівні запиту зводяться до
невеликого явного allowlist (TERM, LANG, LC_*, COLORTERM, NO_COLOR, FORCE_COLOR).
Для рішень allow-always у режимі allowlist відомі dispatch-обгортки
(env, nice, nohup, stdbuf, timeout) зберігають внутрішні шляхи виконуваних файлів, а не шляхи
обгорток. Shell-мультиплексори (busybox, toybox) також розгортаються для shell-аплетів (sh, ash,
тощо), тож зберігаються внутрішні виконувані файли, а не бінарні файли мультиплексора. Якщо обгортку або
мультиплексор не можна безпечно розгорнути, жоден запис allowlist автоматично не зберігається.
Якщо ви додаєте інтерпретатори на кшталт python3 або node в allowlist, краще встановити tools.exec.strictInlineEval=true, щоб inline eval усе одно потребував явного підтвердження. У строгому режимі allow-always усе ще може зберігати нешкідливі виклики інтерпретатора/скрипта, але носії inline-eval автоматично не зберігаються.
Типові safe bins:
cut, uniq, head, tail, tr, wc
grep і sort не входять до типового списку. Якщо ви явно додаєте їх, залишайте явні записи allowlist для
їхніх сценаріїв, не пов’язаних лише зі stdin.
Для grep у режимі safe-bin задавайте патерн через -e/--regexp; позиційна форма патерна
відхиляється, щоб файлові операнди не можна було приховати як неоднозначні позиційні аргументи.
Safe bins проти allowlist
| Тема | tools.exec.safeBins | Allowlist (exec-approvals.json) |
|---|---|---|
| Мета | Автодозвіл вузьких stdin-фільтрів | Явна довіра до конкретних виконуваних файлів |
| Тип збігу | Ім’я виконуваного файла + політика argv safe-bin | Glob-патерн шляху до розв’язаного виконуваного файла |
| Область аргументів | Обмежена профілем safe-bin і правилами буквальних токенів | Лише збіг шляху; за аргументи далі відповідаєте ви |
| Типові приклади | head, tail, tr, wc | jq, python3, node, ffmpeg, користувацькі CLI |
| Найкраще використання | Низькоризикові текстові перетворення в конвеєрах | Будь-який інструмент із ширшою поведінкою або побічними ефектами |
safeBinsнадходить із конфігурації (tools.exec.safeBinsабо для агентаagents.list[].tools.exec.safeBins).safeBinTrustedDirsнадходить із конфігурації (tools.exec.safeBinTrustedDirsабо для агентаagents.list[].tools.exec.safeBinTrustedDirs).safeBinProfilesнадходить із конфігурації (tools.exec.safeBinProfilesабо для агентаagents.list[].tools.exec.safeBinProfiles). Ключі профілів для агента перевизначають глобальні ключі.- записи allowlist зберігаються в локальному для хоста
~/.openclaw/exec-approvals.jsonуagents.<id>.allowlist(або через Control UI /openclaw approvals allowlist ...). openclaw security auditпопереджає черезtools.exec.safe_bins_interpreter_unprofiled, коли бінарні файли інтерпретатора/середовища виконання з’являються вsafeBinsбез явних профілів.openclaw doctor --fixможе згенерувати відсутні записиsafeBinProfiles.<bin>як{}(після цього перегляньте їх і зробіть суворішими). Для бінарних файлів інтерпретатора/середовища виконання автоматичне створення не виконується.
jq до safeBins, OpenClaw усе одно відхиляє builtin env у режимі safe-bin,
щоб jq -n env не міг вивантажити env хост-процесу без явного шляху allowlist
або запиту на підтвердження.
Редагування в Control UI
Використовуйте картку Control UI → Nodes → Exec approvals, щоб редагувати типові значення, перевизначення для кожного агента й allowlist-и. Виберіть область (Defaults або агент), змініть політику, додайте/видаліть патерни allowlist, потім натисніть Save. UI показує метадані last used для кожного патерна, щоб ви могли підтримувати список у порядку. Перемикач цілі вибирає Gateway (локальні підтвердження) або Node. Вузли мають повідомляти проsystem.execApprovals.get/set (застосунок macOS або headless node host).
Якщо вузол ще не повідомляє про підтвердження exec, відредагуйте його локальний
~/.openclaw/exec-approvals.json напряму.
CLI: openclaw approvals підтримує редагування gateway або node (див. CLI підтверджень).
Потік підтвердження
Коли потрібен запит на підтвердження, gateway транслюєexec.approval.requested клієнтам-операторам.
Control UI та застосунок macOS обробляють це через exec.approval.resolve, після чого gateway пересилає
схвалений запит до node host.
Для host=node запити на підтвердження містять канонічне корисне навантаження systemRunPlan. Gateway використовує
цей план як авторитетний контекст команди/cwd/сесії під час пересилання схвалених запитів system.run.
Це важливо для затримки асинхронного підтвердження:
- шлях exec вузла готує один канонічний план наперед
- запис підтвердження зберігає цей план і його метадані прив’язки
- після схвалення фінальний пересланий виклик
system.runповторно використовує збережений план замість того, щоб довіряти пізнішим змінам виклику - якщо виклик змінює
command,rawCommand,cwd,agentIdабоsessionKeyпісля створення запиту на підтвердження, gateway відхиляє пересланий запуск через невідповідність підтвердженню
Команди інтерпретатора/середовища виконання
Запуски інтерпретатора/середовища виконання, що спираються на підтвердження, навмисно консервативні:- Точний контекст argv/cwd/env завжди прив’язується.
- Форми прямого shell-скрипта та прямого runtime-файла прив’язуються до одного конкретного локального знімка файла на основі best-effort.
- Поширені форми обгорток пакетних менеджерів, які все ще розв’язуються в один прямий локальний файл (наприклад
pnpm exec,pnpm node,npm exec,npx), розгортаються перед прив’язкою. - Якщо OpenClaw не може визначити рівно один конкретний локальний файл для команди інтерпретатора/середовища виконання (наприклад, package scripts, eval-форми, ланцюжки завантажувачів, специфічні для runtime, або неоднозначні форми з кількома файлами), виконання на основі підтвердження відхиляється замість того, щоб заявляти семантичне покриття, якого воно не має.
- Для таких сценаріїв краще використовувати sandbox, окрему межу host або явний довірений робочий процес allowlist/full, де оператор приймає ширшу семантику runtime.
Exec finished / Exec denied). Якщо рішення не надходить до
закінчення тайм-ауту, запит вважається тайм-аутом підтвердження і відображається як причина відхилення.
Поведінка доставки followup
Після завершення схваленого асинхронного exec OpenClaw надсилає followup-хідagent у ту саму сесію.
- Якщо існує дійсна зовнішня ціль доставки (канал доставки плюс ціль
to), followup доставляється через цей канал. - У потоках лише webchat або внутрішніх сесіях без зовнішньої цілі followup залишається лише в сесії (
deliver: false). - Якщо виклик явно вимагає суворої зовнішньої доставки, але жоден зовнішній канал не можна розв’язати, запит завершується помилкою
INVALID_REQUEST. - Якщо ввімкнено
bestEffortDeliverі жоден зовнішній канал не можна розв’язати, доставка знижується до режиму лише сесії замість помилки.
- команду + аргументи
- cwd
- id агента
- розв’язаний шлях до виконуваного файла
- метадані host + policy
- Allow once → виконати зараз
- Always allow → додати до allowlist + виконати
- Deny → заблокувати
Пересилання підтверджень у канали чату
Ви можете пересилати запити підтвердження exec у будь-який канал чату (включно з каналами plugin) і підтверджувати їх через/approve. Це використовує звичайний конвеєр вихідної доставки.
Конфігурація:
OC_I18N_900005
Відповідь у чаті:
OC_I18N_900006
Команда /approve обробляє як підтвердження exec, так і підтвердження plugin. Якщо ID не збігається з очікуваним підтвердженням exec, вона автоматично перевіряє підтвердження plugin.
Пересилання підтверджень plugin
Пересилання підтверджень plugin використовує той самий конвеєр доставки, що й підтвердження exec, але має власну незалежну конфігурацію вapprovals.plugin. Увімкнення або вимкнення одного не впливає на інше.
OC_I18N_900007
Форма конфігурації ідентична approvals.exec: enabled, mode, agentFilter,
sessionFilter і targets працюють так само.
Канали, які підтримують спільні інтерактивні відповіді, показують ті самі кнопки підтвердження як для exec, так і для
підтверджень plugin. Канали без спільного інтерактивного UI повертаються до звичайного тексту з інструкціями
/approve.
Підтвердження в тому самому чаті на будь-якому каналі
Коли запит підтвердження exec або plugin походить із чату, який підтримує доставку, той самий чат тепер може підтвердити його через/approve типово. Це стосується таких каналів, як Slack, Matrix і
Microsoft Teams, на додачу до наявних потоків через Web UI і terminal UI.
Цей спільний шлях через текстову команду використовує звичайну модель автентифікації каналу для цієї розмови. Якщо
початковий чат уже може надсилати команди й отримувати відповіді, запитам підтвердження більше не потрібен
окремий нативний адаптер доставки лише для того, щоб залишатися в очікуванні.
Discord і Telegram також підтримують /approve у тому самому чаті, але ці канали все одно використовують
свій розв’язаний список схвалювачів для авторизації, навіть коли нативну доставку підтверджень вимкнено.
Для Telegram та інших нативних клієнтів підтвердження, які викликають Gateway напряму,
цей fallback навмисно обмежений помилками типу “approval not found”. Реальне
відхилення/помилка підтвердження exec не повторюється мовчки як підтвердження plugin.
Нативна доставка підтверджень
Деякі канали також можуть працювати як нативні клієнти підтвердження. Нативні клієнти додають DM схвалювачам, fanout до початкового чату та прив’язаний до каналу інтерактивний UX підтвердження поверх спільного потоку/approve
в тому самому чаті.
Коли доступні нативні картки/кнопки підтвердження, цей нативний UI є основним
шляхом для агента. Агент не повинен також дублювати звичайну команду чату
/approve, якщо тільки результат інструмента не вказує, що підтвердження через чат недоступні або
ручне підтвердження — єдиний шлях, що залишився.
Загальна модель:
- політика host exec усе ще визначає, чи потрібне підтвердження exec
approvals.execкерує пересиланням запитів на підтвердження до інших цілей чатуchannels.<channel>.execApprovalsвизначає, чи діє цей канал як нативний клієнт підтвердження
- канал підтримує нативну доставку підтверджень
- схвалювачів можна розв’язати з явних
execApprovals.approversабо з документованих для цього каналу fallback-джерел channels.<channel>.execApprovals.enabledне задано або дорівнює"auto"
enabled: false, щоб явно вимкнути нативний клієнт підтвердження. Встановіть enabled: true, щоб примусово
увімкнути його, коли схвалювачі розв’язуються. Доставка в публічний початковий чат залишається явною через
channels.<channel>.execApprovals.target.
FAQ: Чому існують дві конфігурації підтвердження exec для підтверджень у чаті?
- Discord:
channels.discord.execApprovals.* - Slack:
channels.slack.execApprovals.* - Telegram:
channels.telegram.execApprovals.*
/approve в тому самому чаті та спільних кнопок підтвердження.
Спільна поведінка:
- Slack, Matrix, Microsoft Teams та подібні чати з доставкою використовують звичайну модель автентифікації каналу
для
/approveу тому самому чаті - коли нативний клієнт підтвердження вмикається автоматично, типовою нативною ціллю доставки є DM схвалювачів
- для Discord і Telegram лише розв’язані схвалювачі можуть підтвердити або відхилити
- схвалювачі Discord можуть бути явними (
execApprovals.approvers) або виведеними зcommands.ownerAllowFrom - схвалювачі Telegram можуть бути явними (
execApprovals.approvers) або виведеними з наявної конфігурації owner (allowFrom, плюсdefaultToдля direct message, де це підтримується) - схвалювачі Slack можуть бути явними (
execApprovals.approvers) або виведеними зcommands.ownerAllowFrom - нативні кнопки Slack зберігають вид ID підтвердження, тож ID
plugin:можуть розв’язувати підтвердження plugin без другого локального fallback-рівня Slack - нативна маршрутизація Matrix до DM/каналу стосується лише exec; підтвердження plugin у Matrix залишаються на спільному
шляху
/approveу тому самому чаті та необов’язковому пересиланні черезapprovals.plugin - відправник запиту не обов’язково має бути схвалювачем
- початковий чат може підтвердити напряму через
/approve, коли цей чат уже підтримує команди й відповіді - нативні кнопки підтвердження Discord маршрутизуються за видом ID підтвердження: ID
plugin:переходять безпосередньо до підтверджень plugin, усе інше — до підтверджень exec - нативні кнопки підтвердження Telegram дотримуються того самого обмеженого fallback exec-to-plugin, що й
/approve - коли нативний
targetвмикає доставку до початкового чату, запити на підтвердження містять текст команди - очікувані підтвердження exec типово спливають через 30 хвилин
- якщо жоден UI оператора або налаштований клієнт підтвердження не може прийняти запит, запит переходить до
askFallback
target: "dm"). Ви можете переключити на channel або both, коли
хочете, щоб запити на підтвердження також з’являлися в початковому чаті/темі Telegram. Для тем форуму Telegram
OpenClaw зберігає тему для запиту підтвердження та followup після підтвердження.
Див.:
Потік IPC на macOS
OC_I18N_900008 Примітки щодо безпеки:- Режим Unix socket
0600, токен зберігається вexec-approvals.json. - Перевірка peer з тим самим UID.
- Challenge/response (nonce + HMAC token + hash запиту) + короткий TTL.
Системні події
Життєвий цикл exec відображається як системні повідомлення:Exec running(лише якщо команда перевищує поріг сповіщення про виконання)Exec finishedExec denied
runId у цих повідомленнях для зручної кореляції.
Поведінка при відхиленому підтвердженні
Коли асинхронне підтвердження exec відхиляється, OpenClaw не дозволяє агенту повторно використовувати вивід будь-якого попереднього запуску тієї самої команди в сесії. Причина відхилення передається з явною вказівкою, що вивід команди недоступний, що не дає агенту стверджувати, ніби є новий вивід, або повторювати відхилену команду зі старими результатами від попереднього успішного запуску.Наслідки
- full має великі повноваження; за можливості віддавайте перевагу allowlist-ам.
- ask тримає вас у циклі, водночас даючи змогу швидко підтверджувати.
- Allowlist-и для кожного агента окремо не дають підтвердженням одного агента просочуватися в інших.
- Підтвердження застосовуються лише до запитів host exec від авторизованих відправників. Неавторизовані відправники не можуть виконувати
/exec. /exec security=full— це зручність на рівні сесії для авторизованих операторів, яка за задумом пропускає підтвердження. Щоб жорстко заборонити host exec, встановітьsecurityпідтверджень уdenyабо забороніть інструментexecчерез політику інструментів.
Пов’язане
- Exec — інструмент виконання shell-команд
- Sandboxing — режими sandbox і доступ до робочого простору
- Security — модель безпеки та посилення
- Sandbox vs Tool Policy vs Elevated — коли що використовувати