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

Интеграция AI в бизнес-процессы часто требует доступа к файлам, но неконтролируемый доступ может привести к потере данных и утечкам. Мы разрабатываем AI-агентов с безопасным sandbox-доступом, где каждое действие контролируется. Наша команда реализует проект под ключ — от аудита до внедрения и последующей поддержки, обеспечивая надёжную автоматизацию файловых операций.
Часто задаваемые вопросы

Разработка 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 (никаких утечек).
  • Прозрачную архитектуру — вы всегда знаете, что делает агент.
  • Поддержку после деплоя и доработки под новые задачи.

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

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

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

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142