📞 +79508873881 ✈ @Vkrbigdata ✉ admin@Vkrbigdata.ru

Code-агенты на smolagents в дипломе: архитектура, метрики и защита прототипа

26 марта 2026 года на KDnuggets вышла заметка — 40 строк Python, и у вас работает погодный ИИ-агент на библиотеке smolagents от Hugging Face. Звучит как развлекательный туториал, но для выпускника направления «Программная инженерия», «ИИ» или «Прикладная информатика» это готовый каркас практической главы. Почему: библиотека весит копейки по зависимостям, не тянет за собой оркестратор на сотни мегабайт и, что важнее для диплома, даёт наглядную архитектуру «LLM → инструменты → исполнение кода».

Проблема в том, что большинство студентов либо пересказывает туториал дословно (комиссия это чувствует за две минуты), либо уходит в обратную крайность — тянет LangChain и потом полгода не может объяснить, зачем в схеме пять слоёв абстракции. Ниже — как превратить материал статьи в защищаемую ВКР: с обоснованием стека, UML-диаграммами по ГОСТ, метриками и экономикой внедрения.

Три темы ВКР, которые вырастают из статьи

Тема 1. Разработка ИИ-агента для автоматизации запросов к внешним API на базе smolagents

Актуальность. Статья демонстрирует переход от «чат-бота, который отвечает текстом» к «агенту, который сам вызывает API и обрабатывает результат». Это ровно тот сдвиг, который сейчас происходит в корпоративной разработке.

Тема 2. Сравнительная оценка code-агентов и tool-calling агентов при решении прикладных задач

Актуальность. В smolagents есть два режима: CodeAgent (модель генерирует Python-код как действие) и ToolCallingAgent (классический JSON-вызов инструментов). Это готовый предмет для экспериментальной части ВКР.

Тема 3. Обеспечение безопасности исполнения кода ИИ-агента в изолированной среде

Актуальность. Главный риск code-агентов — произвольное исполнение сгенерированного кода. Статья упоминает изоляцию, но не раскрывает её. Это идеальный «пробел», который студент закрывает собственной работой.

Аналитическая глава: как обосновать стек, а не просто его перечислить

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

КритерийsmolagentsПолноценный оркестратор (LangChain/LangGraph)Прямые вызовы API LLM
Порог входаНизкий: агент описывается десятком строкСредний и выше: требуется понимание цепочек и состоянийНизкий, но всю логику пишете сами
Объём зависимостейМинимальныйЗначительныйМинимальный
Поддержка агентного циклаВстроенаВстроена, гибкаяОтсутствует
Изоляция исполнения кодаЕсть варианты sandboxРешается отдельноНе применимо
Уместность в ВКРПрототип и исследование агентных режимовСложная многоагентная системаБазовая линия для сравнения

Совет: сделайте «прямые вызовы API» базовой линией (baseline) в эксперименте. Тогда у вас появятся цифры «до/после», а это уже элемент научной новизны, а не реферат.

Проектная часть: от 40 строк туториала к архитектуре

Схемы, которые обязаны быть в тексте

Туториал даёт линейный сценарий: запрос → модель → инструмент → ответ. В дипломе этого мало. Минимальный комплект графики: диаграмма компонентов (клиент, сервис-обёртка, агент, реестр инструментов, внешние API, среда исполнения), диаграмма последовательности для успешного сценария и отдельно — для сценария с ошибкой инструмента. Схемы алгоритмов оформляйте по ГОСТ 19.701-90, остальные — по правилам UML с расшифровкой нотации в приложении.

Ключевой фрагмент: инструмент агента

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

from smolagents import tool

@tool
def get_weather(city: str, days: int = 1) -> dict:
    """Возвращает прогноз погоды для города.

    Args:
        city: название города на русском языке.
        days: горизонт прогноза, от 1 до 5 суток.
    """
    if not 1 <= days <= 5:
        raise ValueError("days должен быть в диапазоне 1..5")
    return weather_client.forecast(city, days)

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

Место сервиса в инфраструктуре

Оберните агента в HTTP-сервис (FastAPI подойдёт) и опишите контейнеризацию. Это даёт вам законный повод поговорить в ВКР про CI/CD-пайплайн: сборка образа, прогон тестов, публикация. Без этого глава «внедрение» выглядит пустой.

Тестирование и метрики: чем измерить пользу агента

Самая частая претензия на защите — «вы не показали эффективность». Ниже набор метрик, которые реально считаются на небольшом стенде.

МетрикаКак измерятьОриентирРаздел ВКР
Доля успешно решённых задач (Task Success Rate)Прогон тестового набора из 50–100 запросов с эталонными ответамиСравнение с baseline, а не «абсолют»Глава 3, эксперимент
Латентность p95Логирование времени полного агентного циклаУказать целевое требование в ТЗГлава 3, нагрузочные тесты
Среднее число шагов агентаТрассировка шагов рассужденияРост шагов при том же результате — деградацияГлава 3, анализ
Стоимость обработки запросаУчёт токенов на 1 запрос × тарифПрямо влияет на экономикуГлава 3, экономика
Доступность сервиса, RTO/RPOСимуляция отказа контейнераЗависит от требований заказчикаГлава 3, надёжность

Для мониторинга прикрутите OpenTelemetry — трассировка шагов агента выглядит выигрышно на слайдах и напрямую связывает работу с ISO/IEC 25010 в части надёжности и производительности.

Чему вы научитесь на этом кейсе

Типичные ошибки студентов

  • Пересказ туториала как результата. Дословный повтор статьи не даёт вклада. Лечится одной таблицей сравнения и собственным экспериментом.
  • Полное отсутствие метрик. Фраза «работает быстро» на защите не принимается. Заранее определите 3–4 измеримые характеристики и снимайте их скриптом.
  • Схемы «для красоты». Диаграмма, не упомянутая в тексте и не связанная с задачами, раздражает рецензента. Каждая схема должна иметь ссылку из текста и расшифровку.
  • Терминологическая небрежность. «SaaS», «PaaS», «on-premise» без пояснения, к чему относится ваша система, — приглашение к неудобному вопросу.

Частые вопросы студентов

Обязательно ли писать работающий код в ВКР по ИТ-направлению?

Зависит от регламента кафедры. Там, где работа исследовательская, достаточно прототипа и подробного описания архитектуры. Но если в задачах заявлена «реализация», прототип обязателен. Минимально жизнеспособный вариант — именно такой агент, как в статье: его можно собрать за вечер, а потом наращивать инструменты.

Можно ли использовать открытые библиотеки и чужие API?

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

Как оформлять UML-диаграммы, чтобы их приняли?

Единого ГОСТ на UML нет, поэтому обычно действуют так: нотация по UML, оформление рамки и основных надписей по правилам ЕСКД, а в тексте — краткая легенда. Главное, чтобы типы связей и элементов были единообразны во всей работе: если на одной схеме агрегация ромбом, то и дальше тоже.

Где брать данные для тестирования агента?

Генерируйте набор запросов самостоятельно: 50–100 формулировок разной сложности, включая заведомо некорректные и провокационные. Плюс открытые датасеты и публичные API с бесплатным лимитом. Опишите методику формирования выборки — это увеличивает доверие к результатам.

Чек-лист перед сдачей

  • Ключевые утверждения подкреплены ссылками на источники, включая оригинальную статью.
  • Цель и задачи из введения дословно совпадают с выводами по главам.
  • Каждая схема упомянута в тексте и имеет подпись с номером.
  • ТЗ оформлено с учётом требований ГОСТ 34.602-89.
  • Метрики посчитаны, а не заявлены; есть формулы или фрагмент скрипта замера.
  • В приложении — листинги с версиями зависимостей и лицензиями.
  • В тексте нет нерасшифрованных англоязычных сокращений при первом употреблении.

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

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

Последнее обновление: 2026-09-26

Источник: Getting Started with Smolagents: Build Your First Code Agent in 15 Minutes (опубликовано 2026-03-26)