Запись архива

Промпты для агентов: как перестать писать инструкции и начать управлять сценариями

Разбираем, чем промпты для агентов отличаются от обычных запросов к LLM, как структурировать многошаговые инструкции и какие инструменты помогают не потерять контекст. С примерами из документации OpenAI, Anthropic, LangChain и исследований цепочек рассуждений.

Схема структуры промпта для агента с этапами: системная инструкция, инструменты, цепочка рассуждений, проверка результата
Схема структуры промпта для агента с этапами: системная инструкция, инструменты, цепочка рассуждений, проверка результата
Hoofddorp | by TijsB | openverse | by-sa

Когда вы пишете однострочный запрос к ChatGPT, вы получаете прямой ответ. Когда вы даёте ту же инструкцию агенту, который должен выполнить несколько действий — найти информацию в базе, проверить её, написать код и отправить письмо — результат часто оказывается хаотичным. Агент либо теряет нить, либо выполняет не то, либо бесконечно повторяет одно и то же действие.

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

Что такое агентный промпт и почему он не работает как обычный запрос

Обычный промпт — это одношаговая задача: «Напиши краткое изложение статьи». Модель получает контекст и выдаёт результат. Агентный промпт — это программа для LLM. Он должен описывать последовательность шагов, доступные инструменты, критерии завершения и действия при ошибке.

Разница принципиальна. В документации OpenAI по промпт-инжинирингу подчёркивается, что для сложных задач нужно разбивать инструкцию на подзадачи, задавать чёткие роли и приводить примеры желаемого вывода. Anthropic в своём гайде по промптам для Claude добавляет: для агентов особенно важны ограничения на количество шагов и явные инструкции о том, когда следует запросить уточнение у пользователя, а не пытаться угадать.

Игнорирование этих правил ведёт к классическим ошибкам: агент «зацикливается», использует не те инструменты, генерирует неполные ответы или тратит токены на бессмысленные рассуждения. Чтобы этого избежать, нужна структура.

Как устроен хороший агентный промпт: разбор элементов

На основе документации LangChain, OpenAI и Anthropic можно выделить обязательные блоки агентного промпта:

Системная роль и контекст — кто агент, в какой среде работает, какие данные доступны.
2. Список инструментов — что именно агент может вызывать (API, функции, поиск), с примерами ввода/вывода.
3. Правила принятия решений — когда использовать какой инструмент, в какой последовательности.
4. Обработка ошибок — что делать, если инструмент вернул ошибку или данные не найдены.
5. Критерии завершения — когда задача считается выполненной, а когда нужно запросить дополнительную информацию.
6. Формат вывода — структура финального ответа.

Вот сравнение структуры обычного промпта и агентного:

Элемент Обычный промпт Агентный промпт
Роль модели «Ты — помощник» «Ты — агент поддержки. У тебя есть доступ к базе знаний и API тикетов. Твой ID — support_agent_v1»
Задача «Напиши ответ клиенту» «Проанализируй запрос, найди последние три тикета этого клиента, проверь статус, предложи решение, если решение требует эскалации — создай новый тикет»
Инструменты Не описаны Описаны явно: функция search_knowledge_base(query), функция get_tickets(customer_id), функция create_ticket(summary, priority)
Ограничения Нет «Не создавай новый тикет, если есть открытый тикет того же типа. Не удаляй данные. Если не уверен — запроси уточнение»
Формат вывода Свободный JSON с полями: {“action”: “create_ticket” или “reply”, “summary”: “…”, “ticket_id”: null}

Исследование «Chain-of-Thought Prompting Elicits Reasoning in Large Language Models» (Wei et al., 2022) показало, что пошаговое рассуждение улучшает точность на многошаговых задачах. В контексте агентов это означает, что промпт должен поощрять модель «думать вслух» — генерировать промежуточные рассуждения перед каждым действием. Однако важно ограничить глубину рассуждения, иначе агент уйдёт в бесконечные размышления.

Практический подход: шаблон для агентного промпта

В документации LangChain для агентов рекомендуется использовать следующий каркас:

Ты — {role}. Твоя цель — {goal}.
У тебя есть доступ к инструментам: {list_of_tools}.
Правила:
1. Вначале проанализируй входные данные.
2. Если нужна дополнительная информация — используй {tool_name}.
3. Если данные не найдены — сообщи пользователю и предложи альтернативу.
4. Не выполняй больше {max_steps} шагов.
5. Когда цель достигнута, предоставь итоговый ответ в формате {format}.
Если возникла ошибка, опиши её и предложи следующий шаг.

Этот шаблон можно адаптировать под конкретный инструментарий. Например, для агента, который работает с базой знаний и генерирует отчёты, нужно добавить примеры удачных и неудачных вызовов инструментов. В руководстве Anthropic по промпт-инжинирингу особо подчёркивается: включайте в промпт примеры (few-shot), чтобы модель понимала ожидаемый паттерн поведения.

Ограничения и подводные камни

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

На практике многие разработчики, обсуждающие агентные архитектуры на Reddit и в Telegram-каналах, отмечают, что без механизма проверки каждого шага (например, через валидацию вывода инструмента или «человека в цикле») агенты часто дают сбои. В LangChain для этого есть встроенные callback-утилиты, но они требуют дополнительной настройки.

Ещё один важный момент: промпт — это не серебряная пуля. Если модель не справляется с задачей даже при хорошо структурированной инструкции, проблема может быть в выборе модели или в том, что задачу нужно разбить на несколько агентов, а не втискивать всё в один промпт.

Что попробовать прямо сейчас

Возьмите простую задачу, которую вы решаете через обычный промпт (например, «напиши план статьи»), и превратите её в агентный сценарий с тремя шагами: поиск источников, анализ, генерация. Используйте шаблон выше.
2. Протестируйте одну и ту же задачу с разными моделями (GPT-4o, Claude Sonnet, Llama 3) и сравните, насколько стабильно они следуют многошаговым инструкциям.
3. Изучите примеры агентных промптов в репозиториях LangChain и AutoGen — обратите внимание, как авторы обрабатывают ошибки и ограничивают количество шагов.
4. Включите в промпт явную команду: «Если ты не уверен — спроси». Это снизит количество галлюцинаций и сделает агента предсказуемее.

Промпты для агентов — это не просто тексты, а проектные документы. Их нужно тестировать, итерировать и адаптировать под конкретный инструментарий. И помните: даже самый лучший промпт не заменит продуманной архитектуры агента.