Przejdź do treści
PentAGI
Wdrożenie

Modele lokalne

Uruchamiaj PentAGI na modelach serwowanych z twojego własnego sprzętu, dzięki czemu prompty, wyniki narzędzi i findings pozostają na twoich serwerach.

PentAGI może działać w całości na modelach, które obsługujesz samodzielnie. Prompty agentów, dane wyjściowe narzędzi, które odczytują, oraz findings, które raportują, pozostają wtedy na Twoich serwerach, a długi flow kosztuje czas GPU zamiast tokenów. Obsługiwane są dwa rodzaje serwerów modeli: Ollama, najszybszy do skonfigurowania, oraz vLLM lub dowolny inny serwer z API kompatybilnym z OpenAI, zapewniający wyższą przepustowość.

Ollama

Wskaż PentAGI na serwer Ollama w .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

Plik konfiguracyjny przypisuje model i jego parametry do każdego agent type; bez niego OLLAMA_SERVER_MODEL ustawia domyślny model. Obraz zawiera gotowe konfiguracje w /opt/pentagi/conf/, wśród nich ollama-qwen332b-fp16-tc.provider.yml i ollama-qwq32b-fp16-tc.provider.yml.

Domyślne okno kontekstowe Ollamy jest znacznie mniejsze niż potrzebuje flow: agenci zazwyczaj używają około 64K tokenów, a PentAGI jest skonfigurowany na 110K. Ollama ustawia rozmiar kontekstu tylko podczas tworzenia modelu, więc zbuduj wariant z 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 i inne serwery kompatybilne z OpenAI

vLLM, LocalAI i inne serwery z API kompatybilnym z OpenAI łączą się jako 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

Obraz zawiera konfiguracje dla kilku buildów Qwen na vLLM; warianty -no-think wyłączają reasoning. Agenci pracują poprzez tool calls, więc uruchom serwer z parserem tool call i template chatu zalecanymi dla Twojego modelu: przy złym parserze argumenty tool call wracają uszkodzone i flow zatrzymuje się po kilku krokach.

Wybór modelu

  • Przekaż swój najmocniejszy model do primary_agent, pentester i adviser w pliku konfiguracyjnym; lżejsze mogą obsługiwać searcher, enricher i podsumowania.
  • Dla modeli poniżej 32B parametrów włącz monitorowanie wykonania i planowanie tasków. Zgrubnie podwajają one jakość wyników kosztem dwu- do trzykrotnie większej liczby tokenów i czasu.
  • Zaplanuj pamięć: QwQ 32B w FP16 potrzebuje na przykład około 71 GB pamięci GPU.

Pozostałą część stosu utrzymuj lokalnie

CzęśćUstawienie
EmbeddingsEMBEDDING_PROVIDER=ollama z modelem embeddingowym w EMBEDDING_MODEL używa tego samego serwera Ollama; lokalny serwer kompatybilny z OpenAI działa z EMBEDDING_PROVIDER=openai, jego adresem w EMBEDDING_URL i dowolnym niepustym EMBEDDING_KEY
Wyszukiwanie internetoweSearch wysyła zapytania agentów do internetu. DuckDuckGo jest domyślnie włączone; wyłącz je za pomocą DUCKDUCKGO_ENABLED=false i zachowaj tylko te engines, które akceptujesz, takie jak własny SearXNG
Knowledge graphDomyślnie wyłączone. Gdy jest włączone, Graphiti wywołuje OpenAI, chyba że GRAPHITI_LLM_CLIENT_TYPE=custom przekieruje je do serwera w LLM_SERVER_URL, którego następnie prosi również o embeddingi z modelem wskazanym w EMBEDDING_MODEL, lub text-embedding-3-small, gdy to pole jest puste. Jeśli ten serwer nie obsługuje tego modelu, ustaw GRAPHITI_SEPARATE_EMBEDDING=true: Graphiti wtedy pobiera EMBEDDING_URL, EMBEDDING_KEY i EMBEDDING_MODEL, wartości używane przez PentAGI, i muszą one wskazywać na serwer zgodny z OpenAI — zobacz Knowledge graph
ObserwowalnośćDołączone stosy Langfuse i Grafana działają na Twoim hoście — zobacz Observability
Sprawdzanie aktualizacjiUPDATE_CHECK_INTERVAL=0 wyłącza tę funkcję; Security wymienia, co jest wysyłane
ObrazyDocker pobiera obrazy sandbox z Docker Huba zgodnie z własnymi ustawieniami; w zamkniętej sieci wskaż demona Dockera na mirror rejestru

Ostatnia aktualizacja