# Agents

> Os agents especializados por trás de um flow e as salvaguardas que os mantêm no caminho certo.

Um [flow](https://pentagi.com/pt-br/docs/glossary/#flow) é executado por uma equipe de [agents](https://pentagi.com/pt-br/docs/glossary/#agent). Cada [agent type](https://pentagi.com/pt-br/docs/glossary/#agent-type) tem seu próprio prompt, configurações de modelo e [tools](https://pentagi.com/pt-br/docs/glossary/#tool), permitindo que você atribua modelos mais robustos ou mais econômicos por função.

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

| Agent                   | Função                                                                                                                             |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `primary_agent`         | Agent principal de raciocínio que conduz um flow                                                                                   |
| `assistant`             | Modo [assistant](https://pentagi.com/pt-br/docs/glossary/#assistant) interativo                                                                             |
| `generator`             | Divide cada [task](https://pentagi.com/pt-br/docs/glossary/#task) em [subtasks](https://pentagi.com/pt-br/docs/glossary/#subtask)                                                    |
| `refiner`               | Refina o plano conforme os resultados chegam                                                                                       |
| `adviser`               | Consultoria especializada; mentor no monitoramento de execução e planejador no planejamento de task                                |
| `reflector`             | Corrige agents que param de gerar [tool calls](https://pentagi.com/pt-br/docs/glossary/#tool-call)                                                          |
| `searcher`              | Coleta de informações e busca na web                                                                                               |
| `enricher`              | Coleta contexto adicional da [memory](https://pentagi.com/pt-br/docs/glossary/#memory) e do [sandbox](https://pentagi.com/pt-br/docs/glossary/#sandbox) antes que o adviser responda |
| `coder`                 | Escreve e analisa código                                                                                                           |
| `installer`             | Instala e configura tools na sandbox                                                                                               |
| `pentester`             | [Pentest](https://pentagi.com/pt-br/docs/glossary/#pentest) e avaliação de segurança                                                                        |
| `simple`, `simple_json` | Respostas em texto simples e estruturadas em JSON                                                                                  |

Mais dois agents trabalham nos bastidores: o `memorist` responde a perguntas de outros agents sobre trabalhos anteriores a partir da memory de longo prazo, e o `reporter` documenta o resultado de cada task.

## [Como o trabalho é delegado](https://pentagi.com/pt-br/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
```

## [Salvaguardas](https://pentagi.com/pt-br/docs/concepts/agents/#safeguards)

* **Limites de tool call** (sempre ativo) — `MAX_GENERAL_AGENT_TOOL_CALLS` (padrão 100) limita as rodadas do modelo nas cadeias de `primary_agent`, `assistant`, `pentester`, `coder` e `installer`, e `MAX_LIMITED_AGENT_TOOL_CALLS` (padrão 20) limita as rodadas para os outros agents. Uma rodada pode chamar várias tools. Valores de 1 a 5 são elevados para 6, e 0 ou menos significa o padrão.
* **Detecção de repetição** (sempre ativa) — a partir da terceira chamada consecutiva para o mesmo tool com os mesmos argumentos, o tool não é executado novamente: o agent recebe a resposta anterior de volta com uma solicitação para mudar o curso. A sétima chamada desse tipo encerra a cadeia.
* **Reflector** (sempre ativo) — intervém na primeira vez que um modelo responde sem uma tool call e orienta o agent a fazer uma; após três rodadas sem sucesso, a cadeia é interrompida.
* **Monitoramento de execução** (beta, `EXECUTION_MONITOR_ENABLED`) — para `primary_agent`, `pentester`, `coder`, `installer` e `assistant` quando trabalha com agents, o adviser atua como um mentor quando o agent chama a mesma tool `EXECUTION_MONITOR_SAME_TOOL_LIMIT` vezes seguidas (padrão 5) ou faz `EXECUTION_MONITOR_TOTAL_TOOL_LIMIT` tool calls desde o último conselho (padrão 10). O gatilho conta as chamadas em vez de detectar uma parada; o adviser então revisa o progresso do agent e recomenda se deve continuar, mudar a abordagem ou parar.
* **Planejamento inteligente de task** (beta, `AGENT_PLANNING_STEP_ENABLED`) — o adviser elabora de 3 a 7 etapas concretas antes que os especialistas iniciem uma subtask.

> [!NOTE]
> O monitoramento de execução e o planejamento de task praticamente dobram a qualidade dos resultados para modelos com menos de 32B parâmetros, ao custo de 2–3× mais tokens e tempo. Eles estão desativados por padrão.

No Enterprise, o planner sempre é executado e o monitoramento de execução fica ativado por padrão com limites de 20 e 40 — veja [Agent profiles](https://pentagi.com/pt-br/docs/enterprise/agent-profiles/#planner-and-execution-monitor).