← Все статьи

локальный LLM‑агент: рабочая папка и права

Как настроить локальную рабочую папку и безопасно дать разрешения десктоп‑агенту LLM

Подробная практическая инструкция для владельцев малого бизнеса и специалистов: как создать воспроизводимую структуру рабочей папки для локального LLM‑агента, разделить секреты и рабочие файлы, настроить доступ к браузерному профилю, поэтапно включить автономный режим (bypass) и организовать мониторинг и бэкапы. Включены конкретные шаблоны формулировок для README и правил, рекомендации по проверкам и типичные ошибки с исправлениями.

Запуск локального LLM‑агента даёт реальную экономию времени: агент может автоматически обрабатывать документы, работать с браузером и запускать скрипты на вашем компьютере. Но такие возможности сопровождаются рисками: агент получает доступ к файлам, браузерным сессиям и ключам API. В этой инструкции — подробный пошаговый план, почему каждый шаг важен, как его выполнить и по какому признаку проверить результат. Там, где полезно, я привожу шаблон формулировок, объясняю типичные ошибки и предлагаю способы их исправить.

Цель: получить воспроизводимую, прозрачную и контролируемую рабочую среду для агента, в которой вы сможете поэтапно расширять права без ненужных рисков.

1. Подготовка изолированной рабочей папки: зачем и как

Зачем нужна отдельная папка

  • Изоляция уменьшает вероятность случайных удалений и упрощает бэкапы: вы оперируете ограниченным набором данных, а не всем диском.
  • Структура подсказывает агенту, где искать входы и куда складывать выходы, снижая количество уточняющих запросов.
  • Простая проверка прав и логов становится возможной, когда все активные файлы сконцентрированы в предсказуемых местах.

Как создать папку (пошагово и с проверками)

  1. Выберите место вне системных папок и пользовательского Desktop. Признак правильного выбора: путь начинается с диска с достаточным местом, не содержит служебных папок (Windows: C:\Windows; macOS: /System) и, по возможности, располагается на диске, который вы включаете в бэкапы.
  2. Создайте корневую папку проекта, например MyAgentProject, и внутри неё — подпапки: docs, data, scripts, logs, backup, secrets. Формат: MyAgentProject/{docs,data,scripts,logs,backup,secrets}.
  3. Настройте права ОС: сделайте secrets доступной только для вашей учётной записи (пример: Windows — убрать права для «Users», macOS/Linux — chmod 700 для secrets). Признак корректной настройки: попытка прочитать secrets под другим аккаунтом завершается отказом в доступе.
  4. Поместите в корень шаблон README.md (см. раздел 2) и пустой rules.md, чтобы агент сразу видел ожидаемую структуру.

Что проверить после создания

  • Проверьте, что пути не содержат пробелов/спецсимволов, если вы планируете запускать скрипты, которые плохо их обрабатывают. Признак: список файлов и подпапок корректно обрабатывается командой ls или dir.
  • Убедитесь, что backup находится вне корня проекта или на отдельном разделе/диске. Признак: восстановление из бэкапа не затрагивает оригинальную папку проекта.

Типичная ошибка и её исправление

Ошибка: хранить проект на рабочем столе в одной папке. Исправление: переместите проект в отдельную папку на рабочем диске, создайте подпапки и перенастройте бэкапы на внешний носитель или сетевой диск. Признак исправления: после перемещения количество нечётких операций в логах снижается, а резервные копии находятся в отдельном месте.

2. Как задать правила и README для агента (код‑md)

Почему README и rules важны

Агент действует на основании локальных инструкций. Чёткое, машинно‑и человеко‑читаемое описание ролей, входов/выходов и ограничений делает поведение предсказуемым и воспроизводимым.

