Что такое ИИ-агент на примере NPC из игры: мозг, инструменты и цикл «мысль — действие — наблюдение»

ИИ-агент — это языковая модель с инструментами, которая сама планирует, действует и проверяет результат. Объясняем на примере NPC из игры: три уровня агентности, мозг и тело, цикл «мысль — действие — наблюдение», ReAct и MCP. В конце — практика в любом чате.
ИИ-агент — это программа на основе языковой модели, которая понимает, чего от неё хотят, сама составляет план и выполняет действия с помощью инструментов, пока не достигнет цели. Проще всего понять это на примере NPC — неигрового персонажа в компьютерной игре. Ниже — урок из нашего курса, переписанный в статью: от торговца, который умеет сказать одну фразу, до персонажа, который сам зовёт подмогу. В конце — практика, которую можно сделать в любом чате с нейросетью за один подход.

Если читать некогда: пять пунктов
- Агент = мозг + тело. Мозг — языковая модель: она думает и планирует. Тело — инструменты: то, что агент реально может сделать.
- Сама модель умеет только писать текст. Картинки, поиск, отправку писем ей дают инструменты, которые подключили разработчики.
- Агент работает по кругу: мысль → действие → наблюдение. И повторяет, пока не решит задачу.
- Главная защита от выдумок — остановка после действия. Агент должен дождаться настоящего результата, а не сочинить его.
- Вы уже собирали «мозг» агента, если писали системную инструкцию: роль, правила, шаги и критерии проверки.
NPC: агент, которого вы видели тысячу раз
Кто играл в Sims, Skyrim, GTA или Minecraft, встречал NPC — неигровых персонажей. Это торговцы, стражники, жители деревни. Они отвечают, дают задания, показывают дорогу, иногда нападают или убегают.
Подойдите к торговцу и скажите: «Хочу купить меч». Хороший торговец понимает просьбу и отвечает: «Есть два меча, железный и золотой». За этой простой сценкой стоят три шага, и они же лежат в основе любого ИИ-агента:
- Понять: что хочет игрок? Меч.
- Спланировать: что для этого сделать? Показать товары и назвать цены.
- Сделать: выложить мечи и ждать выбора.
Как будто в голове у торговца сидит маленький мозг, который думает, решает и действует. Вот этот мозг мы и разберём.
Три уровня агентности
Не каждый NPC — агент. Разница в том, сколько решений он принимает сам.
| Уровень | Как ведёт себя NPC | С чем это сравнить в работе с нейросетями |
|---|---|---|
| 1. Почти не агент | говорит одну и ту же фразу, что бы вы ни делали | один промпт: вы задали стиль и тон, модель отвечает в этой рамке |
| 2. Агент по правилам | реагирует на ваши слова и выбор, но в пределах сценария | ассистент с системной инструкцией: роль, правила, шаги, самопроверка |
| 3. Агент высокого уровня | сам строит план, выбирает реакцию, берёт инструменты и зовёт других NPC | агент с инструментами в Make или n8n: ищет, записывает, отправляет, передаёт задачу другому агенту |
Первый уровень. Вы пишете модели «отвечай кратко, деловым тоном» и добавляете приёмы промптинга — например, «оцени свою уверенность» или обещание награды за хороший ответ. Модель меняет манеру, но решений не принимает. Она как робот, которого создали ровно для того, чтобы передавать масло.
Второй уровень. Ассистент с хорошей системной инструкцией уже реагирует: уточняет, проверяет себя, меняет ответ по вашему отзыву. Попросите его «сыграй фокус-группу из пяти разных клиентов» или «оцени свою работу строже» — и он перестроит поведение. Но инструментов у него нет: всё, что он может, — писать текст.
Третий уровень. Агент получает цель, а не команду. Он сам решает, какие шаги нужны, какими инструментами их сделать и кого позвать на помощь. Именно таких агентов собирают в Make и n8n.
Чем простой NPC отличается от агента высокого уровня
Простой NPC отвечает заранее прописанными репликами. Выбор из меню, готовые ответы, никаких своих решений.
Агент высокого уровня:
- понимает ситуацию и цель. «На деревню напали. Моя задача — защитить деревню»;
- сам ставит подзадачи. Позвать на помощь, взять оружие, выйти к воротам, сражаться, проверить, нужна ли ещё помощь;
- выбирает инструмент под каждую подзадачу. Позвать помощь — отправить сигнал другим NPC. Найти оружие — заглянуть в инвентарь. Атаковать — применить боевое умение;
- планирует на несколько шагов. Закончились зелья — сначала за зельями, потом на помощь;
- меняет план на ходу. Врагов стало больше — зовёт ещё помощь. Получил урон — ищет зелье. Цель достигнута — возвращается к обычным делам;
- работает в команде. Отправляет задания другим NPC, получает сигналы «приди на помощь», договаривается «нападаем вместе».
Вот как может звучать внутренний голос такого NPC, когда игрок кричит «На деревню напали гоблины!»:
Нужно защитить деревню. Сколько гоблинов? Один не справлюсь. Отправляю сигнал соседям. Беру лук и стрелы. Занимаю позицию у ворот. Если союзники придут — действуем вместе. Если нет — отступаю за зельями.
Это и есть разница между сценарием и мышлением.
Мозг и тело агента
Представьте агента из двух частей.
Мозг — это языковая модель. Здесь происходит всё мышление: модель разбирает ситуацию, рассуждает и решает, что делать дальше.
Тело — это возможности и инструменты. Всё, что агент реально умеет делать. У человека нет крыльев, поэтому действия «лететь» у него нет, зато есть «идти», «бежать», «прыгать», «хватать». С агентом так же: что ему подключили, то он и может.
Если вы проходили наши уроки по системным инструкциям, вы уже собирали мозг агента:
- роль — кто он;
- правила — как он думает и чего не делает;
- шаги — какие действия совершает и в каком порядке;
- критерии проверки — как он оценивает свою работу, прежде чем отдать её;
- формат результата — что должно получиться в конце.
Чтобы агент вышел за пределы текста, к этому мозгу остаётся добавить тело.
Как мозг пишет ответ: три анимации
Чтобы понимать, почему агенту нужны инструменты, полезно один раз увидеть, как модель вообще выдаёт текст. Подписи на анимациях на английском, ниже каждой — объяснение по-русски.

