# ТЗ: Агент "Детский помощник"

> **Заказчик:** Слава  
> **Дата:** 2026-04-12  
> **Исполнитель:** Dev-агент (subagent)

---

## 1. Концепция

**Что делает агент:** персональный помощник для родителей по вопросам ребёнка — одежда, обувь, игрушки, обучение, события.

**Отличие от основного ассистента (Стрим):**
- Узкая специализация — только детская тематика
- Изолированная память — данные не шарится с другими агентами
- Дружелюбный, тёплый тон — обращается к родителю, помнит детали ребёнка
- Отдельный Telegram-бот (не путать с основным `@ha542_bot`)

**Имя агента:** Детский (внутр. идентификатор: `kids`)

---

## 2. Функциональность

### 2.1 Профиль ребёнка — что помнить

Поля (все в `memory/kids/PROFILE.md`):

| Поле | Пример | Описание |
|------|--------|----------|
| `имя` | Миша | Имя ребёнка |
| `дата_рождения` | 2019-03-15 | Для расчёта возраста |
| `рост` | 115 см | Текущий рост |
| `вес` | 19 кг | Текущий вес |
| `размер_одежды` | 116 / 5 лет | Размер + возрастной |
| `размер_обуви` | 31 EU | Размер обуви |
| `размер_головы` | 52 см | Для шапок/шлемов |
| `sezonnost` | весна/осень | Сезон преобладания |
| `аллергии` | — | Список или пусто |
| `предпочтения_одежда` | любит синий, не любит застёжки | Вкусы |
| `предпочтения_еда` | любит макароны | Для организации меню |
| `интересы` | роботы, Lego, животные | Для подбора игрушек |
| `уровень_развития` | читает, считает до 20 | Для подбора обучения |
| `偏好` | мягкие игрушки | Для рекомендаций |

Агент автоматически пересчитывает возраст и рекомендует обновлять размеры каждые 6 мес.

### 2.2 Помощь с выбором

**Одежда/обувь:**
- Вопрос: "Что купить на зиму для Миши?" → агент смотрит размеры, сезон, предпочтения → рекомендует конкретные позиции
- Учитывает: текущий размер, погодные условия (если есть интеграция с погодой), бюджет (если задан)
- Может сохранять "список на вырост" — что купить когда подрастёт

**Игрушки:**
- Вопрос: "Что подарить на день рождения?" → рекомендации по возрасту + интересы
- Может искать в интернете (через yandex-search / brave-search), но спрашивает разрешения

**Обучение:**
- Вопрос: "Чем занять 6-летку?" → рекомендации по развитию
- Книги, приложения, игры — по интересам и возрасту

### 2.3 События и напоминания

Календарь событий в `memory/kids/CALENDAR.md`:

| Событие | Пример |
|---------|--------|
| День рождения (ребёнок) | 2019-03-15 |
| День рождения (друзья) | даты друзей |
| Школьные мероприятия | утренники, экскурсии |
| Медицинские | медосмотр, прививки |
| Сезонная смена гардероба | конец августа — лёгкая → тёплая |

Агент:
- Подсказывает что купить к событию (за 2 недели, за 1 неделю)
- Напоминает о днях рождения (за неделю)
- Напоминает о смене сезона — "пора проверить зимнюю одежду"

### 2.4 Telegram-бот

**Отдельный бот** — нужен новый BotFather бот (`@kids_helper_bot` или аналог).

Команды:
- `/start` — приветствие + краткая инструкция
- `/profile` — показать профиль ребёнка
- `/edit профиль` — редактировать поля
- `/add событие` — добавить событие в календарь
- `/календарь` — список ближайших событий
- `/ напоминание` — напомнить о...
- `/размер` — показать текущие размеры
- `/чтокупить` — помощь с выбором

---

## 3. Изоляция данных

### 3.1 Изоляция от других агентов

- **Runtime:** отдельный `runtime=subagent`, свой workspace
- **Workspace:** `~/.openclaw/workspace-kids/` — изолирован от основного `workspace`
- **MEMORY.md:** свой, не общий. Структура аналогичная, но в `workspace-kids/memory/`
- **Telegram-бот:** отдельный бот, отдельный chat_id
- **Секреты:** BotToken отдельный, в `.env` как `KIDS_BOT_TOKEN`

### 3.2 Структура workspace-kids

```
~/.openclaw/workspace-kids/
├── SOUL.md           # Персонаж: тёплый, заботливый, чуть-чуть игривый
├── PROFILE.md        # Основной профиль ребёнка (TODAY.md style)
├── PROFILE.md        # Основной профиль ребёнка (TODAY.md style)
├── PROFILE.md        # Основной профиль ребёнка (TODAY.md style)
├── memory/
│   ├── YYYY-MM-DD.md  # Ежедневные записи
│   └── CALENDAR.md    # Календарь событий
├── SOUL.md           # Персонаж ассистента
├── AGENTS.md         # Правила (с минимумом — специфика)
└── TOOLS.md          # Локальные заметки
```

