- Atomic генерація всіх секретів (generate-all-secrets.sh) - Auth enforcement перевірка (enforce-auth.sh) - Оновлений full flow test (must-pass) - Prometheus alerting rules для Memory Module - Matrix alerts bridge (алерти в ops room) - Policy engine документація для пам'яті Готово до production deployment!
145 lines
4.6 KiB
Markdown
145 lines
4.6 KiB
Markdown
# Policy Engine для Agent Memory
|
||
|
||
**Дата:** 2026-01-10
|
||
**Версія:** 1.0.0
|
||
|
||
---
|
||
|
||
## 🎯 Призначення
|
||
|
||
Policy Engine визначає **семантичні правила** для пам'яті агентів:
|
||
- Що запам'ятовувати в `long_term_memory_items`
|
||
- Хто має право писати "факт"
|
||
- Як підтверджується / видаляється пам'ять
|
||
- Retention policies
|
||
|
||
---
|
||
|
||
## 📋 Правила пам'яті
|
||
|
||
### 1. Що йде в Long-term Memory
|
||
|
||
**Запам'ятовується:**
|
||
- ✅ Факти про користувача (ім'я, преференції, обмеження)
|
||
- ✅ Факти про проєкт (назва, мета, технології)
|
||
- ✅ Встановлені правила та політики
|
||
- ✅ Підтверджені користувачем рішення
|
||
|
||
**НЕ запам'ятовується:**
|
||
- ❌ Тимчасові контексти (йдуть в short-term)
|
||
- ❌ Непідтверджені припущення
|
||
- ❌ Технічні деталі виконання (йдуть в logs)
|
||
- ❌ Чутливі дані без явного дозволу
|
||
|
||
### 2. Хто має право писати факт
|
||
|
||
**Джерела фактів:**
|
||
- `user_confirmed` — користувач явно підтвердив
|
||
- `agent_extracted` — агент витягнув з контексту (низька confidence)
|
||
- `system_rule` — системне правило (висока confidence)
|
||
|
||
**Права:**
|
||
- Тільки `agent_extracted` з `confidence > 0.7` → автоматично в long-term
|
||
- `confidence < 0.7` → потребує підтвердження користувача
|
||
- `is_sensitive=true` → завжди потребує підтвердження
|
||
|
||
### 3. Підтвердження / Видалення пам'яті
|
||
|
||
**Механізм feedback:**
|
||
- Користувач може: `confirm`, `reject`, `edit`, `delete`
|
||
- Після `confirm` → `confidence += 0.1`, `last_confirmed_at = now()`
|
||
- Після `reject` → `confidence -= 0.3`, можливе видалення
|
||
- Після `edit` → оновлення `fact_text`, `confidence = 0.8`
|
||
|
||
### 4. Retention Policies
|
||
|
||
**Типи:**
|
||
- `permanent_until_revoked` — залишається до явного видалення
|
||
- `ttl_7d` — автоматичне видалення через 7 днів
|
||
- `ttl_30d` — автоматичне видалення через 30 днів
|
||
- `confidence_based` — видаляється якщо `confidence < 0.3` протягом 30 днів
|
||
|
||
---
|
||
|
||
## 🔧 Реалізація
|
||
|
||
### Policy Rules (PostgreSQL)
|
||
|
||
```sql
|
||
CREATE TABLE memory_policy_rules (
|
||
rule_id UUID PRIMARY KEY,
|
||
org_id UUID NOT NULL,
|
||
category VARCHAR(100) NOT NULL,
|
||
condition JSONB NOT NULL, -- e.g., {"confidence": {"gte": 0.7}}
|
||
action VARCHAR(50) NOT NULL, -- e.g., "auto_confirm", "require_user_approval"
|
||
priority INTEGER DEFAULT 0,
|
||
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
|
||
);
|
||
```
|
||
|
||
### Policy Engine (Python)
|
||
|
||
```python
|
||
class MemoryPolicyEngine:
|
||
async def should_store_in_long_term(self, memory_item: dict) -> bool:
|
||
"""Перевірка, чи має пам'ять йти в long-term"""
|
||
# Перевірка правил
|
||
pass
|
||
|
||
async def requires_user_confirmation(self, memory_item: dict) -> bool:
|
||
"""Перевірка, чи потрібне підтвердження користувача"""
|
||
# Перевірка confidence, is_sensitive, etc.
|
||
pass
|
||
|
||
async def apply_retention_policy(self, memory_id: UUID):
|
||
"""Застосування retention policy"""
|
||
# Видалення за TTL або confidence
|
||
pass
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 Приклади правил
|
||
|
||
### Правило 1: Автоматичне підтвердження високої confidence
|
||
|
||
```json
|
||
{
|
||
"category": "preference",
|
||
"condition": {
|
||
"confidence": {"gte": 0.8},
|
||
"is_sensitive": false
|
||
},
|
||
"action": "auto_confirm"
|
||
}
|
||
```
|
||
|
||
### Правило 2: Вимагати підтвердження для чутливих даних
|
||
|
||
```json
|
||
{
|
||
"category": "*",
|
||
"condition": {
|
||
"is_sensitive": true
|
||
},
|
||
"action": "require_user_approval"
|
||
}
|
||
```
|
||
|
||
### Правило 3: Автоматичне видалення низької confidence
|
||
|
||
```json
|
||
{
|
||
"category": "*",
|
||
"condition": {
|
||
"confidence": {"lt": 0.3},
|
||
"last_confirmed_at": {"lt": "now() - 30 days"}
|
||
},
|
||
"action": "auto_delete"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
*Документ створено: 2026-01-10 19:30 CET*
|