Roadmap (L4)
Стратегия: делаем универсальное ядро сейчас, сложные места включаем как опциональные и выносим в следующие фазы. Контракты v0 не ломаем — только добавляем опциональные поля.
P0 — Core (ship now)
- Ingest: ExperienceEvent.v0 (append-only, idempotent upsert)
- Privacy enforce: redact/block на ingest; block скрывает текст на read
- Summarize: extractive или простая гибридная; свежесть p95 < 2s
- Index: hybrid (vector + sparse + filters); базовые фильтры (recency, entities, channel)
- Retrieval: p95 < 8 ms; деградации (lower top_k → simplify scoring → minimal)
- Budgets: budgets.experience_top_k; время — из общего time_ms
- KV: pin > compress > evict (простые правила)
- Observability: request_id, final_top_k, latency p50/p95; leak_rate=0 на синтетике
- Docs: README, contracts, pipeline, retrieval, privacy, metrics, examples
Критерии приёмки (P0)
- Online: p95 < 8 ms на 95-й перцентиль запросов с top_k ≤ 10
- Privacy: leak_rate = 0; redact применяется при mode=redact
- Quality: Recall@5 не хуже baseline vector-only ±2%
- Freshness: summarize lag p95 < 2s
P1 — Universal+ (next)
- Optional поля Event/Unit: source_app, session_id, project_id/tenant_id, tool_name, locale (repo/branch — опционально)
- budgets.experience_time_ms (если доля L4 > 40% общего времени)
- Alias: GET /experience/search (debug-only, аутентифицированный)
- Scoring: калибровка весов (grid search), entity_boost и recency_boost
- KV tuning: правила pin на основе CTR/top10%, compress long-tail, evict по quality<0.3 + давность >90д
- L1 linkage: обязательная линковка сущностей в summarize (офлайн), онлайн — только признаки
Критерии приёмки (P1)
- Recall@5 +≥5% vs P0 при Δp95 < 1 ms
- Coverage_entities +≥10%
- Доля L4 во времени ≤40% или появился experience_time_ms
P2 — Advanced (later)
- Abstractive summarize c контролем токенов и валидацией фактов
- Обученные веса скоринга/learning-to-rank
- Расширенные политики ретеншна (tiered storage, adaptive eviction)
- Глубокая интеграция с графом L1 (graph-enriched rerank)
- Стоимость: cost_ms/cost_tokens поля, биллинг/квоты
Риски/Сложности (можно отложить)
- Abstractive + fact-check — риск утечки/галлюцинаций → P2
- LTR и сложные rerank — требует корпуса и MLOps → P2
- Полные графовые обходы онлайн — дорого по p95 → только как enricher позже
- Multi-tenant ограничения на индекс → по мере реальной нагрузки
Изменения контрактов (без ломающей семантики)
- v0 остаётся; новые поля — опциональные, задокументированы в contracts-registry.md (P1)
Миграции/откат
- Git‑native версии схем; флаги включения P1/P2 по конфигу