### 3.3 no shared context

- Агент не читает `/home/node/.openclaw/workspace/MEMORY.md` (основной ассистент)
- Основной ассистент не читает `workspace-kids/`
- Единственное исключение: общий `MEMORY.md` агента kids — в его собственном workspace

---

## 4. Архитектура

### 4.1 Компоненты

1. **Telegram-бот** — интерфейс (Python, python-telegram-bot)
2. **Агент** — subagent с моделью и workspace-kids
3. **Память** — файловая, в workspace-kids (аналогично Стрим)
4. **Календарь событий** — markdown-файл + триггер напоминаний

### 4.2 Telegram-бот — схема работы

```
Слава (Telegram) → @kids_helper_bot
  → webhook → OpenClaw (kids session, runtime=subagent)
    → агент обрабатывает
    → ответ в тот же чат
```

### 4.3 Напоминания

- Через HEARTBEAT.md в workspace-kids
- Агент проверяет календарь каждый день (утро UTC+3)
- Напоминания отправляет через Telegram-бот

---

## 5. Стек и модель

| Параметр | Значение |
|----------|----------|
| Runtime | `subagent` |
| Модель | `openrouter/minimax/minimax-m2.7` (дефолт для kids-специфичных задач, если нужна мощная модель — `nekocode/gpt-5.4` или `anthropic/claude-sonnet-4-6`) |
| Telegram-бот | Python + python-telegram-bot (polling или webhook) |
| Изоляция | отдельный workspace, отдельный бот, отдельный .env ключ |

---

## 6. План реализации (этапы)

### Этап 1: Инфраструктура
- [ ] Создать workspace `~/.openclaw/workspace-kids/`
- [ ] Создать базовые файлы: SOUL.md, PROFILE.md (пустой шаблон), AGENTS.md, TOOLS.md, memory/
- [ ] Добавить BotToken в `.env` (`KIDS_BOT_TOKEN`)
- [ ] Зарегистрировать бота в OpenClaw (accounts.yaml или конфиг)
- [ ] Проверить что бот отвечает на `/start`

### Этап 2: Память и профиль
- [ ] Шаблон PROFILE.md с инструкцией по заполнению
- [ ] CALENDAR.md — шаблон
- [ ] Инструкция в AGENTS.md: как обновлять профиль
- [ ] Тест: добавить данные → агент их запоминает

### Этап 3: Функциональность
- [ ] Обработка команд `/profile`, `/календарь`, `/размер`
- [ ] Помощь с выбором — базовая логика (без интернета)
- [ ] Поиск в интернете — через yandex-search (с запросом)
- [ ] Напоминания о событиях — через cron heartbeat

### Этап 4: Полировка
- [ ] Первое сообщение приветствия — "расскажи о ребёнке"
- [ ] Проверка: агент помнит данные между сессиями
- [ ] Документация: как добавлять/обновлять данные

---

## 7. Out of scope (НЕ делать)

- Интеграция с детскими учреждениями (сады, школы)
- Медицинские данные (кроме аллергий)
- Отслеживание развития (графики роста и т.д.)
- Покупки через интеграции (Ozon API и т.д.)
- Шеринг данных с основным ассистентом

---

## 8. Критерии приёмки

1. Бот отвечает на `/start` — приветственное сообщение
2. `/profile` — показывает профиль ребёнка (пустой или заполненный)
3. Агент запоминает факт ("рост 115 см") и через сессию возвращает его
4. `/календарь` — показывает ближайшие события
5. Напоминание приходит вовремя (за неделю до дня рождения)
6. Изоляция: kids workspace не виден из основного workspace
7. Отдельный Telegram-бот (не `@ha542_bot`)

---

## 9. Сообщения агента — стиль

Агент обращается к родителю на "ты", тепло и дружелюбно:

✅ "Отлично! Записала, что Мише нужен 31-й размер обуви 👍"  
✅ "О! Синий — его любимый цвет, учту. Что-то конкретное ищешь, или просто обзор?"  
✅ "Нашёл несколько отличных Lego-наборов для 6 лет. Показать?"  

❌ "Данные обновлены."  
❌ "Рекомендация сформирована."  
❌ "Информация сохранена в профиле."

---

## 10. Имя агента — для SOUL.md

**Имя:** Помощник 🌈  
**Персонаж:** Тёплый, чуть-чуть сказочный. Как заботливая тётя/старшая сестра. Помнит все детали, напоминает вовремя, помогает выбрать лучшее.  
**Тон:** дружелюбный, с эмодзи, но без крика.  
**Эмодзи по умолчанию:** 🌈
