# Мыслительный процесс агента и подход ReAct

> [HTML-версия](https://learnvibecoding.ru/publiclessons/myslitelnyy-protsess-agenta-i-podkhod-react) · [Индекс для LLM](https://learnvibecoding.ru/llms.txt) · [Политика использования материалов](https://learnvibecoding.ru/politika-materialov)
> Материалы защищены. Обучение LLM без согласия запрещено. При разрешённом использовании — обязательна прямая ссылка на страницу-источник.
> Изучим метод промпт-инжиниринга, который побуждает модель думать пошагово, прежде чем действовать

**Курс:** Создание своего агента

В этом разделе мы заглянем «внутрь головы» AI-агента — разберём, **как он рассуждает и планирует свои действия**.

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

Также познакомимся с подходом **ReAct**, — методом промпт-инжиниринга, который побуждает модель **думать пошагово, прежде чем действовать**.

---

## Что такое “Thought” (Мысль)

**Мысль** — это внутренняя логика и процесс планирования агента.

Он использует возможности своей **LLM-модели**, чтобы анализировать данные, рассуждать и выстраивать стратегию.

По сути, это **внутренний монолог** модели — та часть рассуждений, которую вы обычно не видите.

Мысли помогают агенту:

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

---

## Примеры типов мыслей

| Тип мысли | Пример |
| --- | --- |
| **Планирование (Planning)** | «Мне нужно разбить задачу на три шага: 1) собрать данные, 2) проанализировать тренды, 3) подготовить отчёт» |
| **Анализ (Analysis)** | «Судя по сообщению об ошибке, проблема в параметрах подключения к базе данных» |
| **Принятие решения (Decision Making)** | «С учётом бюджета пользователя, стоит предложить вариант средней стоимости» |
| **Решение проблем (Problem Solving)** | «Чтобы оптимизировать код, сначала нужно выявить узкие места» |
| **Использование памяти (Memory Integration)** | «Пользователь упоминал, что предпочитает Python — приведу примеры на Python» |
| **Саморефлексия (Self-Reflection)** | «Предыдущий подход не сработал — попробую другой метод» |
| **Постановка целей (Goal Setting)** | «Чтобы завершить задачу, нужно сначала определить критерии успеха» |
| **Приоритизация (Prioritization)** | «Уязвимость в безопасности нужно устранить прежде, чем добавлять новые функции» |

> 💡 Примечание:
> 
> 
> Для LLM, обученных на **вызове функций (function-calling)**, процесс мыслей может быть неявным.
> 
> Подробности о вызовах функций разберём в разделе *Actions*.
> 

---

## Цепочка рассуждений (Chain-of-Thought, CoT)

**Chain-of-Thought (CoT)** — это техника промпт-инжиниринга,

которая заставляет модель **думать пошагово перед ответом**.

Обычно CoT начинается с фразы:

> “Let's think step by step.” (Давайте подумаем шаг за шагом.)
> 

Этот подход особенно полезен при логических или математических задачах,

где важно пройти рассуждение до конца, **без использования внешних инструментов**.

---

### Пример (CoT)

**Вопрос:**

> Сколько будет 15% от 200?
> 

**Мысль:**

> Давайте подумаем шаг за шагом.
> 
> 
> 10% от 200 — это 20, 5% — это 10, значит 15% = 30.
> 

**Ответ:**

> 30
> 

---

## ReAct: Reasoning + Acting

Один из ключевых методов — **ReAct**, от слов *Reasoning* (мышление) и *Acting* (действие).

**ReAct** — это техника промпт-инжиниринга,

которая учит модель **чередовать размышления и действия**.

Благодаря этому агент способен решать **многошаговые задачи**,

поочерёдно проходя через стадии:

1. **Thought:** внутреннее рассуждение
2. **Action:** выполнение действия (вызов инструмента)
3. **Observation:** получение результата и обновление контекста

---

