Обсуждение статьи "Создание и использование Скиллов для создания артефактов MQL"

 

Опубликована статья Создание и использование Скиллов для создания артефактов MQL:

В статье показано, как использовать концепцию Скиллов в MetaTrader 5 для генерации MQL5‑скриптов с помощью встроенного AI Assistant и Model Context Protocol. Разбираем структуру файла Скилла SKILL.md, условие активации по тегу Artifact, проверку ТЗ, входных параметров и выбор шаблона. Результат — воспроизводимый процесс и единый стиль артефактов при меньших трудозатратах.

Вероятно, сейчас уже не осталось ни одного человека, который бы ничего не знал о нейросетях. И вероятно, не осталось ни одного разработчика, который бы ничего не слышал о Скиллах — наборах инструкций, с помощью которых AI Assistants выполняют специализированные задачи по заданным схемам.

В этой статье мы поговорим о том, как концепция Cкиллов работает внутри MetaTrader 5. В билде 6060 платформа получила встроенный AI Assistant (далее — Ассистент) с нативной поддержкой Model Context Protocol (далее — МСП) и агентного ИИ. Это значит, что ассистент — тот самый, что открывается по кнопке на панели инструментов терминала и в MetaEditor, — умеет не просто вести диалог, а выполнять действия в среде: читать и создавать файлы, работать с шаблонами, подготавливать артефакты MQL5, обращаться к рыночным данным и торговому окружению — в рамках настроенных вами разрешений.

Skill (далее — Скилл) — это осмысленная компетенция AI Assistant, обогащённая специализированными знаниями и оформленная как повторяемый, оцениваемый блок поведения. Такую компетенцию Ассистент может вызвать для выполнения конкретной задачи.

Ассистент хорошо пишет код, но без внешнего контекста и инструментов его работа остаётся «одноразовой». Результат приходится вручную сохранять в файл, проверять, форматировать и дополнять. Каждый новый артефакт — это заново пройденный путь: вставить шаблон, вспомнить обязательные поля, проверить параметры, соблюсти стиль, не забыть про иконку и директивы. Добавление Скилла задаёт повторяемые правила, а МСП даёт Ассистенту доступ к файловой системе, шаблонам и операциям над проектом. В полной связке это превращает Ассистента в инженерный инструмент подготовки MQL-артефактов. 


Автор: Andrei Novichkov

 

5 копеек. Зачем вот так писать (и все сопутствующие базовые вещи):

Structs, classes, and unions are always rejected, even if described in the task or already declared in the script — MQL5's input keyword does not support them, so this is a hard rule with no exceptions.

Зачем здесь перечисляются некоторые пользовательские типы, но не все (в частности по каким-то соображениям опущены interface, void, matrix, vector и т.д. - как-будто подтверждая мысль, что формулировки "от противного" обычно неточны)? Зачем в принципе повторять документацию MQL5?

Если уж очень хочется напомнить агенту, что он в среде MQL5, то почему не написать просто, что:

Входные параметры должны быть только типов, разрешенных в MQL5, а их имена соответствовать правилам составления идентификаторов MQL5.

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

 
Stanislav Korotky #:

5 копеек. Зачем вот так писать (и все сопутствующие базовые вещи):

Зачем здесь перечисляются некоторые пользовательские типы, но не все (в частности по каким-то соображениям опущены interface, void, matrix, vector и т.д. - как-будто подтверждая мысль, что формулировки "от противного" обычно неточны)? Зачем в принципе повторять документацию MQL5?

Если уж очень хочется напомнить агенту, что он в среде MQL5, то почему не написать просто, что:

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

Мы только начали. Это "бэби" скилл, мы его будем развивать во второй части. И мы не говорим о промптах, мы говорим о скиллах. В частности, из этого следует, что упоминать рабочий язык избыточно. Кроме того, хочу заметить, что по моему опыту, повторять документацию агенту бывает очень не лишне. Агент очень просто может проигнорировать что угодно в отсутствии прямого запрета / разрешения. У меня несколько дней назад агент утверждал, что входные параметры можно изменить из кода, что это не константа, что все скомпилируется. А самое забавное, он ссылался как раз на документацию! "В документации MQL5 сказано, что такое присваивание разрешено", - не точно, но очень близко к его тексту. Это реальный случай. Но в целом, спасибо за замечание.