Files
microdao-daarion/infrastructure/memory-policy/memory-policy-engine.md
Apple 70fd268a0d 🚀 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!
2026-01-10 10:56:05 -08:00

4.6 KiB
Raw Blame History

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
  • Після confirmconfidence += 0.1, last_confirmed_at = now()
  • Після rejectconfidence -= 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)

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)

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

{
  "category": "preference",
  "condition": {
    "confidence": {"gte": 0.8},
    "is_sensitive": false
  },
  "action": "auto_confirm"
}

Правило 2: Вимагати підтвердження для чутливих даних

{
  "category": "*",
  "condition": {
    "is_sensitive": true
  },
  "action": "require_user_approval"
}

Правило 3: Автоматичне видалення низької confidence

{
  "category": "*",
  "condition": {
    "confidence": {"lt": 0.3},
    "last_confirmed_at": {"lt": "now() - 30 days"}
  },
  "action": "auto_delete"
}

Документ створено: 2026-01-10 19:30 CET