Перейти к содержимому
PraktickAI
КурсыДля командУслугиДокументацияБлог
КурсыДля командУслугиДокументацияБлог
ГлавнаяКурсыИИ-агенты для разработчиковАрхитектуры агентов: ReAct, использование инструментов, планирование
Предыдущий урокСледующий урок
Урок 2 из 730 мин

Архитектуры агентов: ReAct, использование инструментов, планирование

Перейти к разделу
  • Почему важна архитектура
  • ReAct: рассуждение + действие
  • Plan and Execute (план и выполнение)
  • Tool Use (использование инструментов, Function Calling)
  • Продвинутые паттерны
  • Рефлексия
  • Поиск инструментов
  • Параллельные вызовы инструментов
  • Как выбрать архитектуру

Почему важна архитектура

У вас может быть самая умная модель в мире, но если обернуть её в плохую архитектуру, получится плохой агент. Архитектура определяет, как агент думает, принимает решения и действует. В этом уроке мы рассмотрим три фундаментальных подхода.

ReAct: рассуждение + действие

ReAct (Reasoning and Acting) — наиболее широко используемая архитектура агентов. Принцип прост: модель чередует мышление и действие. Мысль (мне нужно выяснить...) -> Действие (вызов инструмента) -> Наблюдение (просмотр результата) -> Мысль (на основе результата, что дальше) -> Действие...

Task: Find out what framework the project uses and what dependencies it has

Thought: I need to check the project structure. I'll start by reading package.json.
Action: read_file("package.json")
Observation: { "dependencies": { "next": "16.x", "react": "19.x" ... } }
Thought: It's Next.js 16 with React 19. Let me check tsconfig for more info.
Action: read_file("tsconfig.json")
Observation: { "compilerOptions": { "target": "ES2022" ... } }
Thought: I have enough info. The project uses Next.js 16, React 19, TypeScript.
Answer: The project uses Next.js 16 with React 19 and TypeScript...

ReAct — это основа Claude Code, Cursor и большинства современных агентов для программирования. Когда вы видите, как Claude Code читает файлы, думает и пишет код, вы наблюдаете ReAct в действии.

Преимущества ReAct: прозрачное рассуждение (вы видите, почему агент делает то, что делает), подходит для задач, где план меняется на основе результатов, прост в реализации. Недостатки: может зацикливаться (мысль -> действие -> мысль об одном и том же), каждый шаг стоит токенов/денег, медленнее прямых подходов.

Plan and Execute (план и выполнение)

Альтернативный подход: агент сначала создаёт план всех шагов, затем выполняет их. В отличие от ReAct, где агент думает после каждого шага, здесь он думает в начале и выполняет последовательно.

Task: Add authentication to the application

Plan:
1. Analyze existing app structure
2. Install auth library (next-auth)
3. Create auth API route
4. Add login/logout components
5. Protect existing pages
6. Add tests
7. Run build and verify

Execution:
Step 1: read_file("src/app/layout.tsx") -> OK, got the structure
Step 2: run_command("npm install next-auth") -> OK
Step 3: write_file("src/app/api/auth/[...nextauth]/route.ts") -> OK
...

Преимущества: более эффективен для задач с чёткой процедурой, меньше шагов мышления = меньше затрат, пользователям легче отслеживать прогресс. Недостатки: план может оказаться неверным при выполнении, менее гибкий, чем ReAct, требует достаточного начального контекста.

Tool Use (использование инструментов, Function Calling)

Использование инструментов — не самостоятельная архитектура, а фундаментальный строительный блок всех архитектур агентов. Модель получает описания доступных инструментов и решает, какой использовать. Ключевой момент: модель НЕ выполняет инструмент — она возвращает структурированный запрос (имя инструмента + параметры), а ваш код его выполняет.

# Tool definition for Claude API
tools = [{
    "name": "read_file",
    "description": "Reads the contents of a file at the given path",
    "input_schema": {
        "type": "object",
        "properties": {
            "path": {
                "type": "string",
                "description": "Path to the file"
            }
        },
        "required": ["path"]
    }
}]

# Model decides to use a tool
# and returns: {"name": "read_file", "input": {"path": "src/app/page.tsx"}}
# Your code reads the file and sends the result back to the model

По состоянию на март 2026 года все три крупных провайдера (Anthropic, OpenAI, Google) предлагают нативное использование инструментов/function calling. API немного отличается, но принцип один: опишите свои инструменты, модель выбирает, какой использовать, а вы его выполняете.

Продвинутые паттерны

Рефлексия

Агент оценивает собственную работу после выполнения задачи и исправляет ошибки. Например: пишет код -> запускает тесты -> тесты падают -> анализирует ошибку -> исправляет код -> запускает тесты снова. Это распространено в агентах для программирования, таких как Claude Code.

Поиск инструментов