Модель пишет по одному кусочку. Она берёт текст, предсказывает следующий кусочек, дописывает его и подаёт всё вместе себе же на вход. Так по кругу, пока не выдаст специальный знак «конец».

Кусочки — это токены. Перед работой модель режет текст на токены — слова и части слов — и превращает их в номера. Для следующего токена она получает оценки по всем вариантам, переводит их в вероятности и выбирает подходящий. На анимации после «Paris is the city» самым вероятным оказывается «of».

Не все слова одинаково важны. В фразе «Столица Франции — это…» для следующего слова важнее всего «столица» и «Франция». Модель умеет «смотреть» на нужные слова сильнее, чем на остальные. Этот механизм называется вниманием, и на нём держатся все современные языковые модели.
Что из этого следует. Модель — очень умный предсказатель следующего слова. Она не может сама узнать сегодняшнюю погоду, открыть сайт или отправить письмо: её знания ограничены тем, на чём её обучили. Всё остальное делают инструменты.
Инструменты: суперспособности агента
Вы просите чат-бота нарисовать Эйфелеву башню из брокколи, и он рисует. Но мы только что выяснили, что модель умеет писать только текст. Как так?
Разработчики приложения подключили к модели инструмент — отдельную функцию, которая рисует картинки. Модель пишет: «нарисуй вот это», программа вокруг неё вызывает генератор, и вы видите картинку. С инструментами агент может:
- искать свежую информацию в интернете;
- считать;
- создавать изображения и видео;
- отправлять письма и сообщения;
- работать с другими сервисами — календарём, таблицей, базой клиентов.
Генераторы картинок и видео, кстати, — тоже простые «NPC для контента». Раньше ролик требовал съёмочной группы. Сейчас вы описываете референс, получаете сценарий текстом и по нему генерируете кадры. Это тот же принцип: мозг пишет задание, инструмент делает.
Из чего состоит инструмент
Инструмент — это функция с описанием. У каждого есть четыре части:
| Часть | Пример для калькулятора |
|---|---|
| Название | calculator |
| Описание: что делает | умножает два целых числа |
| Входные данные | a — целое число, b — целое число |
| Что возвращает | целое число — результат |
В коде это выглядит так. Программировать не нужно, просто посмотрите на устройство:
```python
@tool
def calculator(a: int, b: int) -> int:
"""Умножение двух целых чисел."""
return a * b
```
Пометка @tool говорит программе: «Это инструмент, вытащи из него название, описание и входные данные и покажи модели».
Как модель «нажимает» инструмент
Модель не может сама запустить функцию. Происходит вот что:
- Модель видит в своей инструкции список инструментов с описаниями.
- Когда ей нужен инструмент, она пишет команду текстом — например, «вызови calculator с числами 2 и 5».
- Программа-обёртка вокруг модели ловит эту команду, по-настоящему вызывает функцию и возвращает модели результат.
Пользователю кажется, что ИИ всё делает сам. На самом деле инструмент вызывается за кадром.
Почему описание решает всё
Агент должен точно знать, какой инструмент существует, что он делает, какие данные ему нужны и что он вернёт. Не описали — модель не сможет пользоваться инструментом правильно. Плохое описание — самая частая причина, по которой агент «тупит».
Что такое MCP
MCP — это общий стандарт, как описывать инструменты, чтобы разные системы понимали друг друга. Инструмент, описанный по MCP, может подключить любой агент, который этот стандарт поддерживает. Это как единая розетка: любой прибор с такой вилкой работает в любой такой розетке.
Цикл «мысль → действие → наблюдение»
Теперь главное: как агент работает во времени. Он крутится в цикле из трёх шагов:
- Мысль. Модель решает, какой шаг следующий.
- Действие. Агент вызывает инструмент с нужными данными.
- Наблюдение. Агент получает результат и учитывает его.
И снова мысль — пока цель не достигнута. Если говорить языком программистов, это цикл «пока»: он идёт, пока задача не решена.

