MIM-агенты
Структура mim.lua
Подробное описание структуры конфигурационного файла mim.lua
Файл mim.lua является основой любого mim-инструмента. В этом разделе разберём его структуру подробно.
Общая структура
Типичный файл mim.lua содержит следующие компоненты:
local mim = {
-- Метаданные
name = "Название инструмента",
description = "Описание инструмента"
}
-- Схема данных
mim.columns = {
-- определение полей
}
-- Промпт для нейросети
mim.prompt = [[
инструкции для AI
]]
return mimМетаданные
name
Отображаемое название инструмента.
name = "Проверка товаров"description
Краткое описание назначения инструмента.
description = "Инструмент для работы с каталогом товаров"Схема данных (mim.columns)
Раздел mim.columns определяет входные и выходные поля инструмента.
Структура поля
mim.columns = {
A = {
label = "Название", -- Отображаемое имя поля
field_type = "STRING", -- Тип данных
is_required = true, -- Обязательность
readonly = false -- Только для чтения
}
}Идентификаторы полей
Поля именуются буквами латинского алфавита (A, B, C, ...), что соответствует колонкам в табличном представлении.
mim.columns = {
A = { label = "Входные данные", field_type = "STRING" },
B = { label = "Результат", field_type = "STRING", readonly = true },
C = { label = "Статус", field_type = "STRING", readonly = true }
}Атрибуты поля
| Атрибут | Тип | Описание |
|---|---|---|
label | string | Отображаемое название поля |
field_type | string | Тип данных (STRING, NUMBER, BOOLEAN) |
is_required | boolean | Обязательно ли поле для заполнения |
readonly | boolean | Поле только для чтения (результат обработки) |
Промпт (mim.prompt)
Раздел mim.prompt содержит инструкции для нейросети.
Статический промпт
mim.prompt = [[
Проанализируй товар и определи его категорию.
Верни только название категории без объяснений.
]]Динамический промпт
Благодаря Lua можно создавать динамические промпты:
local categories = {"Электроника", "Одежда", "Продукты"}
mim.prompt = [[
Определи категорию товара из списка: ]] .. table.concat(categories, ", ") .. [[
Верни только название категории.
]]Полный пример
local mim = {
name = "Классификатор товаров",
description = "Автоматически определяет категорию товара по названию и описанию"
}
mim.columns = {
A = {
label = "Название товара",
field_type = "STRING",
is_required = true
},
B = {
label = "Описание",
field_type = "STRING",
is_required = false
},
C = {
label = "Категория",
field_type = "STRING",
readonly = true
},
D = {
label = "Уверенность",
field_type = "NUMBER",
readonly = true
}
}
mim.prompt = [[
Ты — система классификации товаров.
На основе названия товара и его описания определи наиболее подходящую категорию.
Доступные категории:
- Электроника
- Одежда и обувь
- Продукты питания
- Товары для дома
- Спорт и отдых
Верни результат в формате JSON:
{
"category": "название категории",
"confidence": число от 0 до 100
}
]]
return mimРекомендации
Советы по созданию mim.lua:
- Используйте понятные названия полей (
label) - Чётко разделяйте входные и выходные поля с помощью
readonly - Пишите детальные промпты с примерами ожидаемого формата
- Указывайте
is_requiredдля обязательных полей