Skip to content

SteelMorgan/1c-agent-based-dev-framework

Repository files navigation

1C BSL Agent Development Framework

Фреймворк агентной разработки для 1С BSL с применением модульного подхода. Позволяет настроить AI-агентов (Cursor, Claude Code и др.) для работы с конфигурациями 1С через MCP-серверы — без привязки к конкретным провайдерам, с кросс-ревью и tier-ингом моделей.


Основные требования к фреймворку:

  • обеспечить loopback агенту в процессе работы с 1С
  • реализовать работу агента по методологиям SDD + TDD (docs/info/sdd.md, docs/info/tdd.md)
  • навыки привязываются к возможностям (capability), а возможности могут реализовываться разными MCP (чтобы не доказывать, чей MCP длиннее и толще)
  • стараться собирать инструменты и скрипты так, чтобы они были выполнимы в любой среде (например, не привязываться к PowerShell, чтобы работало и в Linux). Честно скажу: вышло не везде — буду рад, если поправите то, с чем столкнётесь.

Что можно добавить:

  • оптимизации для работы с контекстом и памятью (например, как у @Jefest9988 с внешней памятью и хуками на размер контекста)
  • инсталлер выбранных MCP (и тогда каталог доступных MCP в каком-то виде?)
  • работу с GUI (в идеале Vanessa, но пока интересные наработки есть у @Shirokov_Nikolay в этом гайде). Тут сложности с тем, чтобы инструмент работал внутри докер-контейнера, где графика реализована через noVNC и виртуальные экраны. Механизм Николая завязан на работе с элементами веб-клиента. noVNC — это не веб-клиент, хотя и показывает экран через браузер и даже позволяет «кликать». Нужно выяснять, как это работает технически, и тогда будет ясно, можно ли механизм Николая прикрутить. Но, повторюсь, в идеале нужно доделать Vanessa, чтобы агент мог писать для неё тесты, запускать и получать результат (чтобы Vanessa формировала некий отчёт о действиях и сохраняла его на диск, как это сделано в YaxUnit Runner)

Ключевые возможности

  • Модульность и Единый источник истины — навыки, правила, агенты и воркфлоу подключаются отдельно, через инсталлер. Подключение — не копирование файлов фреймворка, а создание на них симлинков. Это позволяет «подсунуть» навыки в проект, физически сохраняя их в одном месте. Поменяли один навык → он изменился для всех проектов.
  • RUS-ENG зеркало. Мы работаем с навыком на русском языке (для облегчения понимания), агент внутри фреймворка (работаем с фреймворком тоже через агента) автоматически зеркалирует файл в англоязычный вариант. В ваших проектах 1С симлинки будут вести на англоязычные файлы с целью экономии контекста (детальная информация: docs/info/ru-en-mirror.md).

Что нужно знать, что бы начинать работу с Кодинг-агентами вообще

Дополнительная информация


"Объясните мне на пальцах, что может эта ваша штука?"

  1. Развертка песочницы позволяет кодить и не опасаться, что агент убьет данные
  2. Установка фреймворка в проект в сабагентном режиме, после установки всех описанных МСР, позволяет реализовать полный цикл в котором: А) Агент пишет спеку на вашу задачу (кто не понял почему это важно - вернитесь на шаг назад и прочитайте "Что нужно знать...") Б) Пишет тех.задание В) Пишет юнит-тесты под спеку Г) Кодит Д) Всё это тестирует и прогоняет юнит-тесты (да, в докер контейнере, всё прямо там и без вашего участия) Е) Всё это ревьювит вторым агентом (GPT через Codex, например)

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


Устройство проекта и инструментарий

Здесь, в docs/info/mcp.md, соберу ссылки на инструменты, которые использую сам в рамках этого фреймворка. Много «моих» инструментов, потому что писал сам для себя то, чего не нашёл в открытом доступе. Не стесняйтесь предлагать свои решения — я буду рад расширить «модельный ряд», если ваше решение тоже OPEN SOURCE и даёт дополнительные возможности.

