Сэмплирование
temperature, top_p, top_k и при необходимости seed. Низкая температура подходит для извлечения данных, классификации и кода; более высокие значения подходят для генерации идей и творческого текста.
Договор между приложением и моделью: как формируются запросы, как выходы приводятся к машинно-пригодному виду, как модели вызывают инструменты и какие интерфейсы API сохраняют переносимость всей конструкции.
Сама техника промптинга (zero-shot, few-shot-примеры, chain-of-thought, назначение роли) разобрана как каталог паттернов в разделе паттерны.
Каждый запрос несёт настройки, которые меняют распределение выходов и договор о формате ответа:
temperature, top_p, top_k и при необходимости seed. Низкая температура подходит для извлечения данных, классификации и кода; более высокие значения подходят для генерации идей и творческого текста.
max_tokens ограничивает генерацию и расходы; стоп-последовательности завершают её раньше. И то и другое меняет не только стоимость, но и сам результат.
Штрафы за повторы, присутствие и частоту; logit_bias, чтобы поощрять или запрещать токены; logprobs для сигналов уверенности; n или best_of для нескольких кандидатов.
Поддержка параметров и их точная семантика различаются у разных провайдеров и рантаймов. Как эти настройки связаны с воспроизводимостью, подробно разобрано в разделе недетерминированность.
Конвейерам нужен JSON, а не проза. Привести к нему помогают два семейства техник:
Разобрать ответ по схеме и переспросить при неудаче (паттерн Instructor). Работает с любым API, в том числе размещённым, но каждая неудачная попытка стоит задержки и токенов.
Маскировать недопустимые токены на каждом шаге, чтобы получался только вывод, соответствующий схеме (Outlines, XGrammar, Guidance; встроено в vLLM и SGLang и доступно у размещённых провайдеров как режим JSON-схемы). Форма гарантируется, хотя синтаксически корректный ответ всё ещё может быть неверным по смыслу.
Голый «режим JSON» без схемы обещает лишь разбираемый JSON, а не именно ваш JSON; лучше сочетать принудительную схему с проверкой значений на стороне приложения.
Вы описываете доступные инструменты (имя, назначение, схему параметров); модель выдаёт структурированный вызов вместо прозы; ваш код исполняет его и возвращает результат новым сообщением; модель продолжает работу с настоящими данными. Это всё то же предсказание следующего токена, только в ограниченном формате, поэтому надёжность определяется качеством схемы и описаний инструментов. Обёрнутый в цикл «спланировать, выполнить, оценить», этот механизм и лежит в основе агентов; см. агентные паттерны. У открытых моделей поддержка и качество различаются, поэтому проверьте их на своём рантайме.
MCP стандартизирует то, как ассистенты обращаются к внешним системам: хост-приложение запускает MCP-клиенты, которые подключаются к MCP-серверам, а каждый сервер по общему протоколу предоставляет инструменты, источники данных и промпты, локально или удалённо. Вместо отдельной интеграции под каждое приложение и каждый сервис любая сторона протокола пишется один раз. К одному хосту можно одновременно подключить несколько серверов.
Самостоятельно размещённые движки и шлюзы повторяют HTTP-API крупных провайдеров, поэтому готовые SDK начинают работать после смены одного лишь базового URL. Именно это сохраняет переносимость приложений между размещёнными и собственными бэкендами.
Совместимость это шкала, а не гарантия: охват параметров и поддержка возможностей различаются от бэкенда к бэкенду, поэтому проверьте нужные вам функции до того, как менять эндпойнт.