Агенты · Agents · урок 1 · 12 мин

Модель, context и агентный цикл

Model, context and the agent loop

ТемыАгентыContextЛокально или облако

Зачем

После урока ты объяснишь за минуту, чем agent (агент) отличается от chatbot, кто в агентном цикле решает, а кто исполняет, и почему агент, который один раз справился, ещё ничего не доказал. На этом словаре держатся все следующие уроки модуля и почти любой ответ на собеседовании про агентов.

Модель умеет одно: продолжать текст

LLM (large language model, большая языковая модель) получает текст и предсказывает, какой token (кусок слова, единица текста для модели) идёт дальше. Чат, рассуждение и вызов инструментов построены поверх этой одной способности. Из неё следуют три свойства, на которые опирается вся инженерия агентов.

  1. Модель случайна. Один и тот же вопрос в разных прогонах даёт разные ответы. Поэтому агента проверяют многими прогонами, а не одним.
  2. Модель знает только две вещи: то, что выучила в training (обучении), замороженное на дату cutoff (дату среза знаний) и, возможно, устаревшее, и то, что лежит перед ней прямо сейчас — context. Другого доступа к миру у неё нет.
  3. Модель звучит уверенно, даже когда ошибается. Она назовёт комиссию за досрочное погашение спокойным тоном и ошибётся. Гладкость текста — не доказательство. Отсюда hallucination (галлюцинация, уверенная выдумка).

Context: всё, что модель видит за один вызов

Context (контекст) — это весь вход одного вызова модели: system prompt (системная инструкция), разговор до этого места, результаты tools, найденные документы. У него есть предел, context window (окно контекста), который меряют в tokens; в английском тексте один token — примерно ¾ слова. Каждый token в context стоит денег и времени, а лишний token ещё и отвлекает модель. Поэтому большая часть работы инженера агентов — решить, что положить в context, а что оставить снаружи. У этой работы есть имя, context engineering (подбор содержимого context), ему посвящён урок a2-7.

От chatbot к agent: цикл

Chatbot отвечает. Agent действует. Разница — в цикле:

  1. Модель читает цель и context.
  2. Решает: ответить сейчас или вызвать tool (инструмент, функцию, которую модель может попросить выполнить)?
  3. Если tool — программа вокруг модели выполняет его и кладёт результат в context.
  4. Снова шаг 1, пока модель не скажет «готово» или цикл не остановит лимит.

Anthropic в статье «Building effective agents» различает два вида систем. Workflow (заданный процесс) — LLM и tools связаны путями, которые заранее написал программист. Agent — модель сама выбирает следующий шаг и tool. Совет оттуда же: начинать с самого простого решения и усложнять, только когда это нужно. Где путь известен заранее (заблокировать карту: проверить личность, спросить подтверждение, вызвать блокировку), пиши workflow. Агент нужен там, где число и порядок шагов заранее не предскажешь.

Модель и harness: кто что делает

Harness (обвязка) — программа, которая крутит цикл: подаёт описания tools, собирает context, проверяет права, выполняет вызовы, делает retries (повторы), следит за timeouts (пределами времени) и лимитами, пишет traces (журнал каждого шага). Claude Code и Codex — это harnesses. Удобная аналогия — автомобиль:

Часть В машине Что это
Model двигатель предсказывает текст и выбирает следующий шаг
Harness машина вокруг двигателя цикл, права, context, повторы, журнал
Tools руль и тормоза функции, которые модель просит выполнить
Context то, что видит водитель весь вход модели прямо сейчас
RAG (retrieval-augmented generation, ответ с подкачкой документов) карта из бардачка найти нужные документы и положить в context
Evaluation (оценка) экзамен по вождению проверка, что вся машина доезжает и безопасно

Главное разделение ролей: модель только предлагает, harness исполняет. Модель пишет «вызови block_card»; проверить право, выполнить вызов, положить результат в context и остановить цикл по лимиту — работа harness. Цикл останавливает тоже harness, и причин остановки больше одной: модель дала итоговый ответ; кончился лимит шагов; кончилось время или деньги на запрос; tool вернул ошибку, которую нельзя исправить; действие требует человека, и цикл ждёт его решения. Для каждой причины заранее решают, что увидит клиент: честный частичный ответ, передачу оператору или просьбу подтвердить. Отсюда правило, которое пройдёт через весь модуль: всё, что нужно гарантировать, живёт в коде harness и tools, а не в тексте инструкции для модели.

