Архитектура сервиса

Как устроен AI Agent for 1C: какие компоненты участвуют в обработке задачи, какие у агента есть инструменты, как обеспечивается безопасность и куда мы движемся. Для большинства пользователей знать эти детали не обязательно — нужны тем, кто хочет понять «как именно» и «что под капотом».

1. Где живут ваши данные

Сервис состоит из двух физических контуров. Ваш контур — ваша 1С:Предприятие и оборудование. Наш контур — облачные серверы оператора. Граница между ними жёстко контролируется.

Ваш контур

На стороне 1С

База данных, конфигурация, документы, регистры. Расширения «Адаптер» и «Панель Агента» работают внутри 1С, в адресном пространстве вашего сервера приложений 1С. Конфигурация целиком на наши серверы не передаётся — на индексацию уходят только производные данные (имена объектов, типы, связи).

Наш контур

Облачные сервисы

Управляющие сервисы (identity / skill / worker / шлюз / портал / админка), PostgreSQL с per-tenant изоляцией, edge-Caddy с Let's Encrypt. Пароли от ваших 1С и ключи AI-провайдеров хранятся зашифрованными; вне сессии работы агента они не используются.

Кратко. Агент видит вашу 1С через тот же HTTP-интерфейс, что обычное «1С:Предприятие в браузере». Через него передаются только запросы, которые умеет делать ваш собственный пользователь 1С, и с теми же правами.

2. Компоненты

На стороне 1С (BSL-расширения)

Расширение

Адаптер 1С

HTTP-сервис в 1С — точка входа для запросов агента (/hs/mcp/...). Один файл на все базы клиента, ничего не зашивается внутрь. Реализован на BSL. Внутри 1С виден как обычное расширение «Конфигурация → Расширения».

Расширение

Панель Агента

Управляемая форма со списком задач, чатом, событиями в реальном времени, прогрессом и подтверждениями. Уникальна для каждой базы — в неё прошиты адрес сервиса и ваш ключ доступа.

В нашем облаке (Docker-сервисы)

Сервис

identity-server

Control plane: учётные записи клиентов, пользователи кабинета, выпуск JWT-токенов (RS256 + JWKS), шифрованное хранилище кредов 1С-баз и BYOK-ключей AI-провайдеров, лимиты, аудит, привязка demo-пользователей к клиенту.

Сервис

skill-server

Навыки агента (skills) с семантическим поиском по pgvector, кэш знаний на задачу (TaskKnowledge), внешний веб-поиск через Tavily, конфигурации 1С для подсказок агенту.

Сервис

worker

Менеджер задач. Принимает задачи из Панели, запускает Claude Code Agent SDK (или альтернативный runtime: Cursor / opencode) как подпроцесс, держит WebSocket с Панелью для live-обновлений, ведёт историю запусков.

Сервис

mcp-gateway

SSE-шлюз протокола MCP (Anthropic Model Context Protocol). По JWT-токену клиента определяет доступные scope и регистрирует инструменты per-сессии. Точка входа для внешних AI-инструментов (Cursor / Claude Code / n8n / свой код).

Сервис

client-portal

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

Сервис

admin (backend + frontend)

Админ-панель для оператора: CRUD клиентов, выпуск токенов, выдача демо-доступа, просмотр демо-логинов, лимиты, тарифы, live-дашборд задач, отчёт по расходу AI, аудит-лог.

Доп. контур

claude-auth-broker

Используется на тарифах с встроенной AI-подпиской вместо BYOK. Держит OAuth-токены подписки, безопасно рефрешит их и раздаёт сервисам по защищённому каналу. На чистом BYOK не требуется.

Инфра

PostgreSQL · Caddy · WireGuard

PostgreSQL 16 с pgvector в роли основной СУБД, Caddy 2 с Let's Encrypt на входе, WireGuard-туннель для контролируемого outbound к AI-провайдерам в подписочном режиме.

3. Как агент работает с вашей 1С

