본문으로 건너뛰기
PentAGI
개념

Memory 및 지식

PentAGI가 flow 전반에서 명령, 결과 및 관계를 기억하는 방법입니다.

PentAGI는 agents가 처음부터 다시 시작하지 않고 이전 작업을 기반으로 구축할 수 있도록 세 가지 종류의 memory를 유지합니다.

Memory저장 위치보관 내용
장기pgvector가 포함된 PostgreSQL결과, 성공적인 접근 방식 및 tool 지식의 임베딩
워킹Flow 컨텍스트현재 목표, task 상태 및 사용 가능한 리소스
에피소딕명령 히스토리과거 행동, 그 결과 및 효과가 있었던 패턴

모든 명령과 해당 출력은 PostgreSQL에 저장됩니다. Agents는 행동하기 전에 유사한 사례를 찾기 위해 vector store를 쿼리하고 findings를 다시 기록하며, memorist 및 searcher agents가 이 조회 작업의 대부분을 수행합니다.

Knowledge graph(선택 사항)

knowledge graph 스택을 활성화하면 PentAGI는 agent 응답 및 tool 실행을 Neo4j 위의 Graphiti로 전송합니다. .env template의 수집 규칙에 따라 terminal 및 file 작업에서 엔티티와 관계(호스트, 서비스, 취약점, 기법 및 시간이 지남에 따라 이들이 어떻게 연관되는지)를 추출하고, 다른 이벤트는 추출 없이 검색 가능한 상태로 유지합니다.

GRAPHITI_ENABLED=true
GRAPHITI_URL=http://graphiti:8000
GRAPHITI_CONFIG_DIR=llm_configs
GRAPHITI_LLM_CLIENT_TYPE=openai
NEO4J_URI=bolt://neo4j:7687
NEO4J_PASSWORD=replace_with_a_strong_password
git clone --depth 1 https://github.com/vxcontrol/pentagi.git pentagi-src
cp -r pentagi-src/examples/graphiti ./graphiti
cp -r pentagi-src/examples/neo4j ./neo4j
rm -rf pentagi-src
curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/main/docker-compose-graphiti.yml
docker compose -f docker-compose.yml -f docker-compose-graphiti.yml up -d

Graphiti는 자체 모델을 실행합니다: GRAPHITI_LLM_CLIENT_TYPE이 프리셋 — openai, gemini, litellm 또는 custom — 을 선택하며, 해당 모델들은 ./graphiti/<preset>.yaml에 설정되고 일치하는 키는 .env(openai의 경우 OPEN_AI_KEY)에서 가져옵니다. 2.2.0 이전 버전의 .env에는 이러한 줄과 GRAPHITI_INGEST_* 규칙이 없으므로 현재 .env.example에서 복사하십시오.

Graphiti는 베타 통합 기능이며 기본적으로 비활성화되어 있습니다. 리콜 범위는 활성 flow로 한정되며, 번들된 Graphiti API에는 인증 기능이 없으므로 Neo4j와 함께 프라이빗 네트워크에 배치해야 합니다. 추출 및 임베딩 비용은 flow 자체 모델과 별도로 청구됩니다.

PentAGI는 시작할 때만 몇 초 동안 Graphiti를 확인합니다. 그때까지 Graphiti가 준비되지 않으면 PentAGI는 경고를 로그에 남기고 다음 재시작 때까지 knowledge graph 없이 실행되므로, Graphiti가 정상 상태라고 보고하면 docker restart pentagi을 실행하십시오.

최종 업데이트: