Команда Ozon Tech провела внутренний разбор: как устроен AI-агент, если убрать все готовые обёртки и начать с нуля. Автор — разработчик, который около месяца тестировал агентов на рабочих задачах внутри компании, прежде чем решился показать это коллегам. Разбор получился честным: в финале живая демонстрация пошла не по плану.
Почему не стали просто запускать готовый инструмент
Можно было открыть OpenCode, запустить пару команд и сделать вид, что всё работает само. Автор намеренно отказался от этого формата. Вместо этого — мысленный возврат в 2023 год, когда готовых агентских систем ещё не было, а была только языковая модель, умеющая продолжать текст.
Аудитория — семнадцать человек: бэкендеры, фронтендеры, QA, аналитики, менеджеры. Уровень знакомства с LLM у всех разный: одни сравнивали характеристики моделей, другие знали об ИИ ровно столько, сколько пишут в новостях. Задача — за час пройти путь от голой модели до работающего агента, не потеряв никого по дороге.
Что такое агент — и чем он не является
Первый слайд был почти пустой: только вопрос «Кто такие агенты?». Ответы из зала шли один за другим — «выполняет конкретную задачу», «умеет рассуждать», «видит весь контекст», «может сам что-то делать на компьютере». Ни один из них не был полностью точным.
Рабочее определение, к которому пришли вместе: агент — это система, которая получает информацию, принимает решение на её основе и действует с помощью доступных инструментов. Ключевое отличие от скрипта — не в «умности», а в том, что набор допустимых действий не задан заранее. Скрипт нельзя написать под задачу, формулировку которой вы ещё не видели. Агент соберёт последовательность вызовов на лету — и по той же причине может собрать её неправильно.
Занятный вывод из определения: привычный чат с нейросетью в браузере уже частично агентская система — у него есть поиск, и модель сама решает, лезть в интернет или нет. Голая языковая модель без инструментов агентом не является.
Что добавляли к модели шаг за шагом
Разбор строился как последовательная сборка. Каждый блок — ответ на вопрос «чего не хватает прямо сейчас»:
| Блок | Что добавляет |
|---|---|
| Tool Calling | Возможность вызывать внешние API и получать результат |
| Agent Loop | Цикл «подумал → вызвал инструмент → получил ответ → подумал снова» |
| RAG | Поиск по внешним данным, которых нет в весах модели |
| MCP | Стандартизированный протокол подключения внешних инструментов и данных |
| Skills | Выборочная загрузка инструкций — не всё сразу, а нужное под задачу |
Такая структура объясняет, почему агент делает то, что делает, а не просто показывает, что он умеет запускать команды.
Как это работало внутри Ozon до встречи
Автор честно описывает путь к моменту, когда агентов вообще стало можно показывать коллегам. Долгое время главной проблемой был контекст: его не хватало даже на один крупный файл проекта. Если файл не помещался целиком, агент просто не мог с ним работать.
Ситуация начала меняться, когда внутри Ozon появились более сильные модели, коллеги разработали MCP-серверы под рабочие сценарии, а вокруг всего этого собрались инструкции и документация. Из нескольких агентских инструментов постепенно выделился OpenCode. В итоге получилось окружение, в котором агент мог работать с файлами проекта, искать нужную информацию и выполнять небольшие задачи — не самостоятельно и не без ошибок, но уже заметно удобнее, чем раньше.
Около месяца автор тестировал разные сценарии и смотрел, где агент реально помогает, а где на объяснения и исправления уходит больше времени, чем на саму работу.
Где живая демонстрация пошла не так
Пятнадцать минут в конце отвели на практику. Запустили собранную конструкцию вживую — и всё сразу пошло не по плану. Подробности автор описывает в оригинальном тексте, но сам факт важен: это не было скрыто и не было представлено как досадная случайность.
Это согласуется с тем, что автор говорил в начале: агент может собрать последовательность действий неправильно — и это не баг конкретной реализации, а свойство подхода.
Кому это полезно на практике и где ждать проблем
Разбор ориентирован на смешанную аудиторию — не только на разработчиков. Это важно: большинство материалов про агентов либо слишком технические, либо слишком маркетинговые.
Для разработчика здесь есть конкретная архитектурная карта: tool calling → agent loop → RAG/MCP → skills. Для менеджера или аналитика — понимание, почему агент иногда ошибается и в каких сценариях его вообще стоит подключать.
Чего в источнике нет: конкретных цифр по экономии времени, сравнения OpenCode с другими инструментами, технических деталей MCP-серверов, которые разрабатывала команда Ozon. Разбор — про концепцию и опыт, не про бенчмарки.
Полный текст с деталями по каждому блоку и вопросами из зала — на Habr в блоге Ozon Tech.