Полный путь одной задачи — от того момента, когда вы написали её в Панели, до результата:

  1. Постановка задачи

    Вы пишете задачу в Панели Агента. Панель шлёт её в worker по HTTPS (через edge-Caddy) с JWT-токеном, который сидит внутри расширения.

  2. Подготовка контекста

    worker создаёт запись задачи в БД, формирует системный промпт (роль агента, правила безопасности, описание конфигурации вашей 1С), запрашивает у skill-server похожие навыки и подгружает TaskKnowledge.

  3. Запуск AI-агента

    worker запускает Claude Code SDK (или Cursor / opencode — выбирается в настройках). Агенту даётся MCP-сервис с 14 инструментами и переменные окружения с идентификацией клиента и базы.

  4. Обращение в вашу 1С

    Когда агент вызывает MCP-инструмент (query_1c, batch_1c и т.п.), mcp-gateway по JWT понимает, к какой базе обращаться, получает из identity расшифрованные креды и шлёт HTTP-запрос на ваш Адаптер 1С.

  5. Выполнение в 1С

    Адаптер на BSL внутри вашей 1С выполняет запрос от имени того пользователя, под которым он работает, и возвращает результат. Если у этого пользователя 1С нет прав на эти данные — агент получит отказ.

  6. События в Панель

    Параллельно worker шлёт события в Панель через WebSocket: что агент сейчас делает, какие документы создаёт, какие запросы выполняет. Вы видите всё в реальном времени.

  7. Подтверждения перед записью

    Перед операциями, изменяющими данные (создание, проведение, удаление), Адаптер может потребовать вашего подтверждения — это настраивается на стороне 1С.

  8. Завершение и история

    Когда задача готова, агент формирует краткую сводку. История запуска сохраняется и доступна в Панели и в кабинете.

4. Инструменты агента (14 шт.)

Это набор MCP-инструментов (по стандарту Anthropic Model Context Protocol), которые mcp-gateway предоставляет агенту. Перечень фиксирован — агент не может «придумать» свой инструмент. Каждый инструмент требует определённого scope в JWT.

ИнструментНазначениеScopeКуда обращается
session_info_1cИнформация о текущем сеансе 1С mcp:readВаша 1С через Адаптер
metadata_1cМетаданные объектов: реквизиты, типы, ссылки mcp:readВаша 1С через Адаптер
query_1cЗапрос на встроенном языке 1С / выборка данных mcp:readВаша 1С через Адаптер
batch_1cСоздание / изменение / проведение объектов (батч) mcp:writeВаша 1С через Адаптер
invoke_1cВызов произвольного метода/процедуры в 1С mcp:writeВаша 1С через Адаптер
get_skillПоиск похожего навыка по семантике mcp:readskill-server
get_run_historyИстория событий текущего запуска mcp:readworker
skill_reportЗапись нового навыка по результатам задачи mcp:writeskill-server
invalidate_knowledgeПометить устаревшее знание (после правки конфигурации 1С) mcp:writeskill-server
run_taskЗапустить подзадачу (рой агентов) mcp:tasksworker
task_statusУзнать статус подзадачи mcp:readworker
task_stopОстановить подзадачу mcp:tasksworker
web_searchПоиск в интернете (внешняя документация 1С, ИТС) mcp:webskill-server → Tavily API
sleepПауза в работе агента (служебная утилита)

5. Жизненный цикл задачи

Статусы задачи в системе:

СтатусЧто значит
pendingЗадача создана, ожидает свободного worker'а
runningАгент выполняет задачу
pausedЗадача приостановлена пользователем
completedЗадача успешно завершена
failedОшибка выполнения
cancelledЗадача отменена пользователем

В Панели Агента вы дополнительно увидите визуальные фазы — это отображение того, чем агент сейчас занят:

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

Аутентификация и авторизация

Шифрование данных

Учёт и квоты

Изоляция

