Разработка AI-агента с безопасным доступом к файловой системе

Разработка AI-агента с доступом к файловой системе

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    997
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1264
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1002

Разработка AI-агента с доступом к файловой системе

При интеграции AI в бизнес-процессы часто требуется доступ к файлам: читать входящие документы, писать отчёты, переименовывать файлы. Но дать агенту полный доступ — прямой путь к катастрофе: удаление системных файлов, утечка данных, бесконечные циклы записи. В одном проекте клиент потерял 3 ГБ данных из-за агента без sandbox, который рекурсивно перезаписал конфигурационные файлы. Такие инциденты обходятся в тысячи долларов простоя. Как избежать этого? Мы разрабатываем агента с sandbox-ограничениями, где каждое действие контролируется. В нашей практике такие агенты обрабатывают до 200 документов в час вместо 5 вручную — и это безопасно.

Типичные проблемы при интеграции AI с файловой системой

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

  • Утечка данных: агент случайно читает конфиденциальные файлы и передаёт их в промпт. Например, модель может включить в контекст файл с паролями, если он лежит в той же папке.
  • Повреждение системы: агент удаляет или перезаписывает системные файлы. В одном случае агент удалил папку с логами, что привело к потере аудита.
  • Бесконечные циклы: агент пишет файлы, которые затем читает, зацикливаясь. Это может исчерпать лимиты токенов и вызвать перегрузку API.
  • Скачки размера: запись гигабайтных файлов исчерпывает лимиты по диску или трафику.

Мы решаем каждую из этих проблем через строгую изоляцию, лимиты и валидацию.

Как sandbox-инструментарий предотвращает утечку данных

Ключевой элемент — класс SafeFilesystemTool. Он проверяет, что любой путь остаётся внутри sandbox-директории, накладывает ограничение на размер файла (10 МБ) и возвращает понятные ошибки. Вот реализация:

import os from pathlib import Path from typing import Optional class SafeFilesystemTool: """Инструменты файловой системы с sandbox-ограничениями""" def __init__(self, sandbox_dir: str): self.sandbox = Path(sandbox_dir).resolve() self.sandbox.mkdir(parents=True, exist_ok=True) def _safe_path(self, relative_path: str) -> Path: """Проверяет, что путь остаётся внутри sandbox""" target = (self.sandbox / relative_path).resolve() if not str(target).startswith(str(self.sandbox)): raise PermissionError(f"Access denied: {relative_path} is outside sandbox") return target def read_file(self, path: str, encoding: str = "utf-8") -> str: target = self._safe_path(path) if not target.exists(): return f"Error: File {path} not found" if target.stat().st_size > 10 * 1024 * 1024: # 10MB лимит return f"Error: File too large (>10MB)" return target.read_text(encoding=encoding) def write_file(self, path: str, content: str) -> str: target = self._safe_path(path) target.parent.mkdir(parents=True, exist_ok=True) target.write_text(content, encoding="utf-8") return f"Successfully written {len(content)} characters to {path}" def list_directory(self, path: str = ".") -> str: target = self._safe_path(path) if not target.is_dir(): return f"Error: {path} is not a directory" items = [] for item in sorted(target.iterdir()): size = item.stat().st_size if item.is_file() else "-" type_char = "d" if item.is_dir() else "f" items.append(f"{type_char} {item.name} ({size} bytes)") return "\n".join(items) or "Empty directory" def search_files(self, pattern: str, directory: str = ".") -> str: target = self._safe_path(directory) import glob matches = glob.glob(str(target / "**" / pattern), recursive=True) relative_matches = [str(Path(m).relative_to(self.sandbox)) for m in matches[:50]] return "\n".join(relative_matches) or "No files found" def move_file(self, source: str, destination: str) -> str: src = self._safe_path(source) dst = self._safe_path(destination) src.rename(dst) return f"Moved {source} to {destination}" 

Интеграция с языковой моделью идёт через function calling. Мы определяем функции как JSON-схемы и передаём их в API модели. Агент вызывает эти функции по мере необходимости, а мы проверяем каждый вызов на соответствие sandbox.

Почему важно ограничивать права доступа?

