Forge
markdowna5f71db5
1# 9. Нетекстовый контур: от принципа к внедрению
2
3> Эта глава читается в двух слоях: сначала как учебная рамка (зачем и какой принцип), затем как прикладной минимум для команды внедрения.
4
5## Зачем это нужно
6
7Текстовый контур мы уже стабилизировали: память, протокол суммаризации, стиль, перенос между чатами.
8Следующий шаг — нетекстовый вход (аудио/видео/события), где ошибка часто рождается не в «данных», а в потере **смысла**.
9
10Переход:
11- от «сырого сигнала»
12- к «структурированному смыслу»
13- к «действию с контролем неопределённости».
14
15## Принцип: эмоция не факт, а гипотеза
16
17В эмоциональном слое нет бинарной истины.
18Поэтому вместо `emotion = frustration` используем:
19- `возможно frustration`,
20- `вероятно support_request`,
21- оценку уверенности в интерпретации.
22
23Это и есть прикладная модальная рамка:
24- `◇P` — возможно `P`;
25- `□P` — необходимо `P` в текущей модели;
26- `Prob(P)` — вероятность;
27- `C(P)` — уверенность в оценке (не то же самое, что вероятность).
28
29## Прикладной минимум: канонический эпизод (JSON)
30
31```json
32{
33 "timestamp": "2026-02-27T22:30:00Z",
34 "actor": "user",
35 "signal": {
36 "channel": "audio",
37 "source_ref": "audio-20260227-223000.wav",
38 "noise_level": 0.18
39 },
40 "hypotheses": {
41 "intent": [
42 { "label": "support_request", "prob": 0.62, "confidence": 0.74 },
43 { "label": "task_command", "prob": 0.27, "confidence": 0.74 }
44 ],
45 "emotion": [
46 { "label": "irony", "prob": 0.55, "confidence": 0.68 },
47 { "label": "fatigue", "prob": 0.29, "confidence": 0.68 }
48 ]
49 },
50 "modal": {
51 "possible": ["irony", "fatigue", "playful_challenge"],
52 "necessary": [],
53 "context_constraints": [
54 "recent_humor_thread=true",
55 "shared_memory_anchor=true"
56 ]
57 },
58 "action": {
59 "chosen_strategy": "short_humor_plus_precision",
60 "risk_level": "low",
61 "reversibility": "high"
62 },
63 "outcome": {
64 "user_feedback": "positive",
65 "alignment_score": 0.88
66 },
67 "reusable_rule": "При неоднозначности и тёплом контексте сначала выбирай обратимую стратегию с низким риском."
68}
69```
70
71## Прикладной минимум: протокол принятия решения
72
731. Построить 2-4 гипотезы по намерению/эмоции.
742. Развести вероятность (`probability`) и уверенность (`confidence`).
753. Отфильтровать гипотезы контекстом (память, ближайшая история).
764. Выбрать минимально рискованное обратимое действие.
775. Проверить по ответу пользователя и обновить правило.
78
79Пороговая политика (по умолчанию):
80- `C >= 0.75` -> действовать по основной гипотезе;
81- `0.45 <= C < 0.75` -> минимальное действие + мягкая проверка;
82- `C < 0.45` -> сначала уточнение.
83
84## Прикладной минимум: стек MVP
85
861. Локальный ASR (`Whisper/faster-whisper/whisper.cpp`).
872. Нормализация сигнала (VAD/сегментация/шум).
883. Семантический парсер в JSON-эпизоды (см. схему выше).
894. Память эпизодов (поиском по меткам намерения, эмоции и контекста).
905. Контур валидации: совпадение выбранной стратегии с реальной обратной связью.
91
92## Прикладной минимум: критерии успеха
93
94- меньше уточняющих "фрикций" без потери точности;
95- выше точность попадания с первого ответа;
96- меньше уверенных, но неверных эмоциональных чтений;
97- переносимость стиля и качества между текстовым и нетекстовым каналом.
98
View only · write via MCP/CIDE