# Modelos locales

> Ejecuta PentAGI en modelos servidos desde tu propio hardware, para que los prompts, la salida de las herramientas y los findings se queden en tus servidores.

PentAGI puede ejecutarse completamente con modelos que sirvas tú mismo. Los prompts de los [agents](https://pentagi.com/es/docs/glossary/#agent), la salida de las [tools](https://pentagi.com/es/docs/glossary/#tool) que leen y los [findings](https://pentagi.com/es/docs/glossary/#finding) que reportan permanecen entonces en tus servidores, y un [flow](https://pentagi.com/es/docs/glossary/#flow) largo consume tiempo de GPU en lugar de tokens. Se admiten dos tipos de servidores de modelos: Ollama, el más rápido de configurar, y vLLM o cualquier otro servidor con una API compatible con OpenAI, para un mayor rendimiento.

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

Apunta PentAGI al servidor de Ollama en `.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
```

El archivo de configuración asigna un modelo y sus parámetros a cada [agent type](https://pentagi.com/es/docs/glossary/#agent-type); sin uno, `OLLAMA_SERVER_MODEL` establece el modelo predeterminado. La imagen incluye configuraciones listas en `/opt/pentagi/conf/`, entre ellas `ollama-qwen332b-fp16-tc.provider.yml` y `ollama-qwq32b-fp16-tc.provider.yml`.

La ventana de contexto predeterminada de Ollama es mucho más pequeña de lo que necesita un flow: los agents suelen usar alrededor de 64K tokens, y PentAGI está configurado para 110K. Ollama establece el tamaño del contexto solo cuando crea un modelo, así que construye una variante desde 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 y otros servidores compatibles con OpenAI](https://pentagi.com/es/docs/deployment/local-models/#vllm-and-other-openai-compatible-servers)

vLLM, LocalAI y otros servidores con una API compatible con OpenAI se conectan como el [proveedor personalizado](https://pentagi.com/es/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
```

La imagen incluye configuraciones para varias compilaciones de Qwen en vLLM; las variantes `-no-think` desactivan el reasoning. Los agents trabajan mediante [tool calls](https://pentagi.com/es/docs/glossary/#tool-call), así que inicia el servidor con el parser de tool calls y la [template](https://pentagi.com/es/docs/glossary/#template) de chat recomendadas para tu modelo: con un parser incorrecto, los argumentos de los tool calls vuelven rotos y un flow se detiene tras unos pocos pasos.

## [Elegir un modelo](https://pentagi.com/es/docs/deployment/local-models/#choosing-a-model)

* Asigna tu modelo más potente a `primary_agent`, `pentester` y `adviser` en el archivo de configuración; los más ligeros pueden servir para `searcher`, `enricher` y los resúmenes.
* Para modelos de menos de 32B de parámetros, activa [el monitoreo de ejecución y la planificación de tasks](https://pentagi.com/es/docs/concepts/agents/#safeguards). Esto duplica aproximadamente la calidad de los resultados a costa de consumir dos o tres veces más tokens y tiempo.
* Planifica la memoria: QwQ 32B en FP16, por ejemplo, necesita unos 71 GB de memoria de GPU.

## [Mantén el resto de la pila en local](https://pentagi.com/es/docs/deployment/local-models/#keep-the-rest-of-the-stack-local)

| Parte                                              | Configuración                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Embeddings                                         | `EMBEDDING_PROVIDER=ollama` con un modelo de embedding en `EMBEDDING_MODEL` usa el mismo servidor de Ollama; un servidor local compatible con OpenAI funciona con `EMBEDDING_PROVIDER=openai`, su dirección en `EMBEDDING_URL` y cualquier `EMBEDDING_KEY` no vacío                                                                                                                                                                                                                                                                                                                                                               |
| Búsqueda web                                       | Search envía las consultas de los agents a internet. DuckDuckGo está activado por defecto; desactívalo con `DUCKDUCKGO_ENABLED=false` y mantén solo los [motores](https://pentagi.com/es/docs/configuration/search-engines/) que aceptes, como tu propio SearXNG                                                                                                                                                                                                                                                                                                                                                                                        |
| [Knowledge graph](https://pentagi.com/es/docs/glossary/#knowledge-graph) | Desactivado por defecto. Cuando está activado, Graphiti llama a OpenAI a menos que `GRAPHITI_LLM_CLIENT_TYPE=custom` lo envíe al servidor en `LLM_SERVER_URL`, al que luego solicita también embeddings con el modelo nombrado en `EMBEDDING_MODEL`, o `text-embedding-3-small` cuando esté vacío. Si ese servidor no sirve ese modelo, configura `GRAPHITI_SEPARATE_EMBEDDING=true`: Graphiti toma entonces `EMBEDDING_URL`, `EMBEDDING_KEY` y `EMBEDDING_MODEL`, los valores que usa PentAGI, y deben apuntar a un servidor compatible con OpenAI — consulta [Knowledge graph](https://pentagi.com/es/docs/concepts/memory/#knowledge-graph-optional) |
| Observabilidad                                     | Las pilas incluidas de Langfuse y Grafana se ejecutan en tu host — consulta [Observability](https://pentagi.com/es/docs/configuration/observability/)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| Comprobación de actualizaciones                    | `UPDATE_CHECK_INTERVAL=0` la desactiva; [Security](https://pentagi.com/es/docs/configuration/security/#update-check) enumera lo que envía                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| Imágenes                                           | Docker extrae las imágenes del [sandbox](https://pentagi.com/es/docs/glossary/#sandbox) desde Docker Hub con su propia configuración; en una red cerrada, apunta el demonio de Docker a un espejo de registro                                                                                                                                                                                                                                                                                                                                                                                                                                           |