Aller au contenu
PentAGI
Déploiement

Modèles locaux

Exécutez PentAGI sur des modèles hébergés sur votre propre matériel, afin que les prompts, les sorties d'outils et les findings restent sur vos serveurs.

PentAGI peut fonctionner entièrement avec des modèles que vous hébergez vous-même. Les prompts des agents, la sortie des outils qu’ils lisent et les findings qu’ils rapportent restent alors sur vos serveurs, et un long flow coûte du temps GPU au lieu de tokens. Deux types de serveurs de modèles sont pris en charge : Ollama, le plus rapide à configurer, et vLLM ou tout autre serveur disposant d’une API compatible OpenAI, pour un débit plus élevé.

Ollama

Indiquez à PentAGI le serveur Ollama dans .env :

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

Le fichier de configuration attribue un modèle et ses paramètres à chaque agent type ; sans celui-ci, OLLAMA_SERVER_MODEL définit le modèle par défaut. L’image inclut des configurations prêtes à l’emploi dans /opt/pentagi/conf/, parmi lesquelles ollama-qwen332b-fp16-tc.provider.yml et ollama-qwq32b-fp16-tc.provider.yml.

La fenêtre de contexte par défaut d’Ollama est bien plus petite que ce dont un flow a besoin : les agents utilisent généralement environ 64K tokens, et PentAGI est configuré pour 110K. Ollama définit la taille du contexte uniquement lors de la création d’un modèle, donc construisez une variante à partir d’un Modelfile :

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
ollama create qwen3:32b-fp16-tc -f Modelfile

vLLM et autres serveurs compatibles OpenAI

vLLM, LocalAI et d’autres serveurs disposant d’une API compatible OpenAI se connectent en tant que provider personnalisé :

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’image inclut des configurations pour plusieurs builds Qwen sur vLLM ; les variantes -no-think désactivent le reasoning. Les agents fonctionnent via des tool calls, donc démarrez le serveur avec le parser de tool call et le template de chat recommandés pour votre modèle : avec un parser incorrect, les arguments des tool calls arrivent corrompus et un flow s’arrête après quelques étapes.

Choisir un modèle

  • Attribuez votre modèle le plus puissant à primary_agent, pentester et adviser dans le fichier de configuration ; des modèles plus légers peuvent servir searcher, enricher et la summarization.
  • Pour les modèles de moins de 32B paramètres, activez la surveillance de l’exécution et la planification des tasks. Cela double approximativement la qualité des résultats, au prix de deux à trois fois plus de tokens et de temps.
  • Prévoyez la mémoire : QwQ 32B en FP16, par exemple, nécessite environ 71 Go de mémoire GPU.

Garder le reste de la stack en local

PartieParamètre
EmbeddingsEMBEDDING_PROVIDER=ollama avec un modèle d’embedding dans EMBEDDING_MODEL utilise le même serveur Ollama ; un serveur local compatible OpenAI fonctionne avec EMBEDDING_PROVIDER=openai, son adresse dans EMBEDDING_URL et n’importe quel EMBEDDING_KEY non vide
Recherche webSearch envoie les requêtes des agents sur Internet. DuckDuckGo est activé par défaut ; désactivez-le avec DUCKDUCKGO_ENABLED=false et ne conservez que les engines que vous acceptez, telles que votre propre SearXNG
Knowledge graphDésactivé par défaut. Lorsqu’il est activé, Graphiti appelle OpenAI sauf si GRAPHITI_LLM_CLIENT_TYPE=custom l’envoie vers le serveur dans LLM_SERVER_URL, auquel cas il lui demande également des embeddings avec le modèle nommé dans EMBEDDING_MODEL, ou text-embedding-3-small lorsque celui-ci est vide. Si ce serveur ne propose pas ce modèle, définissez GRAPHITI_SEPARATE_EMBEDDING=true : Graphiti utilise alors EMBEDDING_URL, EMBEDDING_KEY et EMBEDDING_MODEL, les valeurs que PentAGI emploie, et elles doivent pointer vers un serveur compatible OpenAI — voir Knowledge graph
ObservabilitéLes stacks Langfuse et Grafana incluses s’exécutent sur votre hôte — voir Observability
Vérification des mises à jourUPDATE_CHECK_INTERVAL=0 la désactive ; Security liste ce qu’elle envoie
ImagesDocker récupère les images de sandbox depuis Docker Hub avec ses propres paramètres ; dans un réseau fermé, pointez le daemon Docker vers un mirror de registry

Dernière mise à jour le