# Бэклог общего развития Задачи по развитию инфраструктуры, инструментов и возможностей системы. Не привязаны к конкретным проектам. --- ## 🤖 Агенты ### [ ] Dev-агент (Claude Code) - Настроить Claude Code как постоянного агента `dev` в `openclaw.json` - Создать workspace агента с `SOUL.md`, `CLAUDE.md`, `MEMORY.md` - Описать стек, правила работы, структуру проектов - Протестировать связку: я (координатор) → Claude Code → результат - Выбрать первую реальную задачу для теста ### [ ] Агент-аналитик данных - Создать скилл `data-analyst` для анализа структурированных данных - Поддержка: pandas, статистика, графики, выводы в Markdown - Интеграция с данными из `workspace/data/` - Автоматические отчёты по запросу - Потенциально: Jupyter + LLM или Claude Code в режиме аналитика --- ## 🔧 Инфраструктура ### [ ] Умная колонка / голосовой ассистент **Вариант А: Своя колонка (ReSpeaker / OpenVoiceOS)** - Протестировать Tasker + AutoVoice (самый быстрый путь) - Оценить ReSpeaker Lite (есть на Ozon, 3 варианта) - Изучить OpenVoiceOS + интеграция через Ollama-compatible API - Выбрать стратегию TTS: ElevenLabs / Yandex SpeechKit / OVOS встроенный **Вариант Б: Яндекс Алиса + ElevenLabs (webhook-навык)** - Создать webhook-навык для Алисы (HTTPS, Flask/Node.js) - Голос ElevenLabs через загрузку MP3 в Диалоги API (до 120 сек, до 5 МБ) - Схема: голосовой запрос → webhook → ElevenLabs API → загрузка в Диалоги → ответ с кастомным голосом - Ограничение: webhook ≤5 сек, нужен pre-generation или кэш ID загруженных файлов - Альтернатива: статический набор фраз с предзагруженным голосом ElevenLabs - Голоса Алисы (бесплатно): Марина, Дмитрий, Ермил, Оксана, Захар - Документация: https://yandex.ru/dev/dialogs/alice/doc/ru/resource-sounds-upload.html - Потенциально: голосовой интерфейс для OpenClaw через Алису **Общее:** потенциальный голосовой интерфейс для OpenClaw **Статус:** Слава думает, какой вариант выбрать ### [ ] Семантический поиск и RAG по данным Telegram **Задача:** реализовать семантический поиск + суммаризацию по 155K сообщений сноубайков **Стартовый вариант (простой):** - ChromaDB (Python, 10 строк кода) - Embeddings через OpenAI или бесплатную модель (sentence-transformers) - Sonnet для суммаризации **Продвинутый вариант:** - Qdrant (Docker) - Embeddings через OpenRouter - Sonnet/Haiku для ответов - UI на Flask **Гибридный (максимальная мощь):** - Meilisearch (ключевые слова, быстро) + ChromaDB (семантика) + Sonnet (суммаризация) - Схема: вопрос → Meilisearch (точные совпадения) → ChromaDB (смысловые) → объединить контекст → LLM ответит **Технологии на выбор:** - Meilisearch — полнотекстовый, typo-tolerance, без семантики - Elasticsearch — полнотекстовый + векторный поиск (dense vectors) - ChromaDB — векторная БД, проще всего для старта - Qdrant — векторная БД, Docker, быстрый - FAISS (Meta) — максимальная скорость, библиотека **Применение:** ответы на вопросы типа «какие масла рекомендуют для Polaris 850?» — не найти сообщение, а получить агрегированный ответ на основе всех данных **Статус:** в бэклоге, вернёмся позже ### [ ] Видеокружочки в Telegram (ElevenLabs Lip Sync) **Задача:** отправлять кружочки с голосом + анимированная аватарка **Аватарка:** `data/avatars/stream-avatar.jpg` (уже сохранена) **Схема:** - Аватарка → ElevenLabs Image to Video (4 сек, 1:1, MP4) - Голос → ElevenLabs TTS - Lip Sync → синхронизация губ с голосом - MP4 → отправить как кружочек в Telegram (`asVideoNote: true`) **Требования:** платный тариф ElevenLabs (Video generation) **Модели:** OpenAI Sora 2 Pro, Google Veo 3.1, Kling 2.5 **Статус:** в бэклоге, проверить тариф ElevenLabs **Задача:** отправлять кружочки с голосом + анимированный аватар **Что нужно:** - Сгенерировать видео (ffmpeg: круглая маска + аватар + анимация) - Наложить аудио (голос ElevenLabs) - Отправить через `asVideoNote: true` **Статус:** в бэклоге ### [ ] Отправка стикеров в Telegram **Задача:** реализовать отправку стикеров в ответ на входящие стикеры **Проблема:** sticker cache пуст, fileId не сохраняется при получении стикеров **Что нужно:** - Разобраться почему `~/.openclaw/telegram/sticker-cache.json` не заполняется - Настроить vision-обработку стикеров (для кэширования fileId) - Реализовать отправку стикеров через `sticker-search` + `sticker` actions - Sticker actions включены в конфиге (`channels.telegram.actions.sticker: true`) **Статус:** в бэклоге ### [ ] Учёт токенов и стоимости задач Dev-агента **Задача:** при каждой задаче Dev-агента фиксировать токены и стоимость **Что отслеживать:** - Токены: input + output - Стоимость: по тарифу модели (Sonnet 4.6: $3/$15 за 1M токенов) - Длительность: runtime в секундах **Откуда данные:** stats из `sessions_spawn` completion event **Формула:** `(input_tokens × 3 + output_tokens × 15) / 1_000_000` **Формат в отчёте:** `Токены: XXX in / XXX out | Стоимость: $X.XX | Время: Xм` **Реализация:** Стрим фиксирует stats при каждом завершении задачи Dev-агента **Статус:** в бэклоге ### [ ] Residential proxy для парсинга - Нужен для Ozon, Яндекс.Маркет, Перекрёсток - Варианты: Bright Data, Smartproxy, ProxyLine (~500 руб/мес) - Или туннель через домашний IP для бесплатного теста ### [ ] Покупки / корзина в магазинах - Ozon: Statistics API (цены) + Playwright (корзина) - Перекрёсток: Playwright (проще всего технически) - Яндекс.Маркет: Playwright (сложнее, единый Яндекс ID) - Требует: residential proxy + авторизация --- ## 📚 Скиллы ### [x] youtube-search — ГОТОВ - YouTube Data API v3 - Поиск видео, метаданные - API ключ: `YOUTUBE_API_KEY` в `.env` ### [x] yandex-search — ГОТОВ - Yandex Search API v2 (async) - Русскоязычный поиск, цены в магазинах - API ключ: `YANDEX_API_KEY` в `.env` (тот же, что для SpeechKit) ### [x] voice-tts — ГОТОВ - ElevenLabs + Yandex SpeechKit fallback ### [x] telegram-collector — ГОТОВ - Сбор данных из Telegram-каналов --- *Обновлён: 24 марта 2026*