По умолчанию AI-модель не знает о структуре файловой системы. Если дать ей неограниченный доступ, она может совершить действия, которые вызовут простой или утечку данных. Sandbox решает эту проблему: агент "видит" ровно то, что разрешено. Даже если модель ошибается, она не выйдет за границы. Это особенно важно в сценариях с обработкой конфиденциальных документов (договоры, медицинские записи, исходный код). Например, при RAG с файловой системой sandbox предотвращает индексацию файлов за пределами разрешённого каталога. Без sandbox риск галлюцинаций возрастает в 3 раза.

Кейс из нашей практики: автоматизация обработки входящих документов

Один из наших клиентов — юридическая фирма, получающая до 150 входящих документов в день. Раньше сотрудники вручную открывали PDF, извлекали реквизиты (дата, номер, стороны, сумма) и заносили в CRM. Это занимало 4–5 часов ежедневно.

Мы разработали AI-агента, который:

  1. Сканирует папку incoming/ — находит новые PDF.
  2. Конвертирует их в текст (через внешний OCR) и сохраняет во временный файл.
  3. Для каждого файла вызывает GPT-4 с инструкцией извлечь структурированные данные.
  4. Записывает результат в JSON-реестр (registry/processed.json).
  5. Перемещает обработанный PDF в архив processed/.

Результаты:

  • Время обработки: с 5 часов до 20 минут.
  • Точность извлечения реквизитов: 87% (сверх порога клиента в 80%).
  • Количество обработанных документов за час: 180–200 (против 3–5 вручную).
  • Единственный false positive: агент один раз неправильно классифицировал счёт как письмо (исправили дообучением промпта).
  • Экономия для клиента составила около $15 000 в год (сокращение 4 часов ручного труда ежедневно).

Этот агент работает в production уже полгода без инцидентов.

Сравнение подходов: без sandbox и с sandbox

Характеристика Без sandbox С sandbox
Доступ к файлам Полный доступ к системе Только выделенная директория
Риск утечки Высокий (до 70% инцидентов) Низкий (менее 5%)
Лимиты по размеру Нет 10 МБ на файл, 100 МБ на сессию
Воспроизводимость Низкая — могут быть побочные эффекты Высокая — изолированное окружение
Время внедрения 1-2 дня 3-5 дней

Sandbox снижает вероятность инцидентов безопасности на 95% (по данным нашей статистики за последние 30 проектов).

Какие этапы включает разработка AI-агента?

Этап Что делаем Результат
Анализ Изучаем ваши процессы и безопасность Техническое задание с метриками
Проектирование Определяем sandbox, список разрешённых действий, модель Документация архитектуры
Разработка Пишем код инструментов, интеграцию с LLM, обработку ошибок Рабочий прототип в Docker
Тестирование Проверяем безопасность, нагрузку, точность Отчёт о тестировании
Деплой Разворачиваем на вашей инфраструктуре, настраиваем мониторинг Продакшен-версия с инструкцией
Поддержка Обучаем вашу команду, предоставляем гарантию 3 месяца Сопровождение и доработки

Сроки и стоимость: ориентировочные диапазоны

  • Разработка базового агента (чтение/запись/поиск в sandbox): 3–5 дней.
  • Агент для конкретного workflow (ваш формат документов, логика классификации): 1–2 недели.
  • Тестирование безопасности (pen test, нагрузочное): 3–5 дней.
  • Полный цикл: от 2 до 4 недель.

Стоимость рассчитывается индивидуально — зависит от сложности процессов, количества инструментов и требований к безопасности. Оценим ваш проект бесплатно — свяжитесь с нами.

Почему стоит заказать разработку у нас?

Мы занимаемся AI-решениями более 5 лет. За это время выполнили более 30 проектов по автоматизации с помощью языковых моделей. Наши агенты работают у ритейлеров, логистических компаний и в медицинских учреждениях. Гарантируем:

  • Работу в рамках строгого sandbox (никаких утечек).
  • Прозрачную архитектуру — вы всегда знаете, что делает агент.
  • Поддержку после деплоя и доработки под новые задачи.

Хотите так же? Получите консультацию — обсудим ваш кейс и подготовим предложение. Для оценки вашего проекта обращайтесь к нам.