### Пример (ReAct)

```
Thought: Мне нужно узнать текущую погоду в Париже.
Action: Search["weather in Paris"]
Observation: В Париже +18°C и облачно.
Thought: Теперь, когда я знаю погоду...
Action: Finish["В Париже +18°C и облачно."]

```

Этот пример показывает, как ReAct объединяет размышления и действия:

модель **думает шаг за шагом**, а между мыслями совершает действия (например, обращается к инструменту).

---

## Сравнение ReAct и CoT

| Характеристика | **Chain-of-Thought (CoT)** | **ReAct** |
| --- | --- | --- |
| Пошаговое рассуждение | ✅ Да | ✅ Да |
| Использование внешних инструментов | ❌ Нет | ✅ Да |
| Подходит для | Логика, математика, внутренние задачи | Поиск информации, динамические сценарии |
| Обратная связь от среды | ❌ Нет | ✅ Есть (Observation) |

---

## Модели нового поколения

Современные модели, такие как **DeepSeek R1** или **OpenAI o1**,

обучены “думать, прежде чем ответить”.

Они используют **специальные токены**, например:

```
<think> … </think>

```

— чтобы **явно отделить рассуждение от финального ответа**.

В отличие от ReAct и CoT, которые являются *техниками промптирования*,

эти модели были **обучены на примерах рассуждений**,

то есть “мышление” встроено прямо на уровне обучения.

---

## Почему это важно

Понимание принципа Thought и подходов вроде ReAct и CoT —

это ключ к созданию **умных и надёжных агентов**,

которые не просто отвечают, а **умеют думать, планировать и действовать**.

> Такие агенты могут решать задачи с неопределёнными условиями,
> 
> 
> комбинировать данные из разных источников и корректировать свой план по мере получения новых наблюдений.
> 

## Как применять ReAct и CoT в реальных задачах

Теперь, когда ты понимаешь, как работают подходы **ReAct** и **Chain-of-Thought**, давай посмотрим, как использовать их в промптах и продуктах.

### 1. В чат-ботах и ассистентах

Чтобы повысить точность ответов:

```
Ты — финансовый помощник.
Перед ответом всегда рассуждай пошагово (CoT): «Сначала я подумаю шаг за шагом».
Если тебе нужно получить данные, используй инструмент Search или API.
После получения данных сформулируй итоговый ответ пользователю.

```

Так бот не «угадывает» ответ, а планирует его.

---

### 2. В аналитических продуктах (RAG-агенты, BI-боты)

Пример ReAct-логики:

```
Thought: Определить, какие данные нужны для отчёта.
Action: Query["sales_last_quarter"]
Observation: Данные получены.
Thought: Теперь я могу рассчитать динамику.
Action: Compute["growth_rate"]

```

Модель поочерёдно думает, вызывает нужный инструмент, анализирует результат и строит отчёт.

---

### 3. В агентных пайплайнах

При создании агентов на LangChain, LlamaIndex, OpenAI или MCP:

- добавь в **system prompt** инструкцию:
    
    «Следуй циклу Мысль → Действие → Наблюдение, пока цель не достигнута».
    
- структурируй логику агента как ReAct-петлю, чтобы он корректировал план при ошибках инструментов.

---

### 4. Для улучшения reasoning-качества модели

Если модель выдаёт поверхностные ответы — заставь её *думать*:

```
Let's think step by step.

```

или

```
Давай рассуждать по шагам, чтобы избежать ошибок.

```

Так ты активируешь у модели внутреннее «цепное рассуждение».

---

### Итого

- **CoT** усиливает глубину размышлений внутри одной задачи.
- **ReAct** делает агента интерактивным и адаптивным.
- Вместе они превращают LLM из «текстового генератора» в **планирующего и действующего помощника**....

[Все уроки](https://learnvibecoding.ru/publiclessons.md) · HTML: https://learnvibecoding.ru/publiclessons