# Modelli locali

> Esegui PentAGI su modelli ospitati sul tuo hardware, così che prompt, output degli strumenti e finding rimangano sui tuoi server.

PentAGI può funzionare interamente con modelli che servi tu stesso. I prompt degli [agent](https://pentagi.com/it/docs/glossary/#agent), l'output dei [tool](https://pentagi.com/it/docs/glossary/#tool) che leggono e i [finding](https://pentagi.com/it/docs/glossary/#finding) che riportano rimangono sui tuoi server, e un [flow](https://pentagi.com/it/docs/glossary/#flow) lungo costa tempo GPU invece di token. Sono supportati due tipi di server di modelli: Ollama, il più rapido da configurare, e vLLM o qualsiasi altro server con un'API compatibile con OpenAI, per un throughput più elevato.

## [Ollama](https://pentagi.com/it/docs/deployment/local-models/#ollama)

Indica a PentAGI il server Ollama in `.env`:

```bash
OLLAMA_SERVER_URL=http://ollama-server:11434
OLLAMA_SERVER_CONFIG_PATH=/opt/pentagi/conf/ollama-qwen332b-fp16-tc.provider.yml
OLLAMA_SERVER_PULL_MODELS_ENABLED=false   # true downloads missing models at startup
OLLAMA_SERVER_LOAD_MODELS_ENABLED=false   # true lists the models the server already has
```

Il file di configurazione assegna un modello e i suoi parametri a ogni [agent type](https://pentagi.com/it/docs/glossary/#agent-type); senza di esso, `OLLAMA_SERVER_MODEL` imposta il modello predefinito. L'immagine include configurazioni pronte in `/opt/pentagi/conf/`, tra cui `ollama-qwen332b-fp16-tc.provider.yml` e `ollama-qwq32b-fp16-tc.provider.yml`.

La finestra di contesto predefinita di Ollama è molto più piccola di quanto necessiti un flow: gli agent usano tipicamente circa 64K token, e PentAGI è configurato per 110K. Ollama imposta la dimensione del contesto solo quando crea un modello, quindi costruisci una variante da un Modelfile:

```dockerfile
FROM qwen3:32b-fp16
PARAMETER num_ctx 110000
PARAMETER temperature 0.3
PARAMETER top_p 0.8
PARAMETER min_p 0.0
PARAMETER top_k 20
PARAMETER repeat_penalty 1.1
```

```bash
ollama create qwen3:32b-fp16-tc -f Modelfile
```

## [vLLM e altri server compatibili con OpenAI](https://pentagi.com/it/docs/deployment/local-models/#vllm-and-other-openai-compatible-servers)

vLLM, LocalAI e altri server con un'API compatibile con OpenAI si connettono come [provider personalizzato](https://pentagi.com/it/docs/configuration/llm-providers/#custom-and-openai-compatible-endpoints):

```bash
LLM_SERVER_URL=http://vllm-server:8000/v1
LLM_SERVER_KEY=local                      # any non-empty value when the server has no key
LLM_SERVER_MODEL=Qwen/Qwen3.6-27B-FP8
LLM_SERVER_CONFIG_PATH=/opt/pentagi/conf/vllm-qwen3.6-27b-fp8.provider.yml
```

L'immagine include configurazioni per diverse build di Qwen su vLLM; le varianti `-no-think` disattivano il reasoning. Gli agent lavorano tramite [tool call](https://pentagi.com/it/docs/glossary/#tool-call), quindi avvia il server con il parser delle tool call e il [template](https://pentagi.com/it/docs/glossary/#template) di chat consigliati per il tuo modello: con un parser sbagliato, gli argomenti delle tool call arrivano corrotti e un flow si interrompe dopo pochi passi.

## [Scegliere un modello](https://pentagi.com/it/docs/deployment/local-models/#choosing-a-model)

* Assegna il tuo modello più potente a `primary_agent`, `pentester` e `adviser` nel file di configurazione; quelli più leggeri possono servire `searcher`, `enricher` e il riassunto.
* Per modelli con meno di 32B di parametri, attiva [monitoraggio dell'esecuzione e pianificazione dei task](https://pentagi.com/it/docs/concepts/agents/#safeguards). Raddoppiano approssimativamente la qualità dei risultati al costo di due o tre volte più token e tempo.
* Pianifica la memoria: QwQ 32B in FP16, ad esempio, richiede circa 71 GB di memoria GPU.

## [Mantieni locale il resto dello stack](https://pentagi.com/it/docs/deployment/local-models/#keep-the-rest-of-the-stack-local)

| Parte                                              | Impostazione                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Embedding                                          | `EMBEDDING_PROVIDER=ollama` con un modello di embedding in `EMBEDDING_MODEL` usa lo stesso server Ollama; un server locale compatibile con OpenAI funziona con `EMBEDDING_PROVIDER=openai`, il suo indirizzo in `EMBEDDING_URL` e qualsiasi `EMBEDDING_KEY` non vuoto                                                                                                                                                                                                                                                                                                                                                                                |
| Ricerca web                                        | Search invia le query degli agent a internet. DuckDuckGo è attivo per impostazione predefinita; disattivalo con `DUCKDUCKGO_ENABLED=false` e mantieni solo i [motori di ricerca](https://pentagi.com/it/docs/configuration/search-engines/) che accetti, come il tuo SearXNG personale                                                                                                                                                                                                                                                                                                                                                                                     |
| [Knowledge graph](https://pentagi.com/it/docs/glossary/#knowledge-graph) | Disattivato per impostazione predefinita. Quando è attivo, Graphiti chiama OpenAI a meno che `GRAPHITI_LLM_CLIENT_TYPE=custom` non lo invii al server in `LLM_SERVER_URL`, al quale chiede poi anche gli embedding con il modello indicato in `EMBEDDING_MODEL`, oppure `text-embedding-3-small` quando questo è vuoto. Se quel server non fornisce quel modello, imposta `GRAPHITI_SEPARATE_EMBEDDING=true`: Graphiti usa allora `EMBEDDING_URL`, `EMBEDDING_KEY` e `EMBEDDING_MODEL`, i valori che PentAGI utilizza, e devono puntare a un server compatibile con OpenAI — vedi [Knowledge graph](https://pentagi.com/it/docs/concepts/memory/#knowledge-graph-optional) |
| Osservabilità                                      | Gli stack Langfuse e Grafana inclusi girano sul tuo host — vedi [Osservabilità](https://pentagi.com/it/docs/configuration/observability/)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| Controllo aggiornamenti                            | `UPDATE_CHECK_INTERVAL=0` lo disattiva; [Sicurezza](https://pentagi.com/it/docs/configuration/security/#update-check) elenca cosa invia                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Immagini                                           | Docker scarica le immagini della [sandbox](https://pentagi.com/it/docs/glossary/#sandbox) da Docker Hub con le proprie impostazioni; in una rete chiusa, punta il demone Docker a un mirror del registry                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |