Когда AI-агенту задать вопрос: обязательные данные до запуска работы
Пользователь пишет: «Подготовь подборку поставщиков для нового офиса». Ассистент сразу ищет десятки компаний, хотя неизвестны город, состав закупки и срок. Длинный результат выглядит работой, но его придётся переделать. Полезнее сначала определить, какие параметры меняют решение, и задать один понятный вопрос.
Опишите минимальные данные для сценария
Для подбора поставщика нужны категория закупки и город доставки. Бюджет и срок могут быть обязательны для короткого списка, но не для предварительного обзора рынка. Поэтому список обязательных полей зависит от результата, о котором договорились с пользователем. Не собирайте анкету из двадцати вопросов, если человеку нужна первая ориентировочная подборка.
Для каждого поля запишите, как оно влияет на работу. Город ограничивает географию доставки, категория — тип поставщиков, срок — доступность. Если поле не меняет поиск, ранжирование или состав результата, его можно не спрашивать на первом шаге. Так появляется обоснованная политика уточнений.
Отделите извлечение параметров от вопроса
Модель читает свободный текст и заполняет известные поля, сохраняя явные значения пользователя. Дальше приложение сравнивает их с обязательным набором. Недостающие сведения не надо заполнять догадками: «офис» не означает Москву, а «поскорее» не задаёт календарную дату.
Выбирайте следующий вопрос по влиянию на решение. Сначала категория закупки, затем город, затем параметры конкретной категории. Вопрос о размерах мебели имеет смысл после того, как выяснилось, что нужна мебель. Значение «не знаю» должно вести к отдельной ветке: например, предложить диапазоны или подготовить предварительный обзор с оговорённым допущением.
Сделайте переход в работу явным
В примере приоритеты полей заданы в списке. Функция возвращает либо следующий вопрос, либо состояние ready. Вызовы поиска выполняются после ready. Это можно перенести в узлы графа: извлечь значения → проверить полноту → спросить или выполнить задачу.
questions = [("category", "Что нужно закупить?"), ("city", "В какой город нужна доставка?")]
def next_step(state):
for field, question in questions:
if not state.get(field):
return {"status": "clarify", "field": field, "question": question}
return {"status": "ready", "parameters": dict(state)}
assert next_step({})["field"] == "category"
assert next_step({"category": "столы"})["field"] == "city"
print(next_step({"category": "столы", "city": "Казань"}))
Не спрашивайте уже известное
После каждого ответа обновляйте состояние задачи. Если пользователь написал «столы, доставка в Казань», заполните сразу два поля. Если позже он исправил город, замените значение и отметьте, какие уже полученные результаты нужно пересчитать. История сообщений полезна для понимания, но рабочие параметры лучше хранить отдельно.
Покажите короткое резюме перед дорогой или долгой работой: «Ищу поставщиков столов с доставкой в Казань; бюджет пока не ограничиваем». Пользователь сможет исправить неверное толкование до запуска. Для операций с внешними последствиями понадобится ещё отдельное согласование действия; полнота параметров сама по себе не даёт такого разрешения.
В тестах проверяйте не только готовую задачу. Добавьте отказ отвечать на необязательный вопрос, несколько параметров в одной реплике, исправление предыдущего значения и противоречивые сведения. Ожидаемый результат — следующий разумный шаг, а не точное совпадение фразы вопроса.
После пилота посмотрите, где люди бросают диалог и какие ответы всё равно требуют переделки. Частые лишние уточнения подскажут, что поле можно вывести из уже доступных данных или убрать из обязательных. Частые переделки покажут параметр, который стоит выяснить раньше. Так сценарий уточнений развивается по рабочим наблюдениям.
Продолжить проект на практике
Уточнения удобно выразить как переходы между состояниями задачи. В платном курсе AI Agents PRO вы спроектируете граф агента в LangGraph и подключите инструменты. Это позволит сначала собрать параметры, затем выполнить нужную работу, сохраняя контроль над переходами и проверяя весь сценарий собственными метриками.
Откройте программу курса и выберите следующий этап своего проекта.
По теме: План AI-агента и исполнение: какие проверки ставить между ними.
Продолжить на практике
- AI Agents PRO: LangGraph, AutoGen и LLMOps в продакшне ↗
Практический курс по AI-агентам. Соберёте продакшн RAG-сервис: от индекса и графа состояний до API, Docker, метрик качества и контроля стоимости. Плюс профессиональные блоки: LangGraph/AutoGen, Qdrant/FAISS+rerank, eval (RAGAS/custom), quality-гейты, OpenTelemetry+Prometheus/Grafana, CI/CD, ретраи/DLQ/идемпотентность, PII/RBAC.