Когда у агента есть доступ к сотням инструментов, не все они передаются в контексте. Вместо этого агент сначала ищет релевантные инструменты. Anthropic предлагает Tool Search Tool, который экономит до 85% контекста по сравнению с традиционными подходами.

Параллельные вызовы инструментов

Агент может вызывать несколько инструментов одновременно — например, читать 5 файлов параллельно. Это значительно ускоряет выполнение, особенно для I/O-операций.

Как выбрать архитектуру

  • ReAct: когда вы не знаете всех шагов заранее, задача требует исследования или план меняется на основе результатов
  • Plan and Execute: когда задача чётко определена, шаги предсказуемы и вы хотите минимизировать затраты
  • Гибридный: план в начале, но с возможностью перепланирования после каждого шага — наиболее распространённый подход на практике

При выборе между ReAct и Plan-and-Execute спросите: «Знаю ли я все шаги заранее?» Если да, Plan-and-Execute эффективнее. Если задача требует исследования (например, отладка, изучение кода), ReAct лучше справляется с неизвестным.

Разработайте архитектуру агента

У вас есть задача: «Пройдись по всей кодовой базе, найди все TODO-комментарии и создай из них GitHub Issues с назначенным приоритетом и метками.» 1. Какой подход вы выберете — ReAct, Plan and Execute или гибридный? Обоснуйте выбор. 2. Какие инструменты понадобятся агенту? 3. Нарисуйте блок-схему агентного цикла для этой задачи. 4. Где агент может ошибиться и как это обработать?

Подсказка

Эта задача имеет чётко определённые шаги (сканирование -> парсинг -> создание issues), поэтому Plan and Execute — естественный выбор. Но что если встретится TODO без достаточного контекста для определения приоритета? Вот тут и нужна гибкость ReAct.

Отследите ReAct в действии

Возьмите трассировку ReAct из примера урока и расширьте её реалистичным сценарием отказа. Выпишите полную трассировку ReAct (Мысль -> Действие -> Наблюдение) для задачи: «Найдите конфигурацию базы данных в этом проекте и проверьте, настроен ли пул соединений.» Ваша трассировка должна включать: 1. Не менее 5 циклов Мысль-Действие-Наблюдение 2. Хотя бы один тупик (файл не найден, неверное предположение) 3. Восстановление агента из тупика с попыткой другого подхода 4. Финальный ответ с конкретными выводами Запишите полную трассировку в формате из урока.

Подсказка

Реалистичная трассировка начинается с проверки общих файлов конфигурации (settings.py, .env, config/database.yml), затем может потребоваться grep по ключевым словам 'pool', 'connection', 'database'. Включите момент, когда агент сначала смотрит не там.

Сравнение архитектур

Возьмите задачу: «Рефакторинг всех API-эндпойнтов в проекте для использования единого формата ответа об ошибке.» Разработайте подход агента с использованием ОБЕИХ архитектур: 1. Версия Plan and Execute: - Напишите полный план (пронумерованные шаги) - Определите, где план может сломаться - Оцените количество вызовов инструментов 2. Версия ReAct: - Напишите первые 3 цикла Мысль-Действие-Наблюдение - Покажите, как агент адаптируется при обнаружении неожиданных паттернов - Оцените количество вызовов инструментов Сравните: какая завершится быстрее? Какая даст лучшие результаты? Какая будет стоить меньше в вызовах API?

Подсказка

Plan-and-Execute будет эффективнее, ЕСЛИ все эндпойнты следуют одному паттерну. Но в реальных кодовых базах эндпойнты часто непоследовательны — одни используют исключения, другие возвращают dict, третьи используют пользовательские классы. ReAct лучше справляется с такой вариативностью.

Ключевые выводы
  • ReAct = чередование рассуждений и действий — наиболее гибкий, основа большинства агентов
  • Plan and Execute = план заранее, затем выполнение — эффективнее для чётких задач
  • Tool use = модель выбирает инструменты, ваш код их выполняет — строительный блок всех архитектур
  • Гибридные подходы наиболее распространены на практике — план + возможность перепланирования
  • Архитектура определяет качество агента больше, чем интеллект модели

В следующем уроке мы погружаемся в создание агента с Claude API — технику, которая даёт вам явное преимущество. Откройте полный курс и продолжайте прямо сейчас.

Предыдущий урок
LinkedInX / Twitter

2/7 завершено — продолжайте!

  • Почему важна архитектура
  • ReAct: рассуждение + действие
  • Plan and Execute (план и выполнение)
  • Tool Use (использование инструментов, Function Calling)
  • Продвинутые паттерны
  • Рефлексия
  • Поиск инструментов
  • Параллельные вызовы инструментов
  • Как выбрать архитектуру

PraktickAI

AI-обучение и консалтинг для технических команд

КурсыДля командУслугиДокументацияБлог
karel@praktickai.appLinkedIn

© 2026 PraktickAI — SkyVisual s.r.o. Все права защищены. Политика конфиденциальности · Условия использования · Порядок рассмотрения жалоб