본문으로 건너뛰기
PentAGI
배포

로컬 모델

자체 하드웨어에서 서빙되는 모델로 PentAGI를 실행하여 프롬프트, tool output 및 finding이 서버 내에 유지되도록 합니다.

PentAGI는 사용자가 직접 호스팅하는 모델로 완전히 실행할 수 있습니다. 이때 agent의 prompt, agent가 읽는 tool 출력, 그리고 agent가 보고하는 finding은 모두 사용자의 서버에 남으며, 긴 flow는 토큰 비용 대신 GPU 시간을 소모합니다. 두 가지 유형의 model server가 지원됩니다: 설정이 가장 빠른 Ollama와, 더 높은 처리량을 위한 vLLM 또는 OpenAI 호환 API를 제공하는 기타 server입니다.

Ollama

.env에서 PentAGI를 Ollama server로 지정하세요:

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

구성 파일은 각 agent type에 모델과 해당 매개변수를 할당합니다. 구성 파일이 없으면 OLLAMA_SERVER_MODEL가 기본 모델을 설정합니다. 이미지에는 /opt/pentagi/conf/에 준비된 구성 파일이 포함되어 있으며, 그중 ollama-qwen332b-fp16-tc.provider.yml와 ollama-qwq32b-fp16-tc.provider.yml가 있습니다.

Ollama의 기본 context window는 flow에 필요한 크기보다 훨씬 작습니다. agent는 일반적으로 약 64K 토큰을 사용하며, PentAGI는 110K로 설정되어 있습니다. Ollama는 모델을 생성할 때만 context 크기를 설정하므로, 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 및 기타 OpenAI 호환 server

vLLM, LocalAI 및 기타 OpenAI 호환 API를 갖춘 server는 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

이미지에는 vLLM용 여러 Qwen 빌드에 대한 구성 파일이 포함되어 있으며, -no-think 변형 버전은 reasoning을 비활성화합니다. Agent는 tool call을 통해 작동하므로, 모델에 권장되는 tool-call parser와 chat template을 사용하여 server를 시작해야 합니다. 잘못된 parser를 사용하면 tool-call 인수가 손상되어 flow가 몇 단계 후에 중단됩니다.

모델 선택

  • 구성 파일에서 primary_agent, pentester 및 adviser에는 가장 강력한 모델을 할당하고, searcher, enricher 및 요약 작업에는 경량 모델을 사용할 수 있습니다.
  • 매개변수가 32B 미만인 모델의 경우 execution monitoring and task planning을 활성화하세요. 이는 토큰과 시간이 2~3배 더 소모되지만 결과 품질을 대략 두 배로 향상시킵니다.
  • 메모리를 계획하세요: 예를 들어 FP16의 QwQ 32B는 약 71GB의 GPU 메모리가 필요합니다.

나머지 스택을 로컬로 유지

부분설정
EmbeddingsEMBEDDING_MODEL의 embedding 모델을 사용하는 EMBEDDING_PROVIDER=ollama는 동일한 Ollama server를 사용합니다. 로컬 OpenAI 호환 server는 EMBEDDING_PROVIDER=openai, EMBEDDING_URL의 주소 및 비어 있지 않은 EMBEDDING_KEY와 함께 작동합니다
Web searchSearch는 agent의 쿼리를 인터넷으로 전송합니다. DuckDuckGo은 기본적으로 활성화되어 있으며, DUCKDUCKGO_ENABLED=false로 비활성화하고 자체 SearXNG와 같이 허용하는 engines만 유지하세요
Knowledge graph기본적으로 비활성화되어 있습니다. 활성화하면 Graphiti는 OpenAI를 호출하지만, GRAPHITI_LLM_CLIENT_TYPE=custom이면 LLM_SERVER_URL의 서버를 사용하고, 임베딩도 그 서버에 EMBEDDING_MODEL에 지정된 모델로 요청합니다(이 값이 비어 있으면 text-embedding-3-small). 해당 서버가 그 모델을 제공하지 않으면 GRAPHITI_SEPARATE_EMBEDDING=true로 설정하세요. 그러면 Graphiti는 PentAGI가 사용하는 EMBEDDING_URL, EMBEDDING_KEY, EMBEDDING_MODEL 값을 사용하므로, 이 값들은 OpenAI 호환 서버를 가리켜야 합니다 — Knowledge graph 참조
Observability번들된 Langfuse 및 Grafana 스택은 호스트에서 실행됩니다 — Observability 참조
Update checkUPDATE_CHECK_INTERVAL=0로 비활성화합니다; Security에는 전송되는 내용이 나열되어 있습니다
ImagesDocker는 자체 설정으로 Docker Hub에서 sandbox 이미지를 pull합니다. 폐쇄된 네트워크에서는 Docker daemon을 registry 미러로 지정하세요

최종 업데이트: