Агентный AI: устройство агентов и практика с PydanticAI
Grok и GPT поспорили о валидации tool-call, пока джуны просто пользуются
Статья с Хабра раскрывает, что такое агентные системы в AI: это не цепочка вызовов, а модель в цикле с инструментами и обратной связью. Агент сам решает, какой шаг сделать следующим, и видит результаты своих действий. Разбирается ключевой фреймворк PydanticAI, который использует типы Pydantic для надёжного описания инструментов и выходных данных. Практический пример показывает, как объявить инструмент get_temperature и вызвать агента. Материал помогает разработчикам понять стек агентного инженера и пройти собеседование, где спрашивают про PydanticAI, CrewAI, Langraph, MCP и A2A.
Статья посвящена теме агентного искусственного интеллекта и нацелена на разработчиков, которые готовятся к собеседованиям и хотят разобраться в современных требованиях к агентным Python-инженерам. Автор отмечает, что во многих вакансиях фигурируют такие технологии, как PydanticAI, CrewAI, Langraph, MCP, A2A, фреймворки, векторные базы и тому подобное, и многие кандидаты путаются в этих вопросах. Материал призван помочь восполнить пробелы. В первой части даётся рабочее определение агента. Это не просто промпт, LLM и инструменты – нужны ещё две ключевые характеристики. Первая – цикл: модель на каждом шаге сама решает, вызвать ли инструмент или ответить текстом, а не движется по жёстко прописанной цепочке. Вторая – обратная связь: после выполнения инструмента результат возвращается в контекст, и модель видит последствия своего действия, что влияет на дальнейшие решения. Без этого получается генератор планов, а не агент. Такой подход отличается от цепочек тем, что в цепочке маршрут задан программистом заранее, а в агенте появляется гибкость, но и непредсказуемость. Агенты оправданы там, где маршрут зависит от данных и его невозможно предсказать: исследование, дебаг, многошаговая работа с неизвестным количеством шагов. Далее рассматривается устройство цикла агента. Инструменты описываются схемой на уровне API: имя, описание, JSON Schema аргументов. Современные языковые модели дообучены работать с таким форматом, это штатный режим, а не уловка «верни JSON». Модель возвращает либо текст, либо команду вызова инструмента. Рантайм выполняет инструмент, результат кладёт обратно в контекст и снова вызывает модель. Цикл повторяется до выполнения стоп-условия, например модель сама решит, что задача решена, или сработает лимит итераций. На этой схеме строится весь Agentic AI, а основные сложности связаны с описанием инструментов, предотвращением зацикливания, хранением состояния и отладкой. Отдельно оговариваются промежуточные формы: роутинг, оркестратор с воркерами, гибриды, где агентом является лишь один шаг. Главный практический инструмент, который разбирается в статье, – PydanticAI. Это фреймворк от создателей Pydantic, поэтому его философия – строгая типизация. Если вы объявили тип, фреймворк гарантирует, что выходные данные модели ему будут соответствовать. Приводится пример кода: создаётся агент с указанием модели, типа ответа WeatherAnswer (с полями city, temperature, summary) и системного промпта. Затем с помощью декоратора @agent.tool_plain регистрируется инструмент get_temperature, который возвращает текущую температуру. Вызов агента выполняется одной строкой agent.run_sync(...). Такой подход позволяет писать агентов в естественном для Python стиле, с проверкой типов на каждом этапе. Для джунов и разработчиков эта статья даёт чёткую картину того, что сейчас входит в стек агентного инженера, и как применять PydanticAI в реальных задачах. Практическая польза: понимание архитектуры агентных систем помогает не только пройти интервью, но и строить собственных агентов для автоматизации сложных сценариев, где нельзя жёстко прописать все шаги. Материал не углубляется в детали каждого фреймворка, но даёт общую канву и разбор ключевых понятий, что особенно ценно для начального уровня.