Основа — это клиентская песочница + виртуалка для серверных служб (1С, Postgre, Apache) SteelMorgan/1c-ai-sandbox-client-server (клиентская и серверная часть работают на вашей комьюнити-лицензии, активация встроена автоматически в обе части). В клиентской песочнице уже добавлен предустановленный набор всего, что может потребоваться. Если чего-то не хватает, то: [ПРАВИЛЬНО] — дать агенту ЦУ добавить установку нужного компонента в клиентскую часть песочницы и сделать ребилд контейнера. Это даст воспроизводимость (инфраструктура как код). [НЕПРАВИЛЬНО] — установить внутри песочницы (будет потеряно при ребилде контейнера)

IDE — я лично использую Cursor (начинал с него, привык), но даже не оплачиваю его (просто как оболочка, легко заменяется на VS Code). Код-агенты — Claude CLI, Codex CLI (опционально Gemini CLI, но мне лично не особо зашёл). На практике получилась хорошая связка: Основные агенты (спека, кодинг) — Anthropic (Opus, Sonnet) Ревьювер — Codex (GPT 5.3)


Варианты работы

  1. Соло-агент
  2. Сабагенты

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

  • например, применено англоязычное зеркало, так как работа с кириллицей занимает у LLM больше токенов. Сейчас мы читаем и редактируем русскоязычную инструкцию, а агент автоматически синхронизирует её с англоязычным зеркалом
  • декомпозировать задачу на шаги и каждому агенту выделить свой кусок и навыки, необходимые только для этого куска. Тогда навыки съедят меньше контекста и агенту легче будет держать фокус на задаче (и учитывать и применять правила)

Сабагентный путь начинается с правила framework/rules/framework-bootstrap.mdc. Детальную информацию об устройстве «рабочего процесса» можно извлечь из framework/workflows/full-cycle.md и framework/workflows/orchestrator.md.

Мульти-агентный режим пока не пробовал. По сути это развитие сабагентного варианта, должно быть интересно (в смысле улучшить результат).


Документация

Проектирование и анализ — docs/specs-and-analisys, но там не всё актуально. Сохранено «на всякий случай»... Может, даже стоит удалить.


Warning

Policy: NO COMMERCE

В репозиторий принимаются только решения с открытым исходным кодом и бесплатным использованием.

Не предлагать к интеграции:

  • закрытые (proprietary) решения;
  • платные продукты/сервисы.

Даже если решение технически сильнее, оно не подходит под политику этого проекта.


Проектные навыки и правила

Фреймворк разделяет навыки на два уровня:

Уровень Где лежит Что содержит Кто редактирует
Фреймворк framework/skills/, framework/rules/ Универсальные навыки BSL, стандарты, политики Сообщество фреймворка
Проект Каталог проекта, предусмотренный IDE Навыки и правила конкретного проекта/конфигурации Команда проекта

Проектные навыки — это знания, актуальные только для вашего проекта:

  • Особенности конфигурации (какие подсистемы, какие модули критичные)
  • Локальные coding conventions (если отличаются от стандарта ИТС)
  • Бизнес-правила (например: "документ X всегда проводится через регистр Y")
  • Маппинг ролей и прав
  • Инструкции по работе с нетиповыми обработками Проектные навыки коммитятся в репозиторий проекта и доступны всей команде.

Куда размещать: В инсталлере tools/install.py уже зашиты все сопоставления. Если они ошибочны или не актуальны — поправьте (конечно же через агента, а не собственными руками), сделайте PR. Многим 1Сникам непонятно, как работать с Git. Коллеги, всё предельно просто: все детали знает агент (Git знает на зубок, сделает всё что надо), вам достаточно знать базу (docs/info/git.md), чтобы понимать процесс.


Структура каталогов

