Хранилище данных

Как агенты Clawmatic работают с данными: изолированные PostgreSQL-схемы, создание таблиц и операции с данными

Обзор

Каждый агент Clawmatic получает собственное изолированное хранилище данных на базе PostgreSQL. Это позволяет агенту хранить информацию, создавать таблицы и выполнять запросы — всё в безопасном и независимом окружении.

Как это работает

Изоляция на уровне схем

При создании агента платформа автоматически выделяет отдельную PostgreSQL-схему (например, agent_abc123). Каждая схема:

  • Полностью изолирована от других агентов
  • Имеет собственного пользователя БД с ограниченными правами
  • Не может обращаться к данным других схем

Прокси доступа

Все запросы агента к базе данных проходят через прокси доступа, который:

  • Проверяет, что запрос не выходит за пределы разрешённой схемы
  • Контролирует соблюдение лимитов тарифного плана (количество таблиц, объём данных)
  • Устанавливает таймауты для предотвращения «зависших» запросов
  • Логирует DDL-операции (CREATE, ALTER, DROP)

Создание таблиц

Агент может создавать таблицы через SQL. Например, для хранения обращений клиентов:

CREATE TABLE customer_requests (
  id SERIAL PRIMARY KEY,
  customer_name TEXT NOT NULL,
  telegram_id BIGINT,
  message TEXT NOT NULL,
  status TEXT DEFAULT 'new',
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Ограничения по тарифу

| Тариф | Макс. таблиц | Макс. объём | |-------|-------------|-------------| | Free | 3 | 100 МБ | | Pro | 20 | 1 ГБ | | Business | Без ограничений | 10 ГБ+ |

При попытке создать таблицу сверх лимита прокси вернёт ошибку с пояснением.

Операции с данными

Агент может выполнять стандартные SQL-операции:

Запись данных

INSERT INTO customer_requests (customer_name, telegram_id, message)
VALUES ('Иван Петров', 123456789, 'Вопрос о доставке');

Чтение данных

SELECT * FROM customer_requests
WHERE status = 'new'
ORDER BY created_at DESC
LIMIT 10;

Обновление

UPDATE customer_requests
SET status = 'resolved'
WHERE id = 42;

Удаление

DELETE FROM customer_requests
WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '30 days';

Мониторинг использования

В дашборде доступна статистика по хранилищу каждого агента:

  • Количество таблиц — сколько таблиц создано
  • Объём данных — общий размер данных в мегабайтах
  • Количество строк — приблизительное число записей
  • DDL-операции — журнал создания и изменения таблиц

Данные обновляются ежечасно. При приближении к лимиту система отправит уведомление.

Биллинг хранилища

Хранилище включено в тарифный план. Расчёт ведётся по двум метрикам:

  • Количество таблиц — жёсткий лимит по тарифу
  • Объём данных — измеряется через pg_total_relation_size() для всей схемы

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

Безопасность

  • Каждая схема имеет изолированного пользователя БД без доступа к другим схемам
  • DDL-операции проходят через прокси с проверкой лимитов
  • Таймауты предотвращают зависание запросов (30 секунд по умолчанию)
  • Резервное копирование выполняется автоматически на уровне всей БД