Чуть больше подробностей о мега-творении
Часть 1: //infostart.ru/1c/articles/2754220/
Я - практикующий разработчик 1с, архитектор приложений и я не открывал конфигуратор ни разу там, где у меня работают роботы
Железо: мак на М5Про, винда на леново
Все базы 1с на разных серверах, удаленно
В целом вся архитектура моей разработки заточена на работу "внедренца", который не может у каждого заказчика разворачивать ИИ среды, включать ВПНы и таскать с собой каталоги скилов, МСиПи
ИИ Софт
Все управление агентами, которые пишут код, я выполняю через Клод код. Подписка Макс за 100$
Я не трачу время на подбор моделей, не подсчитываю токены, не отдаю на реализацию в курсор. У меня и курсор не установлен
Для всех задач пока подходит модель Sonnet (low)
Лимитов хватает с запасом. Сегодня впервые за 2 месяца я достиг недельного лимита, который обновится через 3 часа и вот появилось время заняться описанием того софта, который нужен для работы
Скилы
Конечно же, есть загружены скилы, которые я не буду перечислять, потому что не пользуюсь ими)
Когда я проанализировал то, как агент исполняет написанное я понял, что скил - это рекомендация, а не жесткое требование.
На объемных задачах агент позволяет себе забывать и игнорировать требования скилов
Вместо этого, я коплю базы знаний, которые передаются агенту программно в нужный момент, не засоряя контекст
Хуки
Все самописное)
А вот это уже полезное
Хуки могут вызывать скрипты (в моем случае python). Код в скрипте не получится игнорировать, он блокирует любую самодеятельность ИИ, если вдруг она пошла куда-то не туда
Перед началом решения любой задачи агент получает инструкции по программированию. Общие правила стиля, какие-то ключевые моменты (равнозначно загрузке скилов, но грузится по ситуации, а не каждый раз на каждый запрос)
Во время добавления строки или абзаца кода bsl - обязательный контроль синтаксиса, вызываемых методов и предложенных решений. Online. ИИ надо очень постараться, чтобы обойти рекомендации вместо реального метода написать выдуманный
На каждый конец процедуры-функции, цикла, условного оператора - bsl линтнер. Лайт версия, только короткие легкие проверки. Контролирует общие правила написания кода. Обычно это поручают сонару, но я прикрутил сразу
После написания всего модуля - еще раз проверка линтнером, но уже целиком и углубленно
Агент не получит доступ к отладке и деплою пока не пройдет этот этап
MCP
Все самописное)
knowledgeBase - аналог есть на ИС. Кешированный синтакс-помошник с четким и нечетким поиском, примерами кода. Поверх навешаны связи графа. Подробности опишу, если попросите в комментариях
Кешированный ИТС тоже там, но на практике используется редко
bsl-Cartograph - реальный граф, кеширующий всю конфигурацию. Типовые и нетиповые функции. Расширения. Дописывает описания функций, где нет комментариев. Четкий и не четкий поиск, циклические зависимости. Все учетно
Нужен, чтобы ИИ не изобретала велосипеды
В упомянутых выше 100 000 строк кода - 30% было дублированием. bsl-Cartograph помог это победить без смс и регистрации
liteApps1сMCP - шлюз для доступа к базам 1с. Общается кодом с разными базами, передавая на исполнение и отладку код, написанный агентом. Про безопасность и 152ФЗ - ниже
liteApps1сDebugger - локальный (для мак) сервер, который может подключиться к удаленной базе по http и выполнять отладку. Все функции из конфигуратора. Пошагово отлаживает, меняет значения переменных на лету. Применяется редко, т.к. модель умная и базы знаний дают достаточно контекста
Все компоненты могут общаться между собой по протоколам REST, RPC, stdIO и переиспользоваться в разных сценариях
Harness
Задачник tasksDB
Раньше, каждый уважающий себя 1сник должен был написать свой универсальный обмен или консоль запросов
Теперь - каждый должен написать себе MPC и конвеер разработки
База с задачами, где вручную или силами оркестратора я запускаю консоли клода для старта разработки
Наследована концепция Jira + прошиты кодом требования, которые знающие вы встречать в составе скилов SuperPowers и GetSheetDone.
Я попробовал все. И везде, где можно обойти текстовые инструкции ИИ их обходил. Поэтому только кодом:
- Описание
- Критерии успеха
- Связи
- Блокирующие задачи
- Описание как было решено и целая куча мелочей
Для себя нарисовал интерфейс. Почти не пользуюсь интерфейсом. Вкалывают роботы)
liteAppsRelay
Очередь задач для обмена с удаленными базами, которые не опубликованы по HTTP. Надо же как-то отправлять на исполнение код, который написан локально, да? Чем-то похож на Reddis и Kafka. Гибрид их концепций, решающий конкретную задачу.
Безопасность
liteAppsAIProxy152
На лету обезличивает данные, которые улетают в Антропик. Налету восстанавливает то, что вернулось к читаемому виду. Клод код не замечает всего этого всего
+ удаляет пароли, секреты, адреса серверов из контекста, конечно)
Использует обезличивание по словарю и при помощи локальной ИИ, которую можно дообучать. Но вообще - достаточно словаря, который обновляется из реальной 1с
Анализ данных 1с, содержащих сведения, требующие обезличивания выполняется обработкой, которая строит код рег. задания. Рег. задание скидывает в кеш инструменту словари для его работы. Все работает "само", конечно же)
Бизнес-Процесс
Пришла задача по любому каналу.
Редиректю мышкой в телегу или на почту, которую читает робот
Первый шаг - добавить в задачник. При любой попытке что-то добавить, робот получает инструкции в контексте "Сначала спецификация" и вынужден догадаться, придумать или спросить у меня подробности о задаче. Именно тут определяются критерии готовности. Не получится записать задачу, если она не проработана. Встроенный в задачник механизм контролирует всякую банальщину и постоянно скидывает инструкции
Декомпозиция
Вот тут всплыл скил. Использую за основу скилы от гугл, описывающие как работать с задачами. По сути тоже копия SuperPowers и GetSheetDone
Старт разработки с целью получить прототип
Не делаем целиком. Мало ли чего там робот нафантазировал
Запись видео с демонстрацией того, как работает прототип
Передаю заказчику, иногда показываю сам
Разработка, тестирование, сдача работ
Эту рутину можно и не описывать
Когда-то тут будет раздел про автотесты, но пока его нет
Вступайте в нашу телеграмм-группу Инфостарт