MWS_LocalScript.mp4
Локальная автономная агентская система для генерации, валидации и итеративного улучшения Lua-скриптов под платформу LowCode.
Решение создано строго в рамках технических ограничений хакатона. Оно полностью изолировано (работает без интернета), не использует внешние API (OpenAI/Anthropic) и гарантирует безопасность контура.
-
Многоуровневая валидация (LangGraph) Мы реализовали полноценный инженерный цикл:
- Уровень 1 (Синтаксис): Проверка через
luac -p. - Уровень 2 (Логика и Среда): Статический анализ через
luacheck. Мы обучили линтер специфике LowCode платформы (разрешены глобальные переменныеwf,_utils). - Self-Reflection: Если линтер находит ошибку (например, попытку создать запрещенную глобальную функцию), LangGraph автоматически возвращает лог ошибки в LLM для исправления (до 3 итераций).
- Уровень 1 (Синтаксис): Проверка через
-
Stateless память и итеративная доработка Бэкенд не использует тяжелые базы данных для хранения сессий, экономя память и CPU. «Память» агента реализована на стороне клиента (Context API). Если юзер просит: "добавь в эту функцию проверку на ноль", система передает предыдущий код в поле
context, и агент бесшовно дорабатывает его. -
Легковесный smart RAG (база знаний) Вместо тяжелых векторных БД мы написали алгоритм умного скоринга по тегам (Keyword Scoring). Шаблоны из
templates.jsonинжектятся в LLM через строгие XML-теги (<instruction>,<template>). Это позволяет модели писать сложный код (например, конвертацию ISO 8601), не превышая жесткий лимит в 256 токенов. -
Защита от галлюцинаций (уточняющие вопросы) Если запрос неоднозначен или юзер просит доработать код, но не прикрепил его, системный промпт жестко блокирует "фантазию" модели. Агент возвращает уточняющий вопрос в виде валидного Lua-комментария (
-- Пожалуйста, уточните...).
Система оптимизирована для работы на GPU с ограничением ≤ 8.0 GB VRAM.
- Модель:
qwen2.5-coder:7b(4-bit квантизация, идеальный баланс качества и веса) - Движок: Ollama
- Строгие параметры генерации:
num_ctx=4096,num_predict=256 - Параметры Ollama:
OLLAMA_NUM_PARALLEL=1,OLLAMA_MAX_QUEUE=1(настроено в окружении) - Потребление VRAM: ~6.2 GB в пике (укладывается в лимит nvidia-smi)
Все зависимости, окружение, утилиты (luac, luacheck) и сам запуск упакованы в Docker.
- Клонируйте репозиторий и выполните команду:
docker-compose up --build -d
Примечание: При первом запуске скрипт автоматически выполнит ollama pull qwen2.5-coder:7b внутри контейнера. Никаких ручных действий не требуется.
- Откройте удобный UI-интерфейс в браузере: http://localhost:8080
Система полностью поддерживает baseline-контракт организаторов с аккуратным расширением для поддержки итераций (опциональное поле context).
app/agent.py- мозг системы (LangGraph, промпты, RAG, валидация)app/main.py- fastAPI роутер (OpenAPI спецификация)app/templates/templates.json- локальная база знаний LowCode паттерновapp/index.html- легковесный клиент с поддержкой памяти сессийDockerfile/docker-compose.yml- инфраструктура