Как работают агенты
Понимание того, что происходит “под капотом”, помогает вам более эффективно работать с агентами. Не обязательно быть ML-инженером, но знание основ трансформирует то, как вы взаимодействуете с этими системами.
Цикл ReAct
Section titled “Цикл ReAct”Каждый AI-агент следует одному и тому же базовому паттерну: Reason → Act → Observe (reasoning — действие — наблюдение). Этот цикл, называемый ReAct (Reason + Act — не фронтенд-фреймворк), позволяет агентам превращать ваш запрос в работающий код.
Вот что происходит на каждой итерации:
- Observe (Наблюдение): Чтение текущего состояния (код, ошибки, файловая система)
- Reason (Рассуждение): Принятие решения о том, какое действие приблизит к цели
- Act (Действие): Выполнение этого действия (написание кода, запуск команды, запрос уточнений)
- Evaluate (Оценка): Проверка результата, затем повторение цикла
Качество каждого шага определяет качество итогового результата. Когда агент как будто “застревает”, обычно это означает, что он не справляется с одним конкретным шагом в этом цикле.
Что LLMs могут и чего не могут
Section titled “Что LLMs могут и чего не могут”Большая языковая модель (Large Language Model, LLM) — это “мозг” агента, нейронная сеть, обученная на огромных объёмах текста и кода. Понимание её сильных и слабых сторон помогает работать с ней, а не против неё.
Что LLMs делают хорошо:
- Распознавание паттернов и автодополнение кода
- Следование структурированным инструкциям
- Генерация синтаксически корректного кода
- Объяснение концепций и рассуждение над проблемами
С чем LLMs справляются плохо:
- Нет постоянной памяти между сессиями: каждая беседа начинается с чистого листа
- Нет доступа к системе без инструментов: по умолчанию они могут только генерировать текст
- Вероятностный, а не детерминированный подход: одни и те же входные данные могут дать разный результат
- Ограниченное долгосрочное планирование: они лучше всего работают с чёткими, ограниченными задачами
Закрытые и открытые модели
Section titled “Закрытые и открытые модели”Модели, лежащие в основе AI-агентов, бывают двух типов: закрытые и открытые (open weight). У каждого есть свои компромиссы, влияющие на то, как вы строите и развёртываете агентов.
Закрытые модели (Claude, GPT, Gemini, Grok и др.) доступны через API. Вы отправляете запросы на серверы провайдера и платите за каждый токен.
- Плюсы: Самая современная производительность, не нужно управлять инфраструктурой, постоянные улучшения
- Минусы: Данные покидают вашу сеть, затраты масштабируются с объёмом, зависимость от доступности провайдера
Открытые модели (Llama, Mistral, DeepSeek, Qwen) можно скачать и запустить на своём оборудовании или получить к ним доступ через API.
- Плюсы: Полный контроль над данными, предсказуемые затраты при масштабировании, возможность кастомизации через дообучение
- Минусы: Требуется GPU-инфраструктура, самостоятельное управление обновлениями и безопасностью, обычно более низкая производительность по сравнению с передовыми закрытыми моделями
Выбор между ними:
- Начните с закрытых моделей. Их проще интегрировать, и сейчас они более способны. Большинству команд стоит начинать именно с них.
- Рассмотрите открытые модели, когда: У вас строгие требования к локализации данных, предсказуемые высоконагруженные рабочие процессы, где самостоятельный хостинг обходится дешевле, или вам нужно дообучение под специализированные домены.
- Гибридные подходы работают. Используйте закрытые модели для сложных задач рассуждения и открытые модели для высоконагруженных, более простых операций, таких как форматирование кода или базовая классификация.
Разрыв между закрытыми и открытыми моделями продолжает сокращаться. То, что сегодня требует закрытую модель, возможно через год будет достижимо с открытой. Проектируйте свои системы так, чтобы можно было подменять модели по мере развития ландшафта.
Использование инструментов
Section titled “Использование инструментов”Стандартные LLMs могут только генерировать текст. Инструменты — это то, что превращает их в агентов, способных реально действовать.
Типичные инструменты:
- Операции с файлами: Чтение, запись и поиск в файлах кода
- Терминальные команды: Запуск сборок, тестов, линтеров и деплоев
- API-вызовы: Взаимодействие с внешними сервисами и базами данных
- Выполнение кода: Запуск и проверка сгенерированного кода
Каждый инструмент расширяет возможности агента. Качество интеграции инструментов — насколько надёжно они работают и насколько хорошо агент знает, когда их использовать — имеет значение не меньше, чем базовая модель.
Контекстные окна
Section titled “Контекстные окна”Контекстное окно — это всё, что агент может “видеть” одновременно: ваши инструкции, код, предыдущая беседа и результаты инструментов. Оно измеряется в токенах (примерно 4 символа каждый).
Более широкие окна позволяют агентам работать с большим объёмом кода одновременно. Но есть компромисс: больший контекст означает более медленные ответы и более высокие затраты.
Когда контекст заполняется, старый контент усекается — агент буквально забывает его. Умные агенты управляют этим, загружая только релевантное и суммаризируя при необходимости. Вы можете помочь, сохраняя задачи сфокусированными и предоставляя только тот контекст, который важен.
Типичные режимы отказа
Section titled “Типичные режимы отказа”Агенты отказывают предсказуемым образом. Знание этих паттернов помогает выявлять проблемы на ранней стадии:
- Галлюцинация: Генерация правдоподобной, но неверной информации, например несуществующих API или функций
- Дрейф контекста: Постепенная потеря отслеживания изначальной цели по мере накопления шагов
- Бесконечные циклы: Застревание в повторении одного и того же неудачного подхода без попытки чего-то нового
- Чрезмерная уверенность: Утверждение, что код работает, без реальной проверки его выполнения
Когда вы видите эти паттерны, вмешайтесь. Сбросьте контекст, уточните цель или разбейте задачу на более мелкие части. Агент не проявляет упрямство — он наткнулся на ограничение, с которым можно работать.
Мы пропустили режим отказа? Это руководство основано на сообществе. Поделитесь своим опытом, чтобы другие могли учиться на нём.