# Agents

> Gli agents specializzati dietro un flow e le salvaguardie che li mantengono in carreggiata.

Un [flow](https://pentagi.com/it/docs/glossary/#flow) viene eseguito da un team di [agents](https://pentagi.com/it/docs/glossary/#agent). Ogni [agent type](https://pentagi.com/it/docs/glossary/#agent-type) ha il proprio prompt, le proprie impostazioni del modello e i propri [tools](https://pentagi.com/it/docs/glossary/#tool), così puoi assegnare modelli più potenti o più economici in base al ruolo.

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

| Agent                   | Ruolo                                                                                                                                      |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `primary_agent`         | Agent di ragionamento principale che guida un flow                                                                                         |
| `assistant`             | Modalità [assistant](https://pentagi.com/it/docs/glossary/#assistant) interattivo                                                                                |
| `generator`             | Suddivide ogni [task](https://pentagi.com/it/docs/glossary/#task) in [subtasks](https://pentagi.com/it/docs/glossary/#subtask)                                                         |
| `refiner`               | Affina il piano man mano che arrivano i risultati                                                                                          |
| `adviser`               | Consulenza esperta; mentor nel monitoraggio dell'esecuzione e planner nella pianificazione dei task                                        |
| `reflector`             | Corregge gli agents che smettono di produrre [tool calls](https://pentagi.com/it/docs/glossary/#tool-call)                                                       |
| `searcher`              | Raccolta informazioni e ricerca web                                                                                                        |
| `enricher`              | Raccoglie contesto aggiuntivo dalla [memory](https://pentagi.com/it/docs/glossary/#memory) e dal [sandbox](https://pentagi.com/it/docs/glossary/#sandbox) prima che l'adviser risponda |
| `coder`                 | Scrive e analizza codice                                                                                                                   |
| `installer`             | Installa e configura tools nella sandbox                                                                                                   |
| `pentester`             | Penetration test e valutazione della sicurezza                                                                                             |
| `simple`, `simple_json` | Completamenti in testo semplice e strutturati in JSON                                                                                      |

Altri due agents lavorano dietro le quinte: il `memorist` risponde alle domande degli altri agents sul lavoro passato attingendo alla memory a lungo termine, e il `reporter` redige il risultato di ogni task.

## [Come viene delegato il lavoro](https://pentagi.com/it/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
```

## [Meccanismi di sicurezza](https://pentagi.com/it/docs/concepts/agents/#safeguards)

* **Limiti alle tool call** (sempre attivi) — `MAX_GENERAL_AGENT_TOOL_CALLS` (predefinito 100) limita i turni del modello nelle catene di `primary_agent`, `assistant`, `pentester`, `coder` e `installer`, mentre `MAX_LIMITED_AGENT_TOOL_CALLS` (predefinito 20) li limita per gli altri agent. Un turno può chiamare diversi tools. I valori da 1 a 5 vengono portati a 6, e 0 o meno significa il predefinito.
* **Rilevamento delle ripetizioni** (sempre attivo) — a partire dalla terza chiamata consecutiva allo stesso tool con gli stessi argomenti, il tool non viene eseguito di nuovo: l'agent riceve la risposta precedente con la richiesta di cambiare strategia. La settima chiamata di questo tipo termina la catena.
* **Reflector** (sempre attivo) — interviene la prima volta che un modello risponde senza una tool call e riporta l'agent a effettuarne una; dopo tre tentativi falliti la catena si interrompe.
* **Monitoraggio dell'esecuzione** (beta, `EXECUTION_MONITOR_ENABLED`) — per `primary_agent`, `pentester`, `coder`, `installer` e `assistant` quando lavora con gli agent, l'adviser agisce come mentore quando l'agent chiama lo stesso tool `EXECUTION_MONITOR_SAME_TOOL_LIMIT` volte di fila (default 5) o effettua `EXECUTION_MONITOR_TOTAL_TOOL_LIMIT` tool calls dall'ultimo consiglio (default 10). Il trigger conta le chiamate invece di rilevare un blocco; l'adviser quindi rivede i progressi dell'agent e raccomanda se continuare, cambiare approccio o fermarsi.
* **Pianificazione intelligente dei task** (beta, `AGENT_PLANNING_STEP_ENABLED`) — l'adviser definisce 3–7 passaggi concreti prima che gli specialisti avviino un subtask.

> [!NOTE]
> Il monitoraggio dell'esecuzione e la pianificazione dei task raddoppiano all'incirca la qualità dei risultati per i modelli con meno di 32B parametri, al costo di 2–3× più token e tempo. Sono disattivati per impostazione predefinita.

In Enterprise, il planner viene sempre eseguito e il monitoraggio dell'esecuzione è attivo per impostazione predefinita con limiti di 20 e 40 — vedi [Agent profiles](https://pentagi.com/it/docs/enterprise/agent-profiles/#planner-and-execution-monitor).