Безпечний AI-агент для файлової системи
При інтеграції AI в бізнес-процеси часто потрібен доступ до файлів: читати вхідні документи, писати звіти, перейменовувати файли. Але дати агенту повний доступ — прямий шлях до катастрофи: видалення системних файлів, витік даних, нескінченні цикли запису. В одному проєкті клієнт втратив 3 ГБ даних через агента без sandbox, який рекурсивно перезаписав конфігураційні файли. Такі інциденти обходяться в тисячі доларів простою. Як уникнути цього? Ми розробляємо агента з sandbox-обмеженнями, де кожна дія контролюється. У нашій практиці такі агенти обробляють до 200 документів на годину замість 5 вручну — і це безпечно. Вартість базового агента починається від $1 500. Понад 5 років досвіду та 30+ виконаних проєктів підтверджують ефективність нашого підходу.
Типові проблеми при інтеграції AI з файловою системою
Головна проблема — баланс між функціональністю та безпекою. Агент повинен вміти читати, писати, шукати та переміщувати файли, але не мати доступу до чутливих даних за межами робочої директорії. Типові складнощі:
- Витік даних: агент випадково читає конфіденційні файли та передає їх у промпт. Наприклад, модель може включити в контекст файл із паролями, якщо він лежить у тій самій папці.
- Пошкодження системи: агент видаляє або перезаписує системні файли. В одному випадку агент видалив папку з логами, що призвело до втрати аудиту.
- Нескінченні цикли: агент пише файли, які потім читає, зациклюючись. Це може вичерпати ліміти токенів і спричинити перевантаження API.
- Стрибки розміру: запис гігабайтних файлів вичерпує ліміти по диску або трафіку.
Ми вирішуємо кожну з цих проблем через строгу ізоляцію, ліміти та валідацію. Агент з sandbox у 20 разів ефективніше запобігає інцидентам, ніж без нього.
Запобігання витоку даних за допомогою 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. У нашій розробці використовуються такі технології: перевірка шляхів (path validation), ізоляція процесів (process isolation), обмеження розміру файлів (file size limits), аудит дій агента (action audit), логірування викликів (call logging).
Важливість обмеження прав доступу
За замовчуванням AI-модель не знає про структуру файлової системи. Якщо дати їй необмежений доступ, вона може здійснити дії, які спричинять простій або витік даних. Sandbox вирішує цю проблему: агент "бачить" рівно те, що дозволено. Навіть якщо модель помиляється, вона не вийде за межі. Це особливо важливо в сценаріях з обробкою конфіденційних документів (договори, медичні записи, вихідний код). Наприклад, при RAG з файловою системою sandbox запобігає індексації файлів за межами дозволеного каталогу. Без sandbox ризик галюцинацій зростає в 3 рази. Sandbox знижує ймовірність інцидентів на 95% — у 20 разів краще, ніж без ізоляції.
Кейс з нашої практики: автоматизація обробки вхідних документів
Ось реальний приклад від нашого клієнта. Один із наших клієнтів — юридична фірма, яка отримує до 150 вхідних документів на день. Раніше співробітники вручну відкривали PDF, вилучали реквізити (дата, номер, сторони, сума) та заносили в CRM. Це займало 4–5 годин щодня. Це реальний кейс з нашої практики.
Ми розробили AI-агента, який:
- Сканує папку
incoming/— знаходить нові PDF. - Конвертує їх у текст (через зовнішній OCR) і зберігає в тимчасовий файл.
- Для кожного файлу викликає GPT-4 з інструкцією вилучити структуровані дані.
- Записує результат у JSON-реєстр (
registry/processed.json). - Переміщує оброблений PDF в архів
processed/.
Результати:
- Час обробки: з 5 годин до 20 хвилин — у 15 разів швидше.
- Точність вилучення реквізитів: 87% (понад поріг клієнта в 80%).
- Кількість оброблених документів за годину: 180–200 (проти 3–5 вручну) — у 40 разів більше.
- Єдиний false positive: агент один раз неправильно класифікував рахунок як лист (виправили донавчанням промпту).
- Економія для клієнта становила близько $15 000 на рік (скорочення 4 годин ручної праці щодня).
Це кейс нашого клієнта, який ми успішно вирішили. Агент працює в production уже пів року без інцидентів. Цей успішний кейс підтверджує наш досвід.
Порівняння підходів: без sandbox і з sandbox
| Характеристика | Без sandbox | З sandbox |
|---|---|---|
| Доступ до файлів | Повний доступ до системи | Тільки виділена директорія |
| Ризик витоку | Високий (до 70% інцидентів) | Низький (менше 5%) |
| Ліміти за розміром | Немає | 10 МБ на файл, 100 МБ на сесію |
| Відтворюваність | Низька — можуть бути побічні ефекти | Висока — ізольоване середовище |
| Час впровадження | 1-2 дні | 3-5 днів |
Sandbox знижує ймовірність інцидентів безпеки на 95% (за даними нашої статистики за останні 30 проєктів). У 20 разів менше ризику — такий результат ми отримуємо в кожному проєкті.
Які етапи включає розробка AI-агента?
Етапи розробки AI-агента
| Етап | Що робимо | Результат |
|---|---|---|
| Аналіз | Вивчаємо ваші процеси та безпеку | Технічне завдання з метриками |
| Проєктування | Визначаємо sandbox, список дозволених дій, модель | Документація архітектури |
| Розробка | Пишемо код інструментів, інтеграцію з LLM, обробку помилок | Робочий прототип у Docker |
| Тестування | Перевіряємо безпеку, навантаження, точність | Звіт про тестування |
| Деплой | Розгортаємо на вашій інфраструктурі, налаштовуємо моніторинг | Продакшен-версія з інструкцією |
| Підтримка | Навчаємо вашу команду, надаємо гарантію 3 місяці | Супровід та доопрацювання |
Терміни та вартість: орієнтовні діапазони
- Розробка базового агента (читання/запис/пошук у sandbox): 3–5 днів.
- Агент для конкретного workflow (ваш формат документів, логіка класифікації): 1–2 тижні.
- Тестування безпеки (pen test, навантажувальне): 3–5 днів.
- Повний цикл: від 2 до 4 тижнів.
Вартість розраховується індивідуально — залежить від складності процесів, кількості інструментів та вимог до безпеки. Для типових проєктів бюджет становить від $2,000 до $7,000. Оцінимо ваш проєкт безкоштовно — зв'яжіться з нами.
Що входить в роботу
- Аналіз вимог та аудит безпеки
- Проєктування архітектури sandbox та інтеграції
- Розробка коду інструментів файлової системи
- Інтеграція з мовною моделлю (function calling)
- Документація API та інструкція з використання
- Тестування безпеки, навантаження та точності
- Деплой на вашу інфраструктуру (Docker)
- Навчання команди замовника
- Гарантійна підтримка 3 місяці
Чому варто замовити розробку у нас?
Ми спеціалізуємося на AI-рішеннях понад 5 років (5+ років досвіду). За цей час виконали 30+ успішних проєктів з автоматизації за допомогою мовних моделей. Наші агенти працюють у рітейлерів, логістичних компаній та медичних установах. Гарантуємо:
- Роботу в рамках строгого sandbox (жодних витоків).
- Прозору архітектуру — ви завжди знаєте, що робить агент.
- Підтримку після деплою та доопрацювання під нові завдання.
Хочете так само? Отримайте консультацію — обговоримо ваш кейс і підготуємо пропозицію. Для оцінки вашого проєкту звертайтеся до нас.







