Files
wiki/tasks/bytik/TZ.md
2026-04-15 02:40:02 +03:00

12 KiB
Raw Blame History

ТЗ: 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_TOKENchannels.telegram.accounts.bytik.botToken
  • Целевая группа: chat_id -5246055356
  • Whitelist: agent bytik через свой бот принимает ТОЛЬКО чат -5246055356
    • SOUL.md + AGENTS.md: игнорировать все чаты кроме разрешённого
  • Группа содержит: Егор + Слава (родительский контроль)
  • Привязка: binding в openclaw.json: agentId: bytikaccountId: 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:3008:15 MSK (04:3005: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:0010:00 MSK (06:0007:00 UTC)

5.4 Голосовые сообщения (опционально)

  • Через voice-tts skill (ElevenLabs + Yandex SpeechKit fallback)
  • Голос ElevenLabs: ID указан в .envBYTIK_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)