Алекс: хард-гейт approval ВКЛЮЧЁН и подтверждён в Telegram
- exec-policy allowlist + ask on-miss: read-инструменты свободно, write -> кнопка [Allow Once][Deny] - живой тест в TG прошёл (кнопка на alex-fix.sh restart-podkop) - SOUL облегчён (объясняет + кнопка, без дубля "да?"); гибкость сохранена (ask on-miss) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -100,9 +100,9 @@ status: active
|
||||
|
||||
## Инструменты Алекса — управление устройствами Александра (2026-05-31)
|
||||
|
||||
Алекс ходит в сеть Александра: коробка → NetBird → Cudy (`100.70.207.97`) → LAN. Прямой роут в `192.168.1.0/24` нельзя (коллизия с Знаменское/НИИКН в NetBird) → всё джампом через Cudy. Обёрнуто в скрипты на коробке (`/opt/assistant/`), Алекс зовёт их через exec (`exec-policy` = yolo). Проверено в живом диалоге (TG): «какие точки wifi по комнатам» → Алекс сам зовёт `alex-unifi.sh`.
|
||||
Алекс ходит в сеть Александра: коробка → NetBird → Cudy (`100.70.207.97`) → LAN. Прямой роут в `192.168.1.0/24` нельзя (коллизия с Знаменское/НИИКН в NetBird) → всё джампом через Cudy. Обёрнуто в скрипты на коробке (`/opt/assistant/`), Алекс зовёт их через exec под **хард-гейтом** (`exec-policy`: `security=allowlist, ask=on-miss` — read-инструменты в allowlist бегут свободно, запись/новое → кнопка approval в TG, см. ниже). Проверено в живом диалоге (TG): «какие точки wifi по комнатам» → Алекс сам зовёт `alex-unifi.sh`.
|
||||
|
||||
**Подтверждение write-действий (Этап 4):** гейт = ЖЕЛЕЗНОЕ ПРАВИЛО в `SOUL.md` (двухшаговый протокол: на «перезапусти» Алекс сначала описывает+спрашивает «да?», выполняет только после ОТДЕЛЬНОГО «да»). Проверено: первый прогон без правила — выполнил молча; после усиления SOUL — спрашивает. Бэкстоп = авто-аудит каждого write-действия Олегу. **Настоящий хард-гейт для продукта** = allowlist + `exec-policy set --security allowlist --ask on-miss --ask-fallback deny`. Механизм: `openclaw approvals allowlist add "/opt/assistant/alex-router.sh*"` (glob; хранится в `exec-approvals.json` → `agents."*".allowlist[].pattern`). **Протестировано 2026-05-31:** чтение под allowlist работает свободно ✅, write (`alex-fix.sh`, не в allowlist) реально БЛОКИРУЕТСЯ (podkop не перезапустился) ✅. ДВА открытых вопроса → **откатил на yolo:** (1) не проверено, рисует ли Telegram интерактивную кнопку approval (в CLI headless — пусто/deny; **если кнопки нет → write вообще невыполним**, хуже мягкого гейта); (2) `security=allowlist` лишает агента гибкости (только 5 helper'ов, не импровизирует диагностику новых проблем). **Финализация:** живой тест в TG (Олег пишет боту «перезапусти» → есть ли кнопка?). Если да — вернуть allowlist (read-tools + alex-print), alex-fix НЕ в allowlist. allowlist-записи уже лежат в `exec-approvals.json` (неактивны при yolo). Отложено в Этап 9.
|
||||
**Подтверждение write-действий (Этап 4) — ХАРД-ГЕЙТ, ПОДТВЕРЖДЁН 2026-05-31:** `exec-approvals.json` → `defaults {security:"allowlist", ask:"on-miss", askFallback:"deny"}` + `agents."*".allowlist[]` с glob'ами read-инструментов (`/opt/assistant/alex-router.sh*`, `alex-unifi.sh*`, `alex-security.sh*`, `alex-print.sh*`). `alex-fix.sh` НЕ в allowlist → при попытке агента выполнить openclaw показывает Олегу в Telegram **кнопки `[Allow Once] [Allow Always] [Deny]`** (+ текст-команды `/approve <id> allow-once|allow-always|deny`), команда висит pending до решения. **Живой тест в TG прошёл** — кнопка появилась на `alex-fix.sh restart-podkop`. Агент физически не обойдёт. Гибкость сохранена: незнакомую команду агент не теряет — спрашивает кнопкой (Allow Once). SOUL объясняет действие до запуска (без дубля текстового «да» — кнопка сама спрашивает). Бэкстоп — авто-аудит каждого ВЫПОЛНЕННОГО write-действия Олегу. Добавить read-инструмент: `openclaw approvals allowlist add "/opt/assistant/<script>*"`. ⚠️ НЕ жать «Allow Always» на alex-fix (запомнит → перестанет спрашивать).
|
||||
|
||||
| Скрипт | Что делает |
|
||||
|---|---|
|
||||
|
||||
Reference in New Issue
Block a user