Что мы НЕ делаем. Не храним полный код вашей конфигурации (.cf, XML, BSL). Не передаём конфигурацию AI-провайдерам как файл — только метаданные и текстовые описания объектов, нужные агенту в момент задачи. Не используем содержимое ваших задач для обучения моделей.

7. Технологический стек

СлойТехнологииНазначение
1С-расширения BSL, .cfe Адаптер (HTTP-сервис) и Панель Агента (управляемая форма)
Backend-сервисы Python 3.10+ · FastAPI · uvicorn identity / skill-server / mcp-gateway / client-portal / admin-backend
Worker Python · Django ORM · Claude Code SDK · WebSocket Запуск агентов, события в Панель, история запусков
Admin-frontend Next.js 15.5 · React 19 · TanStack Query · Tailwind Админ-панель оператора
Portal-frontend HTMX · Tailwind · Jinja2 Личный кабинет клиента
База данных PostgreSQL 16 · pgvector Хранение всех данных сервиса с per-tenant изоляцией
AI-стек Claude Code SDK · Cursor · opencode · Anthropic API · OpenAI · Google · OpenRouter Запуск агентов (выбор runtime) и BYOK на разные провайдеры
Эмбеддинги intfloat/multilingual-e5-large Семантический поиск навыков на pgvector (русский+английский)
Веб-поиск Tavily API Внешний поиск (ИТС, документация)
Edge / TLS Caddy 2 · Let's Encrypt Reverse-proxy и автосертификаты
Outbound WireGuard Туннель к AI-провайдерам в подписочном режиме
Orchestration Docker · docker compose Развёртывание и обновления

8. Дорожная карта

Что планируем сделать дальше — крупными мазками.

В ближайших планах

Критично

Деперсонализация данных

Встроенный механизм маскирования ФИО, ИНН, телефонов, расчётных счетов на стороне 1С перед отправкой запросов агенту. Настраиваемый список полей. Обратный словарь — только на машине клиента; в облако уходят токены.

Панель

Аудит-лог изменений и откат

Вкладки «Изменения» и «Объекты» в Панели: что и когда менял агент, гиперссылки на изменённые объекты 1С, возможность отката — поштучно или целиком по задаче с контролем хронологии и конфликтов.

Память

Память агента между задачами

Поиск по саммари прошлых задач — «сделай как в прошлый раз», поиск аналогичных решений. Оперативная память в разрезе пользователя — инструменты remember / recall и инъекция в контекст при старте.

UX

Файлы, скриншоты, табличные документы

Прикрепление файлов к задаче (ТЗ, исходники), скачивание готовых результатов. Вставка скриншота из буфера прямо в чат — агент распознаёт через vision-модель. Формирование результата как табличный документ 1С (СКД / программная генерация).

Skills

Управление навыками

Инвалидация по TTL и сигналам от неудачных применений. Дедупликация семантических дублей. Таксономия по конфигурациям 1С (БП / ЗУП / ERP / УТ). Мониторинг полезности: реально ли навык помог.

Биллинг

Тарифы и оплата

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

Закрытый контур (полная локальная работа)

Закрытый контур

Локальные LLM-модели

Полностью автономная работа агента без облачных API — данные не покидают контур заказчика. Связка исполнитель + аналитик: Qwen3-Coder для кодинга и tool use, DeepSeek-R1-Distill для reasoning. Запуск через Ollama, переключение под тип задачи.

Закрытый контур

On-premise развёртывание

Полный комплект для установки сервиса на инфраструктуре заказчика: docker-compose, инструкции, обновления. Целевое оборудование для локальных моделей — рабочая станция с RTX 4090 24GB или эквивалент (≈2-3 тыс. руб./мес. электричества, интернет не нужен после первичной загрузки моделей).

Закрытый контур

Air-gapped режим

Поддержка работы без интернета вообще — с фильтрованным outbound только до разрешённого списка endpoint'ов либо с полностью изолированной сетью. Все обновления приходят через подписной канал доставки артефактов.

Дальше

← Вернуться на главную · Регистрация в портале