Files
wiki/BACKLOG_GENERAL.md
2026-04-12 21:55:33 +03:00

149 lines
8.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Бэклог общего развития
Задачи по развитию инфраструктуры, инструментов и возможностей системы.
Не привязаны к конкретным проектам.
---
## 🤖 Агенты
### [ ] 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*