Files
contracts/History/llm-analysis/opus-vision-es.md
T

76 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Opus 4.8 — Видение: LLM-driven Event Sourcing нового поколения
**Дата:** 2026-06-23
---
## Оценка текущей архитектуры
**Частично соответствует лучшим практикам ES. Нарушает две аксиомы:**
### 1. Событие должно быть фактом, а не интерпретацией
Классика: событие — «что произошло» (PriceChanged), объективный факт.
У нас: ADD/UPDATE/DELETE — интерпретация документа моделью, не факт.
Настоящий факт: «загружен допник №3 с таким текстом».
### 2. События должны быть детерминированы
Классика: реплей даёт то же состояние.
У нас: та же модель + тот же документ = могут быть другие ops (стохастичность LLM).
**Вывод:** прагматичный гибрид. Не «неправильно», но неклассически.
---
## Двухслойный лог (ключевая идея)
- **Слой 1 — сырые факты:** `DocumentIngested(text_hash, bytes, order)`. Детерминированные, реплеятся идеально.
- **Слой 2 — интерпретация:** `SpecChangeProposed` с метаданными (model_id, prompt_version, input_hash, raw_response, temperature).
- `spec_current` — проекция слоя 2.
Даёт: перепрогнать слой 1 новой моделью без потери истории.
---
## Неизведанные идеи
### 1. Версионная ре-интерпретация
Апгрейд модели → перепрогон всего потока → параллельная spec_current_v2 → сравнение дрейфа на истории. Версионирование *понимания* данных.
### 2. Provenance каждой строки
«Эта услуга пришла из допника №3, вот исходный абзац, reasoning LLM, confidence 0.82». UI «почему здесь эта цифра».
### 3. Human-correction как событие → flywheel
Правка юзера = `SpecChangeCorrected(by=user)` = regression-тест + размеченный пример. Бесплатный датасет качества.
### 4. «Prompt CI» — промпты как код с тестами
Из human-corrections → golden dataset. Изменение промпта → eval-харнесс. Регрессионные тесты для промптов.
### 5. Confidence-gating + self-consistency
N прогонов (или 2-3 модели) → консенсус. Согласные ops → авто. Расхождения → ручная проверка. Лечит нестохастичность.
### 6. Эмбеддинги вместо name_hash
Векторный матчинг сущностей внутри event-проекции. «Аренда стойко-места…» с разными тире → один вектор.
### 7. Temporal queries — «спецификация на дату»
UI-ползунок по времени: «как выглядел договор на 2025-03-01». Технически возможно уже сейчас.
### 8. Outbox/Saga + idempotency keys
Exactly-once через HTTP-границы Lucee↔Python↔LLM. Для надёжности при мульти-юзерах.
### 9. Constrained decoding (GBNF-грамматика)
Форсировать валидный JSON ops на уровне декодера LLM. Убирает ошибки парсинга.
---
## Приоритеты (от Opus)
| Приоритет | Идея | Зачем |
|---|---|---|
| 🔥 Высокий | Двухслойный лог | Чинит детерминизм, открывает всё |
| 🔥 Высокий | Provenance-метаданные | Аудит, доверие, миграция моделей |
| 🔥 Высокий | Human-correction как событие | Flywheel: бесплатный eval-датасет |
| ⭐ Средний | Эмбеддинги для матчинга | Решает name_hash надёжнее |
| ⭐ Средний | Temporal UI | Killer-фича почти даром |
| ⭐ Средний | Confidence-gating | Убирает тихие ошибки |
| 🧪 Исслед. | Версионная ре-интерпретация | Сравнение моделей на истории |