dartyushin.techОткрыть меню
← все статьи
статья3 минут

Что делает AI-систему агентом?

Начал читать и переводить (позже дам ссылку на GitHub с переводом) книгу [Agentic Design Patterns](https://docs.google.com/document/d/1rsaK53T3Lg5KoGwvf8ukOUvbELRtH-V0LnOIFDxBryE/preview?tab=t.0) с практическим гайдом по построению интеллектуальных агентских систем на базе AI от [Antonio Gulli](https://www.linkedin.com/in/searchguy/) из Гугла.

Где-то после введения в разделе «What makes an AI system an Agent?» автор описывает текущее состояние и развитие LLM как агентской системы. Основной тезис в том, что агентские системы на базе AI прошли 4 уровня от просто LLM, до агентской AI системы

  • Уровень 0: Знания при обучении и ризонинг. LLM как агент умеет решать задачи основываясь только на знаниях, полученных во время обучения. Например, в чате в IDE такой агент легко ответит на вопрос «как в Python написать алгоритм пирамидальной сортировки?», но не сможет подсказать как там в Spring самой последней версии (если ее не было в обучающей выборке) сделать то-то.
  • Уровень 1: Подключаем тулы. Тут мы даем агенту возможность использовать инструменты, чтобы что-то узнавать про окружающую среду. Это может быть поиск в интернете, RAG по документации или кодовой базе, поиск актуальной инфы о либе где-нибудь на GitHub, MCP, информация из Jira и многое другое. Очевидно, что сейчас это супер-базовый шаг для любой агентской системы в IDE на основе LLM: у агента в Т есть различный тулинг и MCP, у Яндекса в SourceCraft есть MCP, у всяких курсоров и вайдсерфов, конечно, тоже.
  • Уровень 2: Планирование решения задачи. В общем, тоже самое, что и на Уровне 1, но теперь агент строит план как решить сложную задачу, вызывает множество тулов, реагирует на результат своей работы (например, как junie использует информацию от JetBrains IDE об ошибках и в итоге всегда пишет зеленый код), использует short-term и long-term память. Конечно, у всех инструментов, перечисленных на Уровне 1, такое тоже есть. Обычно это сейчас и понимают по агентским режимом для написания кода в IDE. Легко привести пример: мы отправляем агенту ссылку на Jira таску, а в итоге получаем готовый Merge Request.
  • Уровень 3: Мультиагентные системы. Ну все тоже самое, только задачи становятся сложнее, а над ними трудится ансамбль агентов, каждый из которых хорошо справляется с конкретной задачей (кто-то планирует решение, кто-то пишет код, кто-то пишет тесты, ...). Это уже полное покрытие SDLC цикла.

Так же автор формулирует 5 гипотез по поводу будущего агентов:

  • Гипотеза 1: Появления универсального агента. Тут вся ясно из названия — появится универсальный агент, который сможет надежно (и автономно) выполнять долгосрочные задачи. Например, делать целый сервис по одной только идее, а дальше поддерживать его и совершенствовать. Эта концепция, подобная конструктору Lego, предполагает создание систем из небольших специализированных экспертов-агентов (базирующихся на небольших LLM), а не масштабирование одной монолитной модели.
  • Гипотеза 2: Глубокая персонализация и проактивность. В общем, не только решают задачи, а предлагают что-то свое. Например, агент сам придумывает и делает фичу для вашего проекта из Гипотезы 1.
  • Гипотеза 3: Взаимодействие с внешним миром. Эта гипотеза предполагает, что агенты выйдут за рамки своих чисто цифровых миров и начнут действовать в физическом мире.
  • Гипотеза 4: Экономика, управляемая агентами. Четвёртая гипотеза заключается в том, что высокоавтономные агенты станут активными участниками экономики, создавая новые рынки и бизнес-модели. Сюда я уже не лезу 🙂
  • Гипотеза 5: Целеустремленная метаморфная мультиагентная система. Хотя бы для понимания формулировки нужно попотеть. Кратко — пользователь описывает пожелание, а агент решает сам как его достичь.

В итоге, лидирующие AI ассистенты сейчас для написания кода находятся где-то на Уровне 3, решая довольно сложные задачи с использованием ансамбля агентов и большого количества тулинга. В этой книге далее подробно разбираются механизмы, на которых эти агенты работаю: промпты, планирование, память, MCP и прочее.