Agent 5 stanowi warstwę bezpieczeństwa i zgodności (Security
& Compliance Layer) w architekturze systemu wieloagentowego opartego na modelach językowych (LLM).
Jego zadaniem jest kontrola treści wejściowych oraz wyjściowych przy wykorzystaniu mechanizmu Pure Retrieval-Augmented Generation (Pure RAG).
Pełni funkcję logicznej zapory bezpieczeństwa (AI Firewall)
działającej w architekturze wieloagentowej.
System realizuje kontrolę:
- Danych wejściowych użytkownika (PRE-filter -- Gatekeeper)
- Danych wyjściowych modelu (POST-filter -- Audit)
- Zgodności z regulaminem przechowywanym w bazie wektorowej (Qdrant)
- Rejestrowania decyzji w bazie PostgreSQL - Audit log
Kluczowe założenie:
Wszystkie decyzje podejmowane są dynamicznie w oparciu o mechanizm Pure RAG.
Użytkownik
↓
/gatekeeper (PRE | Anonimizacja + RAG Policy Check)
↓
Model LLM / Agent
↓
/audit (POST | Kontrola zgodności odpowiedzi)
↓
Odpowiedź końcowa
| Warstwa | Technologia |
|---|---|
| API | FastAPI |
| Model językowy | Ollama (llama3) |
| Embedding | nomic-embed-text |
| Baza wektorowa | Qdrant |
| Logi systemowe | PostgreSQL |
| Integracja RAG | LangChain |
.
├── docker-compose.yml
├── app.py
├── ingest_security.py
├── requirements.txt
├── ui.py
├── resources/
│ ├── dokumenty PDF/DOCX/TXT/JSON
└── scripts/
- app.py -- główna logika Agenta 5
- resources/ -- dokumenty zawierające regulaminy i polityki bezpieczeństwa wykorzystywane jako baza wiedzy
- docker-compose.yml -- konfiguracja infrastruktury
- ingest_security.py -- proces wektorowania dokumentów
- ui.py -- interfejs testowy
- Python 3.10+\
- Docker\
- Ollama
docker-compose up -d;
./agents/agent5_security/scripts/start_ui.shpip install -r requirements.txtai-stack/agents/agent5_security/scripts/start_agent5.shAPI dostępne pod:
http://localhost:8015
Dokumentacja Swagger:
http://localhost:8015/docs
UI dostępne pod:
http://localhost:8005
Endpoint:
POST /ingest/files
Proces:
- Odczyt dokumentów z katalogu
resources/ - Podział na fragmenty (chunk_size = 1000, overlap = 100)
- Generowanie embeddingów
- Zapis do kolekcji
agent5_rulesw Qdrant Wektorowa baza wiedzy stanowi jedyne źródło zasad wykorzystywanych w procesie decyzyjnym.
Funkcjonalność:
- Anonimizacja danych wrażliwych (imiona, nazwiska, PESEL, adresy).
- Pobranie zasad z Qdrant
- Decyzja i klasyfikacja zapytania: SAFE / DANGER
W przypadku naruszenia zasad zwracana jest decyzja BLOCK.
Funkcjonalność:
- Analiza odpowiedzi wygenerowanej przez model
- Ocena zgodności z zasadami przechowywanymi w Qdrant
- W przypadku naruszenia zwracany komunikat:
<!-- -->
BLOKADA: [Powód]
Tabela PostgreSQL:
security_logs
Rejestrowane dane:
- timestamp
- endpoint
- input_text
- output_text
- decision (PASS / BLOCK)
Mechanizm zapewnia pełną audytowalność działania systemu.
- Brak reguł bezpieczeństwa o wysokim stopniu skomplikowania
- Dynamiczne pobieranie zasad z bazy wektorowej
- Separacja logiki aplikacyjnej od polityk
- Deterministyczne działanie modelu (temperature = 0)
- Możliwość aktualizacji zasad bez modyfikacji kodu
- Decyzje podejmowane wyłącznie na podstawie wiedzy pobranej z bazy wektorowej
Projekt przygotowany w celach badawczych i wdrożeniowych.
Autorzy:
- Rafał S
- Daniel T
- Jan S
- Jakub Ł