Memory 및 지식
PentAGI가 flow 전반에서 명령, 결과 및 관계를 기억하는 방법입니다.
PentAGI는 agentsagent — 에이전트PentAGI의 AI 에이전트: 고유한 프롬프트, 설정 및 도구를 갖추고 모의해킹, 코드 작성 또는 웹 검색과 같은 특정 작업을 수행하는 모델입니다.가 처음부터 다시 시작하지 않고 이전 작업을 기반으로 구축할 수 있도록 세 가지 종류의 memorymemory — 메모리에이전트가 처음부터 다시 시작하지 않고 이전 작업을 기반으로 구축할 수 있도록 유지하는 정보로, 장기 메모리, 작업 메모리 및 일화적 메모리가 포함됩니다.를 유지합니다.
| Memory | 저장 위치 | 보관 내용 |
|---|---|---|
| 장기 | pgvector가 포함된 PostgreSQL | 결과, 성공적인 접근 방식 및 tooltool — 도구에이전트가 작업에 사용하는 수단입니다. 터미널, 격리된 브라우저, 웹 검색 같은 내장 기능이나 nmap, metasploit, sqlmap 같은 샌드박스 안의 프로그램입니다. 지식의 임베딩 |
| 워킹 | Flowflow — 플로우PentAGI의 한 번 실행: 목표, 사용자의 메시지에서 생성된 작업, 그리고 에이전트들이 수행한 모든 활동을 포함합니다. 컨텍스트 | 현재 목표, tasktask — 작업플로우 내의 하나의 요청: 첫 번째 메시지이거나 에이전트의 질문에 답하지 않는 이후의 메시지입니다. PentAGI는 각 작업을 하위 작업으로 분할합니다. 상태 및 사용 가능한 리소스 |
| 에피소딕 | 명령 히스토리 | 과거 행동, 그 결과 및 효과가 있었던 패턴 |
모든 명령과 해당 출력은 PostgreSQL에 저장됩니다. Agents는 행동하기 전에 유사한 사례를 찾기 위해 vector storevector store — 벡터 스토어에이전트가 의미 기반으로 메모리와 문서를 검색할 수 있도록 하는 임베딩 데이터베이스입니다.를 쿼리하고 findingsfinding — 발견 사항호스트, 실행 중인 서비스 또는 취약점 등 테스트 중에 발견되어 기록된 항목입니다.를 다시 기록하며, memorist 및 searcher agents가 이 조회 작업의 대부분을 수행합니다.
Knowledge graph(선택 사항)
knowledge graphknowledge graph — 지식 그래프이 선택적 기능이 활성화되면 PentAGI가 테스트 중에 구축하는 호스트, 서비스, 취약점 및 이들 간의 접근 관계를 나타내는 그래프입니다. 발견 사항들이 어떻게 연결되는지 보여줍니다. 스택을 활성화하면 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_passwordgit 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 -dGraphiti는 자체 모델을 실행합니다: GRAPHITI_이 프리셋 — openai, gemini, litellm 또는 custom — 을 선택하며, 해당 모델들은 ./에 설정되고 일치하는 키는 .env(openai의 경우 OPEN_)에서 가져옵니다. 2.2.0 이전 버전의 .env에는 이러한 줄과 GRAPHITI_ 규칙이 없으므로 현재 .env.example에서 복사하십시오.
Graphiti는 베타 통합 기능이며 기본적으로 비활성화되어 있습니다. 리콜 범위는 활성 flow로 한정되며, 번들된 Graphiti API에는 인증 기능이 없으므로 Neo4j와 함께 프라이빗 네트워크에 배치해야 합니다. 추출 및 임베딩 비용은 flow 자체 모델과 별도로 청구됩니다.
PentAGI는 시작할 때만 몇 초 동안 Graphiti를 확인합니다. 그때까지 Graphiti가 준비되지 않으면 PentAGI는 경고를 로그에 남기고 다음 재시작 때까지 knowledge graph 없이 실행되므로, Graphiti가 정상 상태라고 보고하면 docker restart pentagi을 실행하십시오.
최종 업데이트: