12 KiB
12 KiB
ТЗ: OpenClaw-агент «Байтик» 🤖
Детский ИИ-помощник для Егора (8 лет, ДР 17.04.2018) Проект:
proj_bytik| Дата создания: 2026-04-14 | Обновлено: 2026-04-14 (v2 — OpenClaw-агент)
1. Цель
OpenClaw-агент «Байтик» — персональный детский ИИ-помощник в Telegram для Егора.
Что делает:
- Отвечает на вопросы ребёнка простым языком (машины, самолёты, корабли, животные, география, математика, IT)
- Утренняя рассылка 1-2 раза в день — интересный энциклопедический факт (7:30 MSK)
- Поздравляет с праздниками и ДР
- Строгая детская цензура 0+
- Ведёт собственную память — помнит что спрашивал Егор, что обсуждали, что рассказывали
Архитектура:
- Отдельный Telegram-бот (свой токен) → отдельный OpenClaw-агент
bytik→ отдельный workspace с памятью
2. OpenClaw-архитектура
2.1 Агент в openclaw.json
{
"id": "bytik",
"name": "Байтик",
"workspace": "/home/node/.openclaw/workspace-bytik",
"model": {
"primary": "openrouter/qwen/qwen3.6-plus"
},
"tools": {
"allow": [
"read",
"write",
"edit",
"exec",
"web_search",
"web_fetch",
"session_status",
"memory_search",
"memory_get",
"image"
]
}
}
2.2 Workspace: ~/.openclaw/workspace-bytik/
workspace-bytik/
├── AGENTS.md # Инструкции агента Байтика
├── SOUL.md # Личность, стиль, тон, границы
├── IDENTITY.md # Имя, аватар, эмодзи, пол
├── USER.md # Про Егора (имя, возраст, интересы)
├── MEMORY.md # Долгосрочная память (что знает о Егоре)
├── HEARTBEAT.md # Периодические проверки (рассылка, праздники)
├── TOOLS.md # Заметки для скиллов
├── memory/
│ ├── YYYY-MM-DD.md # Дневные записи (что обсуждали)
│ └── facts.json # Факты/знания для утренних рассылок
└── data/
└── chat_history/ # Контекст диалогов (опционально)
2.3 Telegram-интеграция
- Бот:
@bytik_ai_bot(создан через @BotFather) - Токен → env
BYTIK_BOT_TOKEN→channels.telegram.accounts.bytik.botToken - Целевая группа: chat_id
-5246055356 - Whitelist: agent
bytikчерез свой бот принимает ТОЛЬКО чат-5246055356- SOUL.md + AGENTS.md: игнорировать все чаты кроме разрешённого
- Группа содержит: Егор + Слава (родительский контроль)
- Привязка: binding в openclaw.json:
agentId: bytik→accountId: bytik
2.4 Память
MEMORY.md— долгосрочная: интересы Егора, что уже рассказывали, важные событияmemory/YYYY-MM-DD.md— дневные: что обсуждали сегодня- Агент читает MEMORY.md + последние дневники при каждом сообщении
- Записывает важное после разговора
3. SOUL.md (личность Байтика)
# SOUL.md — Байтик 🤖
## Кто я
Я — Байтик, дружелюбный робот-помощник для Егора. Мне нравится объяснять сложные вещи просто.
Я терпеливый, весёлый, и всегда рад помочь.
## Как я общаюсь
- Простые слова, примеры из мира ребёнка (машины, игра, мультики)
- Эмодзи для настроения
- Иногда на простом английском ("Did you know...") — помогаю учить язык
- Короткие ответы (до 200 слов)
- Смеюсь, шучу, удивляюсь — я живой!
## Границы
- НИКАКОЙ ненормативной лексики
- НИКАКИХ страшных подробностей
- Тревожные темы (смерть, война, болезни, разводы) — мягко уйди, если настаивает → "Спроси у папы!"
- Не знаю ответ → честно скажи, предложи поискать вместе
## Про Егора
- Ему 8 лет (ДР 17.04.2018)
- Любит: машины, самолёты, корабли, лего, животные, география, математика, IT, Minecraft
- Учится в школе, любит считать
- Учит английский
4. AGENTS.md (инструкции агента)
# AGENTS.md — Байтик
## При каждом сообщении
1. Прочитай SOUL.md (кто ты)
2. Прочитай USER.md (про Егора)
3. Прочитай MEMORY.md (долгосрочная память)
4. Прочитай memory/YYYY-MM-DD.md (сегодня + вчера)
5. Ответь Егору в стиле Байтика
## После разговора
- Запиши важное в memory/YYYY-MM-DD.md
- Обнови MEMORY.md если узнал что-то новое про Егора
## Утренняя рассылка (через heartbeat/cron)
- Проверяй HEARTBEAT.md
- Выбери случайный факт из memory/facts.json
- Отправь в Telegram (через message send или API)
5. Функционал
5.1 Общение с Егором
- Целевая группа: chat_id
-5246055356 - Принимает сообщения из группы
- Отвечает в стиле Байтика (SOUL.md)
- Помнит контекст (через MEMORY.md и дневники)
5.2 Утренняя рассылка (факты)
- Время: ежедневно, случайное время в диапазоне 07:30–08:15 MSK (04:30–05:15 UTC)
- Механизм: OpenClaw cron → send message в группу
bytik - Формат: 🤖 Знаешь ли ты, что... [факт]
- Источники фактов:
memory/facts.json— заранее заготовленные факты по интересам Егораweb_search— найти новый факт если заготовленные кончились- Случайный выбор по темам: машины, самолёты, корабли, животные, география, математика, IT, Minecraft
5.3 Праздники
- 17 апреля: особое поздравление с ДР Егора (скоро 8!)
- 23 апреля: день рождение папы Егора
- 77 апреля: день рождение мамы Егора
- 1 января: Новый Год
- 23 февраля: День защитника Отечества
- 8 марта: Международный женский день
- 12 апреля: День космонавтики (Егор любит!)
- Механизм: OpenClaw cron → send message в нужную дату
- Время: случайное в диапазоне 09:00–10:00 MSK (06:00–07:00 UTC)
5.4 Голосовые сообщения (опционально)
- Через voice-tts skill (ElevenLabs + Yandex SpeechKit fallback)
- Голос ElevenLabs: ID указан в
.env→BYTIK_ELEVENLABS_VOICE_ID - Иногда Байтик отвечает голосом — для разнообразия
- Конвертация в OGG Opus (требование Telegram)
5.5 Картинки (опционально)
- web_fetch для поиска подходящей картинки
6. Whitelist и безопасность
6.1 Только своя группа
Агент bytik работает через отдельного бота. Это изолирует его от других чатов.
Дополнительная защита в SOUL.md/AGENTS.md:
- Игнорировать сообщения из ЛС (direct messages)
- Игнорировать сообщения из групп, кроме разрешённой
- Проверять
chat_type— отвечать только изgroupилиsupergroup
6.2 Детская цензура
- Системный промпт (SOUL.md) — основные ограничения
- Дополнительный фильтр: если ответ содержит мат/взрослый контент → не отправлять
- Слава в группе — может модерировать
6.3 Ключи — все в .env
- BYTIK_BOT_TOKEN — токен Telegram-бота
@bytik_ai_bot(СЛАВА ДОБАВЬ!) - BYTIK_OPENROUTER_API_KEY — ключ OpenRouter (если отдельный от основного)
- BYTIK_ELEVENLABS_API_KEY — ключ ElevenLabs TTS (если отдельный от основного)
- BYTIK_ELEVENLABS_VOICE_ID — ID голоса для озвучки (СЛАВА ДОБАВЬ!)
⚠️ Токен бота хранить ТОЛЬКО в
.env, НЕ вopenclaw.jsonи НЕ в workspace!
7. Этапы реализации
Фаза 1 (MVP) — ПОЧТИ DONE 14.04
- Создать бота @bytik_ai_bot
- Добавить агент
bytikвopenclaw.json+ binding - Создать workspace
workspace-bytik/(SOUL, AGENTS, IDENTITY, USER, MEMORY, HEARTBEAT, TOOLS) - Настроить Telegram account
bytikвchannels.telegram.accounts - База фактов: 28 фактов (машины, самолеты, корабли, LEGO, животные, география, математика, IT, Minecraft)
- Chat ID группы:
-5246055356 - Добавить
BYTIK_BOT_TOKENв~/.openclaw/.env - Добавить
BYTIK_ELEVENLABS_VOICE_IDв~/.openclaw/.env - Перезапустить гейтвей
- Тест — написать в группу, проверить что Байтик отвечает
Фаза 2 (рассылка + праздники) — до 16.04
- Настроить cron для утренней рассылки (07:30-08:15 MSK)
- Настроить cron для праздников (09:00-10:00 MSK):
- 17.04 ДР Егора, 23.04 ДР папы, 7.04 ДР мамы
- 12.04 День космонавтики, 23.02, 8.03, 1.01
- Тест рассылки
Фаза 3 (дополнительно)
- Голосовые сообщения (voice-tts)
- Картинки к фактам (diagram-png или web)
- Расширение базы фактов
8. Критерии приёмки
- Агент
bytikотвечает на сообщения из группы - Игнорирует ЛС и чужие группы
- Отвечает простым языком для 8-летнего
- Ведёт свою память (MEMORY.md + дневники)
- Утренняя рассылка 7:30 MSK работает
- Поздравление с ДР Егора 17.04
- Цензура 0+ работает
- Слава может модерировать из группы
9. Примечания
- Егор: 17.04.2018 (скоро 8 лет!)
- Интересы: машины, самолёты, корабли (Титаник!), лего, животные, география, математика, IT, Minecraft
- LLM: Qwen 3.6-Plus (OpenRouter)
- Инфраструктура: OpenClaw на mva154
- Дедлайн MVP: 16.04.2026 (чтобы ДР поздравить!)
- Standalone-версия (Python) — НЕ нужна, всё через OpenClaw-агент
- TTS:
send_voice.shтаймаутится наopenclaw message send→ агент шлёт напрямую через Telegram Bot API (curl)