[2026-05-16] psychologist-app: add dual-bot architecture + on-device MD knowledge base sections
This commit is contained in:
@@ -122,7 +122,107 @@ Apple требует дисклеймер: "Не является заменой
|
||||
|
||||
---
|
||||
|
||||
## 6. Технический стек
|
||||
## 6. Архитектура системы
|
||||
|
||||
### Двойной бот — core механизм
|
||||
|
||||
Ключевая идея: пользователь говорит от первого лица → AI склонен соглашаться (sycophancy).
|
||||
Решение: два независимых бота в pipeline, каждый не знает о пользователе напрямую.
|
||||
|
||||
```
|
||||
Пользователь (1-е лицо)
|
||||
↓
|
||||
┌─────────────────────────────┐
|
||||
│ БОТ 1 — Narrator (Haiku) │
|
||||
│ Системный промпт: │
|
||||
│ "Перескажи от 3-го лица, │
|
||||
│ нейтрально, только факты, │
|
||||
│ без оценок и сочувствия. │
|
||||
│ Называй человека │
|
||||
│ 'пользователь'." │
|
||||
└─────────────────────────────┘
|
||||
↓
|
||||
"Пользователь говорит что..."
|
||||
↓
|
||||
┌─────────────────────────────┐
|
||||
│ БОТ 2 — Analyst (Sonnet) │
|
||||
│ Системный промпт: │
|
||||
│ "Ты опытный психолог. │
|
||||
│ Перед тобой описание │
|
||||
│ незнакомого человека от │
|
||||
│ 3-го лица. Задай 1-2 │
|
||||
│ точных вопроса. Не давай │
|
||||
│ советов. Не валидируй." │
|
||||
│ │
|
||||
│ + читает profile.md │
|
||||
│ + детектирует SI/SH │
|
||||
└─────────────────────────────┘
|
||||
↓
|
||||
Вопрос пользователю ИЛИ 🚨 Crisis flow
|
||||
```
|
||||
|
||||
**Почему это работает:**
|
||||
- Бот 2 анализирует _описание незнакомца_, а не собеседника — убирает emotional bias
|
||||
- Снижение sycophancy ~13.6% доказано научно (arXiv 2508.02087, 3rd vs 1st person)
|
||||
- Бот 1 дешёвый (Haiku), Бот 2 качественный (Sonnet) — оптимально по cost/quality
|
||||
|
||||
**Кризисный детектор** встроен в Бот 2:
|
||||
- Hardcoded детекция ключевых слов на RU + EN (не через LLM — надёжнее и быстрее)
|
||||
- При срабатывании: немедленно прерывает диалог, показывает CrisisView с горячими линиями
|
||||
- Уровни: `warning` (косвенные упоминания) / `critical` (прямые угрозы) — разный флоу
|
||||
|
||||
---
|
||||
|
||||
### On-device база знаний (Obsidian-like)
|
||||
|
||||
Вместо облачной БД — markdown файлы на устройстве пользователя с тегами и ссылками.
|
||||
|
||||
```
|
||||
Documents/UserProfile/
|
||||
├── profile.md ← живой профиль: паттерны, наблюдения, прогресс
|
||||
├── insights.md ← кристаллизованные инсайты (обновляется редко)
|
||||
├── sessions/
|
||||
│ ├── 2026-05-16.md ← каждая сессия: вопросы, ответы, наблюдение
|
||||
│ ├── 2026-05-20.md
|
||||
│ └── ...
|
||||
└── topics/
|
||||
├── sleep.md ← паттерн сна [[связано с sessions/2026-05-16]]
|
||||
├── work.md
|
||||
└── relationships.md
|
||||
```
|
||||
|
||||
**profile.md** (пример):
|
||||
```markdown
|
||||
# Профиль пользователя
|
||||
|
||||
#паттерн Откладывает сложные разговоры → избегание через работу
|
||||
#паттерн Энергия падает к 16:00 если не было физической активности
|
||||
#прогресс Трезвость — 47 дней ✓
|
||||
#прогресс Спортзал — 3 раза на прошлой неделе ✓
|
||||
|
||||
## Текущие темы
|
||||
- [[topics/sleep]] — замкнутый цикл сна, прорабатываем
|
||||
- [[topics/work]] — граница рабочего и личного времени
|
||||
|
||||
## Наблюдение агента (2026-05-16)
|
||||
Пользователь описывает продуктивность через количество задач, но...
|
||||
```
|
||||
|
||||
**Как это работает в pipeline:**
|
||||
1. Начало сессии: Бот 2 читает `profile.md` + последние 2-3 сессии
|
||||
2. Конец сессии: Бот 2 пишет краткое summary в `sessions/YYYY-MM-DD.md`
|
||||
3. Значимый инсайт: обновляет `profile.md` (дописывает наблюдение)
|
||||
4. Пользователь видит свою базу знаний в приложении (ProfileView)
|
||||
|
||||
**Преимущества перед облачной БД:**
|
||||
- Полный контроль данных у пользователя (privacy-first)
|
||||
- Работает офлайн
|
||||
- Пользователь может экспортировать/читать свои данные
|
||||
- Ссылки между файлами = граф паттернов (Obsidian-логика)
|
||||
|
||||
---
|
||||
|
||||
## 7. Технический стек
|
||||
|
||||
### Мобильное приложение
|
||||
**Skip.tools** — SwiftUI компилируется в нативный Jetpack Compose для Android.
|
||||
|
||||
Reference in New Issue
Block a user