Пример 1. Стражник у ворот
Игрок подходит к стражнику у ворот замка: «Открой ворота!»
- Мысль: «Мне сказали открыть ворота. Кто это? Можно ли открывать всем? Проверю пропуск».
- Действие: проверить инвентарь игрока.
- Наблюдение: пропуск есть.
- Мысль: «Открываю».
- Действие: вызвать функцию открытия ворот.
- Наблюдение: ворота открылись.
- Ответ: «Проходите, ворота открыты!»
А если ворота не открылись? Новая мысль: «Почему? Проверю замок». Новое действие: починить замок. Новое наблюдение: получилось или нет. Стражник повторяет круг, пока не выполнит задачу или не поймёт, что не сможет.
Пример 2. Помощник, который знает погоду
Теперь пример из жизни. Мы сделали помощника-метеоролога, у которого есть один инструмент — сервис погоды. Пользователь спрашивает: «Какая сейчас погода в Нью-Йорке?»
Мысль. «Человеку нужна погода прямо сейчас. Сам я её не знаю, но у меня есть инструмент погоды. Сначала вызову его».
Действие. Помощник пишет команду в строгом формате — JSON. Это просто текст с понятной структурой «что сделать» и «с какими данными»:
```json
{
"action": "get_weather",
"action_input": {
"location": "Нью-Йорк"
}
}
```
Наблюдение. Инструмент возвращает: «Нью-Йорк: переменная облачность, 15 °C, влажность 60%». Этот ответ добавляется к тексту, который видит модель.
Обновлённая мысль. «Данные есть, можно отвечать».
Финальный ответ. «Сейчас в Нью-Йорке переменная облачность, 15 °C, влажность 60%».
Что здесь важно:
- круг повторяется, пока цель не достигнута. Если бы инструмент вернул ошибку, помощник попробовал бы ещё раз или по-другому;
- инструмент выводит агента за пределы его знаний. Модель не знает сегодняшнюю погоду — инструмент знает;
- каждое наблюдение уточняет следующую мысль. Поэтому итоговый ответ опирается на факты, а не на догадку.
Мысли агента: «шаг за шагом» и ReAct
Простой NPC всегда реагирует одинаково: игрок подошёл — «Привет», игрок напал — убегает. Умный NPC ведёт внутренний диалог: «Что сейчас происходит? Чего я хочу добиться? Как лучше действовать?»
Какими бывают такие мысли:
| Тип мысли | Как это звучит у NPC |
|---|---|
| Планирование | «Сначала разведаю окрестности, потом доложу капитану» |
| Анализ | «Игрок ранен — надо предложить зелье» |
| Решение | «Лучше уклониться, одному драться слишком опасно» |
| Решение проблемы | «Топор сломан — починю или возьму другой» |
| Память | «Игрок мне раньше помогал — ему можно доверять» |
| Самопроверка | «В прошлый раз я ошибся, теперь буду осторожнее» |
| Цель | «Моя задача — удержать ворота до прихода стражи» |
| Приоритеты | «Сначала помогу союзнику, потом пойду в патруль» |
Есть два популярных способа заставить модель так думать.
«Шаг за шагом» (в литературе — Chain of Thought, цепочка рассуждений). Модель делит задачу на этапы и рассуждает по порядку, а не прыгает сразу к ответу. Игрок просит зелье: «Сначала нужны травы — иду в лес. Травы есть — иду в лавку. Смешиваю. Зелье готово».
ReAct — от английских слов «рассуждать» и «действовать». Модель после каждой мысли что-то реально делает и смотрит на результат. Торговца спрашивают: «Есть зелье лечения?» Мысль: «Проверю запасы». Действие: проверить инвентарь. Наблюдение: два зелья. Мысль: «Могу продать». Действие: «Да, есть. Берёшь?» Если бы зелья не было: мысль «нужно пополнить запасы», действие — заказать у алхимика.
| «Шаг за шагом» | ReAct | |
|---|---|---|
| Рассуждение по шагам | да | да |
| Действия и инструменты | нет, только внутренний монолог | да, после каждого шага мысли |
| Где лучше | простые рассуждения, задачки, расчёты | многошаговые задачи, работа с внешним миром |
Действия: как агент говорит, что сделать
Действие — это не фраза, а конкретное вмешательство в мир: открыть сундук, взять предмет, позвать на помощь, отправить сообщение. Чтобы программа поняла агента, действие записывают в строгом виде. Есть три способа:
| Тип агента | Как описывает действие | Пример |
|---|---|---|
| JSON-агент | структурированная команда | {"action": "heal", "target": "player"} |
| Агент с вызовом функции | команда на запуск конкретной функции | heal_player("player_id") |
| Код-агент | пишет кусок программы целиком | цикл, который рассылает свободных стражников по постам |
Код-агент — самый гибкий. Вместо одной команды он пишет готовую программу, например «найди всех свободных NPC, отправь их к замку, начни патруль». Плюсы: в коде легко записать сложную логику с повторами и условиями, его проще проверять, он сразу работает с внешними сервисами. Минус тоже серьёзный: код, который написала модель, перед запуском нужно проверять на безопасность.
Почему агент обязан остановиться после действия
Это самое важное правило во всей статье. Агент должен:
- выдать чёткую команду — «открыть сундук № 12»;
- остановиться и ждать настоящий результат;
- только потом думать дальше.
Если не остановить модель после строки «Действие», она с удовольствием допишет и «Наблюдение» сама. То есть выдумает результат: «сундук открыт, внутри золото». Так рождаются галлюцинации агентов. Правильная схема — сделал, получил результат, подумал, действуешь дальше.
Наблюдение: глаза и уши агента
Наблюдение — это то, что агент узнаёт после своего действия. Без этого шага он не может ни учиться, ни перестраиваться.
| Вид наблюдения | Пример |
|---|---|
| Ошибка системы | «Замок заело, дверь не открылась» |
| Изменение данных | «В инвентаре появилось зелье — покупка удалась» |
| Изменение среды | «Начался дождь» |
| Ответ проверки | «У игрока осталось 10 единиц здоровья» |
| Событие по времени | «Время вышло, задание провалено» |
Как агент использует наблюдение:
- выполнил действие — попробовал открыть сундук;
- получил наблюдение — «сундук заперт»;
- запомнил это;
- спланировал следующий шаг с новым знанием — «нужен ключ: поищу или спрошу у игрока».
Без наблюдения NPC становится нелепым: продолжает ломиться в уже открытый сундук или убегает от врага, который давно побеждён.
Где это пригодится в жизни
Тот же цикл работает у ассистентов: сначала разобрать задачу, потом взять инструмент, потом проверить результат. Связка «почта + календарь + поиск + автоматизация» — это и есть NPC-агент, только вместо деревни ваш рабочий день.
Обычно к агентам приходят по такой лестнице:
- Системная инструкция усложняется. Вместо «отвечай на вопросы» вы описываете ход мысли: «Сначала оцени задачу, потом реши, нужен ли инструмент, потом действуй».
- Появляются инструменты. Поиск, отправка сообщений, работа с таблицами, генерация.
- Появляются роли. Один агент — «главный стратег», другие — исполнители, каждый со своей подзадачей.
Если хотите посмотреть, как готовые ассистенты устроены изнутри, загляните в раздел ИИ-ассистентов на платформе: там 200+ помощников под разные профессии и задачи. А как сделать своего и отдать его клиенту, разобрано в статье о собственном ИИ-ассистенте. Если хочется сразу системного взгляда, в чём агент отличается от обычного чата, — вот наш разбор основ.
Практика: соберите своего NPC-агента в любом чате
Для этого не нужны ни код, ни n8n. Нужен любой чат с нейросетью: ChatGPT, Claude, Gemini. Вы сыграете роль «программы-обёртки» — сами будете приносить агенту результаты его действий. Так вы своими руками увидите цикл «мысль → действие → наблюдение» и правило остановки.
Шаг 1. Откройте новый чат и вставьте эту инструкцию целиком:
```
Ты — NPC-торговец по имени Борн в фэнтези-игре. Твоя цель — помочь игроку купить то, что ему нужно.
У тебя есть инструменты. Сам ты их не выполняешь — ты только пишешь команду, а результат тебе пришлёт игра.
- check_inventory — проверить, есть ли товар. Вход: {"item": "название"}. Возвращает количество и цену.
- order_from_alchemist — заказать товар у алхимика. Вход: {"item": "название", "count": число}. Возвращает срок доставки.
- give_item — отдать товар игроку. Вход: {"item": "название"}. Возвращает, удалось ли.
Работай строго в таком формате:
Мысль: что ты сейчас думаешь и что собираешься сделать.
Действие: команда в формате JSON, например {"action": "check_inventory", "action_input": {"item": "зелье лечения"}}
После строки «Действие» ОСТАНОВИСЬ и больше ничего не пиши. Никогда не придумывай результат сам — жди сообщения «Наблюдение:» от игры.
Когда задача решена, напиши:
Мысль: почему можно отвечать.
Ответ: что ты говоришь игроку, в образе торговца, не больше трёх предложений.
```
Шаг 2. Напишите от игрока: «Привет, есть зелье лечения? Мне нужно три».
Шаг 3. Модель должна написать «Мысль» и «Действие» и остановиться. Теперь вы — игра. Ответьте, например:
```
Наблюдение: зелье лечения — 1 шт., цена 50 монет.
```
Шаг 4. Смотрите, как торговец перестраивает план: одного зелья мало, значит, нужно заказать у алхимика. Отвечайте ему наблюдениями, пока он не дойдёт до «Ответа».
Что проверить:
- остановилась ли модель после «Действия». Если она сама дописала «Наблюдение», усильте правило остановки в инструкции. Это ровно та ошибка, из-за которой агенты выдумывают результаты;
- поменял ли торговец план, когда товара не хватило;
- что будет, если прислать ошибку: «Наблюдение: алхимик закрыт до утра».
Шаг 5 — для портфолио. Замените фэнтези на настоящий бизнес. Торговец → консультант интернет-магазина. check_inventory → проверка наличия в таблице. order_from_alchemist → заказ у поставщика. give_item → оформление заказа. Та же инструкция с реальными товарами — это уже прототип ассистента, который можно показать заказчику. Сохраните переписку: это наглядная демонстрация того, как ваш агент думает.
Проверьте себя
- Какое описание лучше всего подходит ИИ-агенту? A) модель, которая рассуждает, планирует и использует инструменты, чтобы достичь цели; B) система, которая только обрабатывает текст; C) собеседник, который отвечает и ничего не делает; D) база данных, которая хранит информацию.
- Зачем агенту планирование? A) чтобы помнить прошлое; B) чтобы выбрать порядок действий и нужные инструменты; C) чтобы действовать случайно; D) чтобы переводить текст.
- Зачем агенту инструменты? A) они ничего не добавляют; B) это просто хранилище данных; C) они ограничивают агента; D) они дают делать то, чего не умеет сама модель: искать, считать, рисовать.
- Чем действие отличается от инструмента? A) действие — шаг агента, инструмент — то, чем этот шаг выполняется; B) это одно и то же; C) инструменты только хранят данные; D) действия всегда требуют модель, а инструменты нет.
- Какую роль играет языковая модель в агенте? A) это база данных; B) это мозг: понимает задачу и планирует действия; C) она работает только с картинками; D) она не связана с агентами.
- Что лучше всего иллюстрирует ИИ-агента? A) страница с готовыми ответами; B) калькулятор; C) голосовой помощник, который понимает команду, обдумывает её и ставит напоминание или отправляет сообщение; D) NPC, который всегда говорит одну фразу.
Ответы: 1 — A, 2 — B, 3 — D, 4 — A, 5 — B, 6 — C.
И три вопроса на подумать — их удобно разобрать вместе с самой нейросетью: задайте ей вопрос и спорьте с ответом:
- какое поведение NPC стало бы нелепым без шага «наблюдение»?
- какую задачу в игре или в жизни смог бы решить только агент высокого уровня, а не простой NPC?
- какие инструменты вы бы дали своему NPC, чтобы он стал умнее?
FAQ
Что такое ИИ-агент простыми словами?
Это программа на основе языковой модели, которая получает цель, сама составляет план, выполняет действия с помощью инструментов и проверяет результат, пока не достигнет цели. Обычный чат с нейросетью только отвечает текстом, агент ещё и действует.
Чем ИИ-агент отличается от чат-бота?
Чат-бот отвечает на сообщения в рамках сценария или инструкции. Агент получает цель, разбивает её на шаги и сам выбирает инструменты: поиск, таблицы, почту, генерацию. Он также перестраивает план, если результат шага не тот, что ожидался.
Что такое цикл «мысль — действие — наблюдение»?
Это способ работы агента: модель решает, что сделать (мысль), вызывает инструмент (действие) и получает результат (наблюдение). Затем снова думает с учётом результата, пока задача не будет решена. Подход называют ReAct.
Почему агенты выдумывают результаты и как это остановить?
Если модель не остановить после команды на действие, она сама допишет правдоподобный результат вместо настоящего. Лечится правилом в инструкции и настройкой программы: после строки «Действие» модель останавливается и ждёт настоящего ответа инструмента.
Что такое MCP?
MCP — общий стандарт описания инструментов для ИИ-агентов. Инструмент, описанный по этому стандарту, может подключить любой агент, который его поддерживает: как прибор с единой вилкой в единой розетке.
Хотите, чтобы ваш NPC перестал «тупить»? Напишите боту слово ИНСТРУКЦИЯ — пришлю разбор «Почему бот тупит: анатомия системной инструкции»: https://t.me/consultant_ai_skills_bot?start=INSTRUKTSIYA_blog