Шаблон README.md (рекомендации по содержанию)

  • Название проекта и краткая цель: «Агент: агрегировать CSV → строить отчёт HTML».
  • Роль агента в одном предложении.
  • Входы: шаблоны путей (например, data/csv/*.csv).
  • Ожидаемые выходы: путь и формат (reports/monthly.html, reports/summary.xlsx).
  • Куда записывать логи: logs/actions.log.
  • Краткая инструкция запуска: команда или пример cli.

Пример формулировки (шаблон):

  • Роль: «Собирает CSV из data/csv, объединяет их в единый файл, формирует monthly.html в reports/ и кладёт копию в backup/reports». Если есть ограничения — укажите: «Нельзя изменять файлы в data/archive/».

Шаблон rules.md (чёткие запреты и разрешения)

  • Явные запреты: «Не удалять файлы вне папок data/ и backup/», «Не отправлять содержимое папки secrets/ в сеть без ручного подтверждения».
  • Разрешённые действия: «Чтение любых файлов в data/; запись только в reports/ и backup/».
  • Политика логирования: «Каждое действие — запись в logs/actions.log: ISO‑время, команда, файлы, пользователь‑инициатор».

Формат для машины: если агент читает JSON/YAML, используйте config.json с ключами profile_path, allowed_scripts (список с шаблонами), sandbox_paths.

Как тестировать правила

  • Тестовый сценарий: предоставьте агенту задачу «предложи план» — он должен только читать README и rules и вернуть план без выполнения. Критерий успеха: план соответствует указанным входам и не включает запрещённых действий.
  • Прогон в песочнице: запустите агент на копии данных (data/test_only) и проверьте, что все действия логируются и соответствуют rules.md.

Типичная ошибка и исправление

Ошибка: слишком общие формулировки («не трогать важные файлы»). Исправление: перечислите конкретные пути и шаблоны файлов; используйте «must/should/not» в однозначных выражениях. Признак исправления: агент реже формирует сомнительные планы, логи содержат только ожидаемые операции.

3. Настройка доступа к браузерному профилю и интеграциям

Почему профиль браузера важен и какие риски

Доступ к профилю позволяет агенту работать от вашего лица: использовать куки и сессии, получать персональные выгрузки. Это удобно, но если профиль содержит лишние аккаунты или синхронизацию — риск утечки и нежелательных операций возрастает.

Как настроить профиль безопасно (пошагово)

  1. Создайте отдельный профиль (agent_profile) в браузере, который будете использовать исключительно для автоматизации. Признак: в настройках браузера виден новый профиль с отдельной папкой данных.
  2. Войдите только в те сервисы, которые необходимы агенту. Не включайте общий почтовый ящик или личные аккаунты. Признак: список залогиненных аккаунтов ограничен и документирован.
  3. Отключите синхронизацию профиля через облако и автосохранение паролей для этого профиля. Признак: параметры синхронизации выключены в настройках профиля.
  4. Укажите путь к профилю в config.json/config.yaml агента и добавьте правило в rules.md «не переключаться на другие профили».
  5. Проверьте расширения: оставьте только те, которые нужны; удалите лишние. Признак: список расширений минимален и проверен.

Как проверить корректность доступа

  • Запустите агент в режиме чтения: он должен открыть страницы и сделать выгрузки, но не вводить данные в формы. Посмотрите логи сетевой активности и сравните с ожидаемыми доменами.
  • Попробуйте эмулировать ситуацию: если профиль содержит платную подписку, агент должен получить доступ к контенту; если нет — он не должен обращаться к другим профилям.

Типичная ошибка и исправление

Ошибка: использовать основной профиль с множеством сессий и сохранённых паролей. Исправление: создать отдельный профиль, очистить лишние сессии и отключить синхронизацию. Признак исправления: число доменов, с которыми работает агент, совпадает с перечнем в конфиге и rules.md.

4. Организация секретов и ключей: хранение и доступ

Почему секреты надо отделять

Ключи API, учётные данные и токены дают доступ к внешним интеграциям. Хранение их в открытом виде в рабочей папке делает всё пространство интеграций уязвимым при компрометации машины.

Рекомендованный подход и шаги

  1. Перенесите все секреты в отдельное хранилище: системный менеджер ключей, локальный менеджер секретов или зашифрованный файл (например, credentials.enc). Признак: в корне проекта нет plaintext файлов с ключами.
  2. Дайте агенту минимально необходимый доступ — принцип least privilege: агенту предоставляется интерфейс для чтения расшифровываемых артефактов по запросу, но не список всех ключей. Признак: при попытке перечислить содержимое secrets агент получает отказ.
  3. Требуйте ручной ввод пароля для расшифровки или использование аппаратного ключа (YubiKey) при первой или каждой сессии, если это удобно. Признак: агент не запускает интеграции без вмешательства пользователя.
  4. Логируйте обращения к секретам: запись в logs/actions.log о том, какой ключ был запрошен (без самого ключа), когда и кем. Признак: в логе есть запись «requested secret X at time T by agent».

Как тестировать и верифицировать

  • Тестовый сценарий: агент должен получить отказ при попытке прочитать секреты без ручного ввода пароля. Критерий успеха: никаких расшифрованных данных не появляются в логах или файлах.
  • Сценарий восстановления: проверьте, что вы можете восстановить доступ к секретам с резервной копией и что мастер‑пароль не хранится в конфиге.

Типичная ошибка и исправление

Ошибка: хранение открытых ключей в scripts/. Исправление: переместить ключи в зашифрованное хранилище и пересмотреть права доступа. Признак исправления: в репозитории/проекте нет plaintext ключей, и автоматизированный сканер не находит секретов.

5. Включение автономного (bypass) режима безопасно и по шагам

Почему обходной режим опасен

Autonomous (bypass) даёт агенту право выполнять операции без подтверждений — удобно для рутинных задач, но риск повреждения данных и утечек повышается.

Стратегия поэтапного включения

  1. Фаза I — ручной режим (минимум 1 неделя): агент предлагает план действий; вы подтверждаете каждую операцию. Цель — проверить, что план следует правилам README и rules.md. Критерий: не менее 7 рабочих циклов, где все предложенные действия соответствуют правилам.
  2. Фаза II — частичный автоматизм (2–4 недели): разрешите запуск ограниченного набора безопасных скриптов (например, merge_reports.py) на тестовой папке data/test_only. Ограничьте расписание и домены доступа. Критерий: все автоматические действия логируются и проходят аудиторскую проверку.
  3. Фаза III — расширенный автоматизм: добавьте права записи в production-папки для проверенных скриптов и мониторьте метрики ошибок. Критерий: нулевая или минимальная частота ошибок, одобренная по журналам.
  4. Фаза IV — полный bypass: разрешение только после длительного периода стабильности и наличия средств отката (версионные бэкапы). Критерий: доступность отката в течение 1 часа и наличие автоматических уведомлений о критичных операциях.

Технические меры ограничения

  • Списки разрешённых скриптов: allowed_scripts в конфиге с хешами файлов, чтобы агент не мог запускать произвольный код.
  • Песочница для операций: sandbox_paths, где агент может менять файлы до одобрения для production.
  • Ограничение времени выполнения: time_windows, когда агент может работать autonomously.

Как проверять корректность

  • Сравнивайте логи с ожиданиями: для каждой автоматической операции должна быть запись с командой, входами, выходами и результатом.
  • Проводите выборочные восстановления из backup/ после автоматических операций.

Типичная ошибка и исправление

Ошибка: включение полного bypass сразу. Исправление: откат прав, восстановление из бэкапа и повторный поэтапный ввод автономности. Признак исправления: новый период внедрения по фазам с чётко измеряемыми критериями успеха.

6. Голосовой ввод и горячие клавиши: быстрый, но контролируемый сценарий

Преимущества и риски

Голосовой ввод и хоткеи снижают трение при управлении агентом, но без аккуратной настройки они вызывают ложные срабатывания и риск выполнения критичных команд.

Пошаговая настройка

  1. Выберите уникальную горячую клавишу для активации голосовой записи (например, Right‑Alt или другая редкая клавиша). Проверка: убедитесь, что система и часто используемые приложения не используют эту комбинацию.
  2. Включите подтверждение для критичных команд: любая команда изменения/удаления должна сопровождаться вторым подтверждением (кодовая фраза, ввод одноразового кода или нажатие дополнительной клавиши). Признак: команда «удали» не выполнится без второй верификации.
  3. Настройте чувствительность распознавания и сделайте тесты в реальных условиях (фоновой шум, разговоры в комнате). Признак корректной настройки: низкий процент ложных активаций в течение тестовой недели.
  4. Логируйте голосовые команды (без записи аудио, если хотите повышенную приватность): запись текста команды, временная метка и результат. Признак: в logs/actions.log есть запись о полученной голосовой команде и её результате.

Пример шаблона подтверждения

  • «Удалить старые файлы» → агент запрашивает «повторите кодовую фразу» → пользователь произносит «подтвердить‑xyz» → агент выполняет команду.

Типичная ошибка и исправление

Ошибка: назначение часто используемой комбинации вроде Ctrl+Shift+S. Исправление: сменить на редкую клавишу и протестировать взаимодействие со стандартными приложениями; при необходимости добавьте «двойное нажатие» как вторую ступень активации.

7. Мониторинг, логирование и бэкапы: как отслеживать поведение агента

Почему это критично

Логи и бэкапы — ваша страховка: они позволяют понять, что сделал агент, и быстро откатиться при ошибке.

Практические шаги

  1. Включите детальное логирование: каждый вызов агента, каждое действие (read/write/exec) фиксируются в logs/actions.log в формате: ISO‑time | user | action | target_path | result. Признак: строки лога читаются и содержат всю указанную информацию.
  2. Настройте ротацию логов и версионность (например, сохранять последние N логов или архивировать старые). Признак: размер логов контролируется, старые логи доступны по датам.
  3. Настройте автоматический ежедневный бэкап рабочей папки в другое место (внешний диск, NAS или отдельный том). Включите версионность: храните несколько точек восстановления (например, 7 дней). Признак: backup/ содержит снимки с отметками дат.
  4. Проводите периодические выборочные восстановления: раз в месяц восстанавливайте одну точку и сравнивайте контрольные суммы критичных файлов. Признак успеха: контрольные суммы совпадают, восстановление проходит без ошибок.

Что логировать обязательно

  • Кто и когда дал разрешение на автономную операцию.
  • Какие скрипты запускались и с какими входными файлами.
  • Попытки доступа к secrets (без самих секретов) — запись о запросе и результате.

Типичная ошибка и исправление

Ошибка: хранить единственную копию бэкапа. Исправление: включить ротацию и хранить несколько версий, тестировать восстановление хотя бы раз в месяц.

Короткий план первого практического шага на сегодня (пошагово)

  1. Создайте корневую папку проекта в удобном месте (не на рабочем столе). Проверка: вы можете вывести структуру папки командой ls/dir без ошибок.
  2. Разбейте её на подпапки: docs, data, scripts, logs, backup, secrets. Проверка: каждая папка существует и имеет ожидаемые права.
  3. Поместите шаблон README.md и пустой rules.md в корень (см. шаблоны выше). Проверка: агент в режиме «предложи план» использует эти файлы и не предлагает действий вне описанных путей.
  4. Настройте права ОС на secrets так, чтобы доступ был только у вашей учётной записи. Проверка: под другим пользователем доступ к secrets запрещён.

Выполнив эти четыре пункта, вы получите минимально безопасную исходную структуру, на которой можно последовательно наращивать интеграции, подключать браузерный профиль и включать автономный режим по шагам. Для каждого следующего шага фиксируйте критерии успешности (см. разделы выше) и сохраняйте текущие бэкапы перед расширением прав.