🚀 Production-ready: Auth enforcement + Observability + Policy

- 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!
This commit is contained in:
Apple
2026-01-10 10:56:05 -08:00
parent 2bb19343f5
commit 70fd268a0d
6 changed files with 659 additions and 54 deletions

View File

@@ -0,0 +1,144 @@
# 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*