Агент по данным 1С, работающий полностью локально: инференс GLM-5.2 (744B MoE) с диска через colibri, интеграция с 1С:Предприятие 8.3 по стандартному OData. Никаких внешних API — железное правило №0 (воздушный зазор) закреплено конфигом, рантайм-защитой (netguard) и CI (статический скан + прогон в netns без интернета).
- «Найди все непроведённые реализации за июль по контрагенту X»
- «Сверка: что мы отгрузили ООО "Ромашка", но не получили оплату»
- «Подготовь черновик счёта на основании прошлого заказа»
Ответы всегда со ссылками на документы («№РТ-0002 от 10.07.2026»). Агент никогда не изменяет данные в 1С без подтверждения человека: доступно только создание черновиков, проведение — вручную в 1С. Все действия — в append-only аудит-журнале (var/audit.log).
# 1. Установка: собирает движок из vendor/, скачивает модель, готовит конфиг
./tools/install.sh # или --model qwen для Qwen3-30B-A3B
# 2. Доступ к 1С: хосты и пользователь
$EDITOR config/perimeter.yaml # создан установщиком из perimeter.example.yaml
export PERIMETER_1C_PASSWORD=… # пароль пользователя ИБ (не в конфиге!)
# 3. Запуск (inference + агент + UI на http://127.0.0.1:8091)
python3 run_perimeter.pyИнтернет нужен только при установке — для пакетов сборки и весов модели.
Для закрытого контура: выполните установку на машине с доступом и перенесите
каталог целиком (веса лежат в models/).
Требования: Python 3.12+, gcc/make. Для GLM-5.2 — NVMe от 500 ГБ и оперативная память, которая и определяет скорость: 32 ГБ хватает только «посмотреть» (замерено: 0,07 ток/с), для рабочего режима нужны 128 ГБ. Измерения и методика — docs/hardware.md. Runtime-зависимостей pip нет — всё в vendor/.
Два канала, оба без доработки конфигурации:
-
OData — штатный интерфейс платформы 8.3; нужна публикация базы на веб-сервере.
-
Обратное подключение — внешняя обработка внутри сеанса 1С сама опрашивает «Периметр». Публикация не нужна, входящих соединений к 1С нет. Установка и протокол —
bridge-1c/robot1c/README.md.Про базовые версии — не проверено. Публикация на них невозможна, поэтому обратное подключение остаётся единственным вариантом; но интерактивное открытие внешних обработок на базовой платформе ограничено, и штатный путь — регистрация в справочнике «Дополнительные отчёты и обработки». Ни то, ни другое мы на живой базовой базе не проверяли, поэтому обещать работу на базовой версии пока нельзя. См.
docs/research.md.
| Каталог | Содержимое |
|---|---|
core/ |
ядро агента (адаптация архитектуры openworker), i18n, аудит, netguard |
inference/ |
супервизор и клиент локального OpenAI-совместимого сервера (colibri / llama.cpp) |
bridge-1c/ |
два канала к 1С (OData и робот-обработка без публикации базы), маппинги БП 3.0 / УТ 11 / ЗУП 3.1, инструменты агента |
skills/ |
навыки (SKILL.md, прогрессивная подгрузка) |
ui/ |
локальный веб-UI (stdlib, без внешних ассетов) |
config/ |
perimeter.yaml — единственное место с разрешёнными хостами |
vendor/ |
вендореные зависимости (colibri, PyYAML) с лицензиями |
docs/ |
research.md, STATUS.md, deps.md, hardware.md |
python3 -m pytest tests # юнит + интеграция + e2e (мок-1С, без сети)
python3 tools/ci/airgap_scan.py # статический скан правила №0
bash tools/ci/netns_test.sh # прогон без интернета (netns)Живой прогон сценариев на полной модели: PERIMETER_E2E_LLM_URL=http://127.0.0.1:8090 python3 -m pytest tests/e2e -k live.
Код «Периметра» — MIT (свободное и коммерческое использование). Вендорено: colibri (Apache-2.0), PyYAML (MIT); веса GLM-5.2 — MIT (zai-org). Полный реестр — docs/deps.md.
Лендинг проекта: docs/index.html (GitHub Pages).