Naar inhoud springen
PentAGI
Implementatie

Lokale modellen

Draai PentAGI op modellen die vanaf je eigen hardware worden geserveerd, zodat prompts, tool-uitvoer en findings op je servers blijven.

PentAGI kan volledig draaien op modellen die je zelf host. De prompts van de agents, de tool-uitvoer die ze lezen en de findings die ze rapporteren blijven dan op jouw servers, en een lange flow kost GPU-tijd in plaats van tokens. Er worden twee soorten model-servers ondersteund: Ollama, het snelst om op te zetten, en vLLM of elke andere server met een OpenAI-compatibele API, voor een hogere doorvoer.

Ollama

Verwijs PentAGI naar de Ollama-server in .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

Het configuratiebestand wijst een model en zijn parameters toe aan elke agent type; zonder zo'n bestand stelt OLLAMA_SERVER_MODEL het standaardmodel in. De image bevat kant-en-klare configs in /opt/pentagi/conf/, waaronder ollama-qwen332b-fp16-tc.provider.yml en ollama-qwq32b-fp16-tc.provider.yml.

Ollama's standaard contextvenster is veel kleiner dan wat een flow nodig heeft: agents gebruiken doorgaans ongeveer 64K tokens, en PentAGI is ingesteld op 110K. Ollama stelt de contextgrootte alleen in wanneer het een model aanmaakt, dus bouw een variant vanuit een 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 en andere OpenAI-compatibele servers

vLLM, LocalAI en andere servers met een OpenAI-compatibele API maken verbinding als de custom provider:

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

De image bevat configs voor verschillende Qwen-builds op vLLM; de -no-think-varianten schakelen reasoning uit. Agents werken via tool calls, dus start de server met de tool-call parser en chat template die voor jouw model worden aanbevolen: met een verkeerde parser komen tool-call argumenten beschadigd terug en stopt een flow na een paar stappen.

Een model kiezen

  • Geef je sterkste model aan primary_agent, pentester en adviser in het configuratiebestand; lichtere modellen kunnen searcher, enricher en samenvattingen bedienen.
  • Schakel voor modellen onder 32B parameters execution monitoring and task planning in. Dit verdubbelt ruwweg de kwaliteit van de resultaten, ten koste van twee tot drie keer meer tokens en tijd.
  • Houd rekening met het geheugen: QwQ 32B in FP16 heeft bijvoorbeeld ongeveer 71 GB GPU-geheugen nodig.

Houd de rest van de stack lokaal

OnderdeelInstelling
EmbeddingsEMBEDDING_PROVIDER=ollama met een embedding-model in EMBEDDING_MODEL gebruikt dezelfde Ollama-server; een lokale OpenAI-compatibele server werkt met EMBEDDING_PROVIDER=openai, het adres in EMBEDDING_URL en een niet-lege EMBEDDING_KEY
Web searchSearch stuurt de queries van de agents naar internet. DuckDuckGo staat standaard aan; schakel het uit met DUCKDUCKGO_ENABLED=false en houd alleen de engines die je accepteert, zoals je eigen SearXNG
Knowledge graphStandaard uitgeschakeld. Wanneer ingeschakeld, roept Graphiti OpenAI aan, tenzij GRAPHITI_LLM_CLIENT_TYPE=custom het naar de server in LLM_SERVER_URL stuurt; Graphiti vraagt die server dan ook om embeddings met het model dat genoemd wordt in EMBEDDING_MODEL, of text-embedding-3-small wanneer dat leeg is. Als die server dat model niet aanbiedt, stel dan GRAPHITI_SEPARATE_EMBEDDING=true in: Graphiti neemt dan EMBEDDING_URL, EMBEDDING_KEY en EMBEDDING_MODEL, de waarden die PentAGI gebruikt, en deze moeten verwijzen naar een OpenAI-compatibele server — zie Knowledge graph
ObservabilityDe meegeleverde Langfuse- en Grafana-stacks draaien op jouw host — zie Observability
Update checkUPDATE_CHECK_INTERVAL=0 schakelt het uit; Security geeft weer wat het verzendt
ImagesDocker haalt de sandbox-images op van Docker Hub met zijn eigen instellingen; wijs in een gesloten netwerk de Docker-daemon naar een registry-mirror

Laatst bijgewerkt op