Постановка задачи для ИИ: от «сделай умно» к детерминированному результату
Почему 80% работы с LLM — это формулировка границ задачи. Трёхуровневая спецификация, JSON Schema, триггеры и чек-лист для production-интеграций.
Почему «сделай умный анализ» не работает
ИИ — вероятностный инструмент, работающий только в явно очерченных границах. Размытая постановка вроде «проанализируй лог и выдай рекомендации» заставляет модель галлюцинировать, придумывать метрики и тратить токены на воду. В SCADA.AI 80% времени уходит на формулировку границ, 20% — на код. Без этого точность вызова падает до 40%, время ответа растёт до 15 секунд.
Трёхуровневая постановка задачи
Каждый инструмент проходит три уровня спецификации.
Уровень 1: Бизнес-требование
Определяем ожидаемый результат.
Инженер пишет: «проанализируй системный лог за последний час»
Ожидаемый результат: Markdown-отчёт с количеством событий по типам, критическими ошибками, аномалиями и рекомендациями. Уровень 2: Техническая спецификация (JSON Schema)
Описываем tool так, чтобы YandexGPT точно понимал, когда и как его вызывать.
{
"function": {
"name": "analyze_system_logs",
"description": "Анализирует системный лог SCADA.AI. Вызывается когда пользователь просит 'проанализируй лог', 'что происходит в системе', 'анализ логов'. Возвращает Markdown-отчёт с категоризацией событий, выделением критических ошибок и аномалий.",
"parameters": {
"type": "object",
"properties": {
"limit": {"type": "integer", "description": "Количество последних записей (по умолчанию 500)"},
"timeframe": {"type": "string", "enum": ["1h", "6h", "24h", "7d"], "description": "Временной интервал для анализа"}
}
}
}
} Уровень 3: System prompt
Жёсткие правила, триггеры и ограничения.
Ты — модуль анализа системных логов SCADA.AI.
Правила:
1. Когда пользователь просит анализ лога — ВСЕГДА вызывай tool analyze_system_logs
2. Не анализируй лог самостоятельно — только через tool
3. Формат ответа: Markdown с заголовками ##, списками -, кодом
4. Если tool вернул ошибку — сообщи об этом пользователю, не придумывай данные
Триггеры вызова:
- «проанализируй лог»
- «что происходит в системе»
- «анализ логов» Процесс: от use cases до тестирования
- Собираем use cases (5-10 реальных фраз).
- Определяем границы (что tool НЕ должен делать).
- Пишем JSON Schema (с enum, description, примерами).
- Пишем system prompt (правила + триггеры + ограничения).
- Реализуем tool (возвращает структуру, не сырые данные).
- Тестируем (20-30 запросов, замер точности).
Что ИИ может, а что не может
| Параметр | Без чёткой постановки | С чёткой постановкой |
|---|---|---|
| Точность вызова tool | ~40% | ~95% |
| Время ответа | 10-15 секунд | 3-5 секунд |
| Галлюцинации | Часто | Редко |
Что ИИ НЕ может:
- Принимать решения на основе неполных данных
- Работать с realtime-данными без tools
- Гарантировать детерминированность (при temperature=0.6 ответы варьируются)
- Обрабатывать объёмы сверх 32 768 токенов
- Понимать доменную специфику без описания
Что ИИ МОЖЕТ хорошо:
- Суммаризировать структурированные данные
- Переформулировать технический язык в человеческий
- Выявлять паттерны в тексте
- Генерировать Markdown-отчёты
- Выбирать tool из 5-7 доступных по контексту
Грабли из production-опыта
- «Сделай умный анализ» — худшая постановка. Модель не знает контекста. Нужно: «проанализируй по критериям A, B, C, верни Markdown».
- Описание tool без триггеров.
description: "Анализирует лог"бесполезно. Добавляйте прямые фразы-триггеры. - Возврат сырых данных. 50 000 строк → модель не влезает в контекст → галлюцинации. Решение: агрегированный summary.
- Отсутствие обработки ошибок. Tool упал → pipeline лёг. Решение: всегда возвращать
{"status": "ok"|"error"}. - Temperature=0.9 для анализа. Модель креативничает. Для инженерных задач нужна 0.3-0.5.
Чек-лист
- Сформулировано бизнес-требование
- Описаны триггеры (5-10 фраз)
- Создана JSON Schema с enum
- Написан system prompt с правилами
- Tool возвращает структуру
- Реализован возврат статуса
- Протестировано на 20+ запросах (> 90% точности)
- Temperature < = 0.5 для анализа
Итог
ИИ не заменяет дисциплину. Он усиливает её при чётких границах. Трёхуровневая спецификация, триггеры и детерминированная обработка — путь к 95% точности в production.