# Observe: как агент учится на результатах своих действий

> [HTML-версия](https://learnvibecoding.ru/publiclessons/observe-kak-agent-uchitsya-na-rezultatakh-svoikh-deystviy) · [Индекс для LLM](https://learnvibecoding.ru/llms.txt) · [Политика использования материалов](https://learnvibecoding.ru/politika-materialov)
> Материалы защищены. Обучение LLM без согласия запрещено. При разрешённом использовании — обязательна прямая ссылка на страницу-источник.
> Что сделать, чтобы агент был умным, а не просто выполнял команды

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

## Зачем это нужно

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

Эту роль выполняет этап **Observation (наблюдение)** — момент, когда агент получает обратную связь из внешнего мира и использует её, чтобы скорректировать свою стратегию.

Без наблюдения агент — это просто автомат, выполняющий инструкции.

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

---

## Как это работает

Этап *Observation* завершает цикл **“Думай → Действуй → Наблюдай” (Thought → Action → Observation)**.

После каждого действия агент:

1. **Получает обратную связь** — данные, статус или сообщение об ошибке.
2. **Добавляет результат к контексту** — обновляет свою “память”.
3. **Рефлексирует и адаптируется** — принимает решение, как действовать дальше.

Так агент превращает каждый опыт в новый шаг обучения.

---

## Что такое Observation

**Observation (наблюдение)** — это любая информация, которую агент получает от среды после действия:

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

Пример:

> Агент запросил погоду.
> 
> 
> API вернуло: *“partly cloudy, 15°C, 60% humidity.”*
> 
> Агент добавляет эту информацию в свой контекст и решает:
> 
> “У меня есть данные, теперь можно сформулировать ответ пользователю.”
> 

---

## Типы наблюдений

| Тип Observation | Пример | Что даёт агенту |
| --- | --- | --- |
| **Системная обратная связь** | Ошибка `404`, `Success: True`, `Timeout` | Понимание, сработало ли действие |
| **Данные** | Результаты API, текст документа | Новые факты для анализа |
| **Изменения состояния** | Запись в БД, обновлённый файл | Подтверждение, что действие завершено |
| **Метрики среды** | Нагрузка CPU, температура, координаты робота | Контроль физического или вычислительного состояния |
| **Анализ ответа** | “Запрос вернул пустой результат” | Повод изменить стратегию |

---

## Как добавляются результаты

После выполнения действия фреймворк проходит три шага:

1. **Парсит действие** — определяет, какую функцию вызывали и с какими аргументами.
2. **Выполняет функцию** — получает фактический результат.
3. **Формирует Observation** — добавляет результат в контекст для следующего шага размышлений.

Пример в виде контекста агента:

```
Thought: Нужно узнать текущую погоду в Париже.
Action: {"action": "get_weather", "action_input": {"location": "Paris"}}
Observation: {"result": "18°C, облачно"}
Thought: У меня есть данные — можно подготовить ответ пользователю.

```

---

## Что даёт Observation на практике

### 1. **Динамическая адаптация**

Агент корректирует стратегию, если:

- получил ошибку API,
- обнаружил пустой ответ,
- или понял, что нужны дополнительные данные.

### 2. **Самообучение**

Агент “запоминает”, какие действия приводят к успешным результатам, и оптимизирует будущие циклы.

### 3. **Контроль достоверности**

Если данные противоречивы, агент может переспросить источник или уточнить параметры.

---

## Реальные сценарии применения

| Сценарий | Как используется Observation |
| --- | --- |
| 🧾 **Финансовый анализ** | Агент проверяет отчёты, получает ошибку расчёта → пересчитывает с другими параметрами. |
| 🏥 **Медицинский бот** | Получает результаты анализов → обновляет гипотезу → предлагает новые тесты. |
| 🧮 **AI-аналитик** | Получает SQL-ошибку → корректирует запрос → повторяет выполнение. |
| 🤖 **Роботизированная система** | Читает показания сенсоров → корректирует траекторию движения. |

---

## Применительная ценность

> Observation — это способ превратить LLM из “оракула” в адаптивного агента, способного учиться на обратной связи.
> 

Без этапа наблюдения:

- агент действует вслепую;
- не знает, успешен ли результат;
- не способен к улучшению.

С Observation агент:

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

---

## Как реализовать Observation в своём проекте

1. **Добавь обработку результатов инструментов (Tools)**
    
    Каждое действие должно возвращать чёткий текст или JSON, который можно встроить в контекст.
    
2. **Определи формат Observation**
    
    Пример:
    
    ```python
    observation = f"Observation: {result}"
    
    ```
    
    или
    
    ```json
    {"Observation": {"tool": "get_weather", "output": "18°C, cloudy"}}
    
    ```
    
3. **Передай Observation в следующую итерацию LLM**
    
    чтобы агент мог на него сослаться в рассуждениях.
    

---

## Главное, что нужно запомнить

- **Observation = обратная связь.**
- Это “глаза и уши” агента, помогающие понять, что произошло после действия.
- Без Observation нет адаптации, без адаптации нет интеллекта.

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