1c-agent-based-dev-framework/
├── docs/                     # Спецификации и исследования
│   └── SPEC-001-framework-architecture.md
├── framework/                # Ядро на русском языке (источник правды)
│   ├── skills/              # tool-usage, bsl-practices, spec-writing, *_ext
│   ├── rules/               # mandatory-tools, cross-review, TDD, SDD
│   ├── subagents/           # Роли: analyst, architect, developer, etc.
│   └── workflows/           # full-cycle, quick-fix, orchestrator
├── framework_eng/            # EN-зеркало (генерируется автоматически, не редактировать)
│   └── ...                  # Идентичная структура, переведённые файлы
├── tools/
│   ├── install.py            # CLI (clone, install) — симлинки на framework_eng/
│   ├── sync-skill.py        # RU→EN синхронизатор через Codex CLI
│   ├── hooks/pre-commit     # Git хук (скопировать в .git/hooks/)
│   ├── tui.py               # TUI-интерфейс для CLI
│   └── model-defaults.json  # Маппинг моделей по IDE
├── .claude/CLAUDE.md         # Правила для агентов (языковая политика, синхронизация)
├── .skills-sync-state.json   # Реестр синхронизации (хэши RU/EN, статусы)
└── README.md

MCP-серверы с готовыми tool-usage навыками

Детальная информация здесь: docs/info/mcp.md. Что, почему, добавление новых.


Навыки и правила

Детальная информация здесь: docs/info/skills.md


Расширение фреймворка

Фреймворк содержит группу навыков framework/skills/framework-meta, которые не устанавливаются в проекты. Эти навыки предназначены для работы по изменению/доработке фреймворка и «засимлинчены» в каталогах IDE/CLI (.agents, .claude, .cursor и т.д.).

Методологическая информация по tool-usage-навыкам указана в docs/info/mcp.md Все файлы содержат frontmatter (yaml-блок в начале файла) — по стандартам Anthropic, и backmatter (yaml-блок в конце файла) с полем depends_on. Это поле хранит навыки и правила, на которые опирается (не имеет смысла без них) текущий файл. Это нужно для корректной работы инсталлятора.


Установка фреймворка в проект

  1. Перейти в каталог фреймворка (НЕ проекта!)
  2. Запустить терминал, выполнить:
# Запустить инсталлятор
python tools/install.py
  1. Выбрать IDE/CLI, которые вы будете использовать в проекте (можно несколько сразу)
  2. Выбрать каталог проекта (куда будут установлены симлинки)
  3. Выбрать файлы фреймворка (навыки, правила, сабагенты и т.д.)
  4. Подтвердить установку
  5. Создать корневой CLAUDE.md или AGENT.md, если требуется. Для Claude и Codex это обязательно, чтобы подхватить «стартовые правила». Cursor подхватывает всё автоматически.

Инсталлятор поддерживает операции «деинсталла» и «переустановки». В принципе есть навык для агента, который описывает все возможности инсталлятора через CLI-режим. Но я его не тестил :)


Лицензия

MIT (или на выбор пользователя).


Благодарности

  • Референсные репозитории по навыкам и правилам: comol/cursor_rules_1c, AndreevED/1c-ai-feature-dev-workflow, rmartynenko/workflow-dev-1c-claude-code, Nikolay-Shirokov/cc-1c-skills
  • Референсные репозитории по клиентской и серверной частям песочницы: firstBitMarksistskaya/onec-docker, pravets/onec-images, alexandermyasnikov123/onec-community-docker
  • Сообщество: https://t.me/onec_neurofish
  • Паттерны и практики: Anthropic Claude, Cursor IDE

Хочу выразить искреннюю благодарность всем, кто помогал мне советом, делом или критикой при разработке и сборки этого фреймворка. Не перечисляю никого по-именно, что бы никого не забыть :) Много интересных решений родилось благодаря именно критике и откровенной оценке имеющихся проблем со стороны сообщещства "Нейроселедок"

About

Фреймворк агентной разработки на 1С

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors