# Что такое температура модели и функции модели

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

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

**Температура (temperature)** — это параметр, который управляет степенью “творчества” модели.

Он определяет, **насколько случайно** модель выбирает следующий токен из всех возможных.

| Значение | Поведение |
| --- | --- |
| `0.0 – 0.3` | Максимальная точность, минимум фантазии. Хорошо для агентов, вычислений, API. |
| `0.4 – 0.7` | Баланс между точностью и креативом. Подходит для рассуждений и customer-сценариев. |
| `0.8 – 1.2` | Креатив, идеи, генерация текстов, рекламы и историй. |

Пример:

```python
output = client.chat.completions.create(
    messages=messages,
    temperature=0.2,  # минимальная вариативность — строгая логика
    stop=["Observation:"]
)

```

Для агентов рекомендуется **низкая температура (0–0.3)**,

чтобы модель не “фантазировала” при вызове функций.

# 📘 Best Practices: как выбрать температуру и циклы для разных типов агентов

Чтобы агент вёл себя предсказуемо, полезно заранее определить:

- **его тип (роль)** — аналитик, ассистент, креатор, ресерчер и т. д.,
- **цель** — точность, скорость, креативность или гибкость,
- **параметры** — температуру, длину цикла и глубину рассуждений.

---

## 🎯 1. Классификация агентов по типу задач

| Тип агента | Основная цель | Оптимальная температура | Глубина цикла (Thought → Action → Observation) | Поведение |
| --- | --- | --- | --- | --- |
| **Analyst Agent** | Логика, точность, отчётность | `0.0 – 0.2` | 1–3 итерации | Рассуждает чётко, избегает фантазий, проверяет Observation перед выводом. |
| **Assistant Agent** | Поддержка пользователей, запросы, автоматизация | `0.2 – 0.4` | 2–4 итерации | Говорит естественно, переспросит при ошибке, использует предыдущий контекст. |
| **Research Agent** | Поиск, синтез, генерация гипотез | `0.4 – 0.6` | 3–5 итераций | Способен формировать несколько стратегий и сравнивать результаты. |
| **Creative Agent** | Идеи, тексты, концепты | `0.7 – 1.0` | 1–2 итерации | Многообразие и спонтанность важнее точности; допускается отклонение от шаблона. |
| **System / Tool Agent** | API-вызовы, интеграции, управление процессами | `0.0 – 0.1` | 1–2 итерации | Следует строгим правилам, не допускает вариативности в структуре JSON. |

---

## 🧠 2. Подбор температуры и контекста

Температура управляет тем, **насколько непредсказуемыми будут выборы модели** при генерации следующего токена.

| Что нужно достичь | Настройка температуры | Почему |
| --- | --- | --- |
| Высокая точность, стабильные ответы | `0.0` | Модель выбирает самый вероятный токен → повторяемость. |
| Баланс рассуждений и естественности | `0.3–0.5` | Модель может слегка отклоняться, искать альтернативные объяснения. |
| Креатив, ассоциации, вдохновение | `0.7–1.0` | Модель чаще выбирает неожиданные, но осмысленные варианты. |

📌 *Совет:* при создании reasoning-агентов (аналитика, планировщика, ассистента) начинай с температуры **0.2–0.3**, а потом увеличивай, если видишь, что ответы слишком сухие.

---

## 🔁 3. Оптимальная глубина цикла

Цикл **Thought → Action → Observation → (повтор)** не всегда должен быть бесконечным.

Слишком длинные петли делают модель медленной и дорогой,

слишком короткие — лишают гибкости.

| Задача | Рекомендации по итерациям |
| --- | --- |
| Простая (один вызов API) | 1 цикл |
| Многошаговый сценарий (например, анализ + поиск + сводка) | 2–3 цикла |
| Исследовательская или автономная работа (много инструментов) | 4–6 циклов |
| Непрерывное взаимодействие (агент-наблюдатель, мониторинг) | Цикл с условием `while not goal_reached` |

💡 *Лайфхак:* всегда добавляй ограничение `max_cycles` в конфиг агента, чтобы избежать зацикливания.

---

## 🧩 4. Где задавать параметры

Температура и цикл задаются **в момент генерации**:

```python
output = client.chat.completions.create(
    messages=messages,
    temperature=0.2,          # управляет стилем мышления
    max_tokens=200,           # ограничивает длину рассуждения
    stop=["Observation:"],    # останавливает перед вызовом функции
)

```

Если агент написан на основе класса, параметры можно вынести в конфигурацию:

```python
class AgentConfig:
    temperature = 0.2
    max_cycles = 3
    model = "gpt-4o"

```

И потом использовать их при инициализации агента:

```python
agent = DummyAgent(config=AgentConfig)

```

---

## ⚙️ 5. Функции “Think”, “Act”, “Observe”, “Reflect”

Чтобы повысить прозрачность reasoning-процесса, многие агентные системы вводят явные функции,

которые оборачивают эти шаги:

```python
def think(context):
    """Модель рассуждает, что делать дальше."""
    return llm.generate(prompt=context + "\nThought:")

def act(thought):
    """Формирует JSON-действие."""
    return parse_json(thought)

def observe(action_result):
    """Добавляет Observation и обновляет контекст."""
    return f"Observation: {action_result}"

def reflect(history):
    """Анализирует, достигнута ли цель."""
    return "Final Answer" if goal_reached(history) else "Continue"

```

Зачем это:

- повышает **контролируемость** агента;
- позволяет логировать reasoning-процесс;
- облегчает отладку при тестировании действий и наблюдений.

---

## 🧭 6. Примеры оптимальных конфигураций

| Сценарий | Температура | max_cycles | Особенности |
| --- | --- | --- | --- |
| 📊 Аналитик данных | 0.2 | 3 | Высокая точность, минимум фантазии, длинные Observation. |
| 🗣 Помощник поддержки | 0.4 | 2 | Дружелюбные ответы, следит за контекстом клиента. |
| 🔍 Исследователь трендов | 0.5 | 4 | Умеет строить гипотезы и переспрашивать. |
| 🎨 Креативный копирайтер | 0.9 | 1 | Короткие циклы, максимум свободы. |
| ⚙️ API-агент (вызовы) | 0.1 | 2 | Строгий JSON, стоп на “Observation:”. |

---

## 🚀 Итог

✅ **Температура** управляет стилем мышления агента (от точного до вдохновлённого).

✅ **Цикл Thought–Action–Observation** превращает LLM из “оракула” в действующего субъекта.

✅ **Явные функции и системный промпт** дают контроль над поведением и объяснимость.

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