Все уроки · 44
Путь 1 · Основы ИИ·Урок 3 из 10

Один вызов: как на самом деле работают все ИИ-продукты

ChatGPT, Claude, Gemini, агенты для кода, RAG, MCP — за всем этим стоит одно и то же действие: отправили текст, получили наиболее вероятное продолжение. Всё остальное — надстройка над этим вызовом.

УровеньНовичокВремя~10 мин

Одно действие, которое повторяется снова и снова

Почему это важно? Потому что в этом весь механизм работы ИИ — и о нём вам обычно не рассказывают. Каждый ИИ-продукт, которым вы пользовались, — окно чата, агент для кода, кнопка «исследовать», сервис, который назначает встречи, — делает одну и ту же вещь, снова и снова:

Вы отправляете текст. Модель дописывает наиболее вероятное продолжение. Это один вызов. Потом кто-то — вы или программа — решает, какой текст отправить дальше, и тот же вызов повторяется.

Вот и всё. Для текстового обмена — а речь сейчас именно о нём — никакого второго, скрытого действия нет. Чат работает так. Агенты работают так. Инструменты работают так. RAG (ответы по вашим документам) — тоже. Меняются только две вещи: сколько текста уходит на вход и какой именно это текст. Само действие остаётся прежним.

Фраза, которую стоит запомнить

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

Как выглядит один вызов

Before you go on

Вы делаете один вызов: отправляете фрагмент текста — и больше ничего. Что модель на самом деле с ним делает?

pick an answer — you get the explanation right away

Вы отправляете:

  • один длинный фрагмент текста — всё, что модели разрешено видеть прямо сейчас (это называется контекст), — и

  • модель возвращает продолжение, которое считает наиболее вероятным.

Пока модель отвечает, она ничего не ищет: не открывает ваши файлы и не заходит в интернет. Она читает отправленный вами текст и дописывает то, что правдоподобнее всего следует дальше. Если ответу нужен какой-то факт, этот факт должен быть в отправленном тексте. Иначе модель придумает что-то, что звучит правдоподобно.

Один вызов — по кругуcall 1/3
You write a message
→
The app gathers the whole conversation
↑↓
Reply shown — the model forgot everything
←
The model reads it all and continues
YouМеня зовут Ирина, и у меня небольшая пекарня.
0/12

Окно чата — это цикл, а не память

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

Когда вы отправляете второе сообщение в чате, приложение ничего не «напоминает» модели. Оно отправляет весь разговор заново — ваше первое сообщение, ответ модели, ваше второе сообщение — как один, более длинный фрагмент текста. Модель читает его заново, каждый раз с начала, и продолжает с того места, где текст заканчивается.

Из этого следуют две вещи. Длинный разговор становится медленнее и дороже: каждое новое сообщение заново отправляет всё, что было раньше. И модель может вдруг «забыть» что-то из начала длинного чата: если текст стал слишком длинным, самые старые его части отбрасывают или сжимают до краткого пересказа — а значит, с точки зрения модели этого больше не существует.

Три ваших сообщения — три отдельных вызова
press the button below to send the first message
sent to the modelnothing yet — every message is sent in full

Вот это по шагам. Каждое из трёх ваших сообщений — отдельный вызов: нажимайте «отправить» и смотрите на панель рядом с чатом. В первый раз уходит 14 токенов, во второй — 38, в третий — 58. Ничего нигде не запоминается: вся эта куча текста просто уходит заново.

Откуда тогда берутся инструменты, агенты и RAG

Before you go on

Модель умеет ровно одно: продолжать текст, который ей дали. Что же тогда могут изменить инструменты, агенты и RAG?

pick an answer — you get the explanation right away

Это не разные механизмы. Это способы изменить текст перед следующим вызовом:

  • Инструменты. Модель пишет текст вроде «узнать погоду в Киеве». Ваша программа выполняет настоящий запрос, забирает ответ, вставляет его обратно как текст и вызывает модель снова. Модель всё это время видела только текст.
  • RAG (ответы по вашим документам). Перед вызовом программа находит в ваших файлах подходящие абзацы и копирует их в отправляемый текст. Модель просто читает их — так же, как читали бы вы.
  • Агенты. Цикл: вызов, прочитать, что пришло, что-то сделать, вставить результат как текст, вызов снова — пока задача не выполнена или пока цикл что-нибудь не остановит.
  • MCP. Стандартный способ подключать инструменты: он задаёт согласованный формат, чтобы текст модели «вызови это» и ответ вашей программы понимали друг друга.

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

Почему это помогает получать ответы лучше

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

Попробуйте: понаблюдайте за циклом

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

Скопируйте в любой ИИ-чат
Я хочу понять, как ты получаешь сообщения. Покажи мне обычным текстом, как выглядит
запрос к тебе: массив messages, роли (system / user / assistant) и где в нём
находится мой текущий разговор. И ответь на один вопрос: если я отправлю ещё одно
сообщение, что именно отправится заново?

Что дальше

Проверьте себя

Вы отправляете второе сообщение в чате. Что на самом деле делает приложение?

Агент «использует инструмент». Что происходит на самом деле?

Что меняется между сообщением в чате, ответом RAG и шагом агента?

Длинная беседа вдруг «забывает» что-то из начала. В чём наиболее вероятная причина?