Пример с числами: почему один успех мало значит

Агент отвечает клиенту банка на вопрос «почему с меня списали комиссию?» за шесть шагов: найти операцию, найти тариф, проверить дату договора и так далее. Допустим, на каждом шаге модель выбирает верное действие в 95% случаев, и шаги независимы. Тогда вся цепочка проходит верно с вероятностью 0,95⁶ ≈ 0,74, то есть примерно в 74% прогонов. Каждый четвёртый прогон где-то сворачивает не туда. Удачная демонстрация показала тебе одну из удачных трёх четвертей. Чтобы узнать реальную долю успеха, нужны десятки задач и несколько прогонов каждой (это тема модуля Evaluation).

Второе следствие цикла: context растёт с каждым шагом. Если system prompt и описания tools занимают 3 000 tokens, а каждый шаг добавляет вызов и результат по 800 tokens, то к шестому шагу модель читает уже около 7 800 tokens, и каждый следующий вызов дороже предыдущего. Поэтому tools должны возвращать коротко и по делу (урок a2-4).

Облачный API или локальная модель

Это решение принимают до первой строки кода. Облачный API даёт сильнейшие модели без своего железа, но данные клиента уходят к поставщику, и для банка это вопрос закона о данных и data residency (требования хранить данные в своей стране или регионе). Локальная open-weight модель (модель с открытыми весами) держит данные внутри периметра, но слабее лучших облачных и требует своих GPU и людей, которые их обслуживают. Частый компромисс — облачная модель через регион поставщика внутри нужной юрисдикции плюс маскировка персональных данных до вызова.

Схема

Термины · Key terms

LLM
большая языковая модель: предсказывает следующий token
token
кусок слова; единица, в которой меряют context и цену
context / context window
всё, что модель видит за один вызов, и предел его размера
agent
модель в цикле «решить → вызвать tool → прочитать результат → повторить»
tool
функция, которую модель просит выполнить; выполняет её код
harness
обвязка: цикл, права, context, повторы, лимиты, журнал
workflow
система, где путь шагов задан кодом заранее
hallucination
уверенный, но выдуманный ответ модели
trace
запись каждого шага агента: вход, вызовы, результаты

Сделай сам

Нарисуй на листе агентный цикл из четырёх шагов. Возле каждого шага подпиши, кто его делает: модель или harness. Отметь две точки, где цикл останавливается (готовый ответ, лимит шагов), и одну точку, где harness проверяет право. Сфотографируй.

Обсуди с тьютором: покажи фото и спроси, какую третью причину остановки цикла ты пропустил (подсказка: время, деньги, ошибка tool).

Проверь себя · ответ под вопросом

1Разложи по ролям: выбрать tool, выполнить tool, положить результат в context, остановить цикл по лимиту.
Выбирает tool модель: она только пишет запрос на вызов. Выполняет tool, кладёт результат в context и останавливает цикл по лимиту harness. Поэтому гарантии (права, лимиты) живут в коде harness, а не в модели.
2Почему один и тот же агент на одной задаче проходит разными путями?
Модель случайна, и каждое решение в цикле зависит от результатов предыдущих шагов. Одно другое решение на втором шаге меняет весь дальнейший путь. Поэтому агента оценивают многими прогонами, а не одной демонстрацией.
3Облачный API или локальная модель: одна выгода и один риск каждого варианта для банка.
Облако даёт сильнейшие модели без своего железа, но данные клиента уходят поставщику — вопрос закона и data residency. Локальная модель держит данные внутри, но слабее и требует своих GPU и людей. Выбор зависит от того, какие данные увидит модель.

Interview questions · US / UK

1What's the difference between an LLM, a chatbot and an agent?
Strong answer: LLM predicts next tokens; chatbot = one model call per turn; agent = model in a loop that chooses tools, harness executes them and feeds results back; stops on done or a limit; harder to evaluate because paths vary.
2In an agent loop, what does the model do and what does the harness do?
Strong answer: model only proposes the next action; harness validates arguments and permissions, executes, appends the result, enforces step/time/cost limits, logs traces; so guarantees live in harness code, not in the prompt.
3Your agent handled the demo task perfectly. Product wants to ship tomorrow. What do you say?
Strong answer: one run proves little because the model is stochastic and errors compound over steps (0.95^6 ≈ 0.74); build a task set, run each task several times, check end state and trajectory; ship behind shadow or canary.

Ключевые фразы · Say it aloud

Материалы