# Agents

> Специализированные agents, обеспечивающие выполнение flow, и механизмы защиты, удерживающие их на правильном пути.

[Flow](https://pentagi.com/ru/docs/glossary/#flow) выполняется командой [agents](https://pentagi.com/ru/docs/glossary/#agent). У каждого [agent type](https://pentagi.com/ru/docs/glossary/#agent-type) свои промпт, настройки модели и [tools](https://pentagi.com/ru/docs/glossary/#tool), что позволяет назначать более мощные или более дешёвые модели для каждой роли.

## [Agent types](https://pentagi.com/ru/docs/concepts/agents/#agent-types)

| Agent                   | Роль                                                                                                                                        |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `primary_agent`         | Основной рассуждающий agent, управляющий flow                                                                                               |
| `assistant`             | Режим интерактивного [assistant](https://pentagi.com/ru/docs/glossary/#assistant)                                                                                 |
| `generator`             | Разбивает каждый [task](https://pentagi.com/ru/docs/glossary/#task) на [subtasks](https://pentagi.com/ru/docs/glossary/#subtask)                                                        |
| `refiner`               | Уточняет план по мере поступления результатов                                                                                               |
| `adviser`               | Экспертные консультации; наставник при контроле выполнения и планировщик при постановке task                                                |
| `reflector`             | Корректирует agents, переставших выполнять [tool calls](https://pentagi.com/ru/docs/glossary/#tool-call)                                                          |
| `searcher`              | Сбор информации и поиск в интернете                                                                                                         |
| `enricher`              | Собирает дополнительный контекст из [memory](https://pentagi.com/ru/docs/glossary/#memory) и [sandbox](https://pentagi.com/ru/docs/glossary/#sandbox) перед тем, как adviser даст ответ |
| `coder`                 | Пишет и анализирует код                                                                                                                     |
| `installer`             | Устанавливает и настраивает tools в sandbox                                                                                                 |
| `pentester`             | [Pentest](https://pentagi.com/ru/docs/glossary/#pentest) и оценка безопасности                                                                                    |
| `simple`, `simple_json` | Простые и JSON-структурированные завершения                                                                                                 |

Ещё два agents работают за кулисами: `memorist` отвечает на вопросы других agents о прошлой работе, обращаясь к долгосрочной memory, а `reporter` оформляет результат каждой task.

## [Как делегируется работа](https://pentagi.com/ru/docs/concepts/agents/#how-work-is-delegated)

```mermaid
sequenceDiagram
  accTitle: How a task is split into subtasks and the primary agent delegates each step to specialist agents through shared memory
  participant G as Generator
  participant O as Primary agent
  participant M as Memorist
  participant S as Specialists
  participant V as Vector store
  G->>O: Subtasks of the task
  O->>M: Past work, when the context lacks it
  M->>V: Search memory
  O->>S: Delegate a step to the searcher, pentester, coder or installer
  S->>V: Store tool results
  S-->>O: Result
```

## [Механизмы контроля](https://pentagi.com/ru/docs/concepts/agents/#safeguards)

* **Лимиты tool call** (всегда включены) — `MAX_GENERAL_AGENT_TOOL_CALLS` (по умолчанию 100) ограничивает количество ходов модели в цепочках `primary_agent`, `assistant`, `pentester`, `coder` и `installer`, а `MAX_LIMITED_AGENT_TOOL_CALLS` (по умолчанию 20) ограничивает их для остальных agents. За один ход можно вызвать несколько tools. Значения от 1 до 5 повышаются до 6, а 0 или меньше означает использование значения по умолчанию.
* **Обнаружение повторов** (всегда включено) — начиная с третьего подряд вызова одного и того же tool с теми же аргументами, tool не выполняется повторно: agent получает предыдущий ответ с просьбой изменить курс. Седьмой такой вызов завершает цепочку.
* **Reflector** (всегда включён) — вмешивается, если модель впервые отвечает без tool call, и направляет agent обратно к выполнению tool call; после трёх неудачных раундов цепочка останавливается.
* **Контроль выполнения** (бета, `EXECUTION_MONITOR_ENABLED`) — для `primary_agent`, `pentester`, `coder`, `installer` и `assistant` при работе с agents adviser выступает в роли наставника, когда agent вызывает один и тот же tool `EXECUTION_MONITOR_SAME_TOOL_LIMIT` раз подряд (по умолчанию 5) или совершает `EXECUTION_MONITOR_TOTAL_TOOL_LIMIT` tool calls с момента последней рекомендации (по умолчанию 10). Триггер подсчитывает вызовы, а не обнаруживает зависание; затем adviser анализирует прогресс agent и рекомендует продолжить, изменить подход или остановиться.
* **Интеллектуальное планирование task** (бета, `AGENT_PLANNING_STEP_ENABLED`) — agent adviser составляет 3–7 конкретных шагов до того, как специалисты приступят к subtask.

> [!NOTE]
> Контроль выполнения и планирование task примерно вдвое повышают качество результатов для моделей с объёмом менее 32B параметров, но расходуют в 2–3 раза больше токенов и времени. По умолчанию они отключены.

В Enterprise planner всегда выполняется, а мониторинг выполнения включён по умолчанию с лимитами 20 и 40 — см. [Agent profiles](https://pentagi.com/ru/docs/enterprise/agent-profiles/#planner-and-execution-monitor).