149 lines
8.6 KiB
Markdown
149 lines
8.6 KiB
Markdown
# Бэклог общего развития
|
||
|
||
Задачи по развитию инфраструктуры, инструментов и возможностей системы.
|
||
Не привязаны к конкретным проектам.
|
||
|
||
---
|
||
|
||
## 🤖 Агенты
|
||
|
||
### [ ] 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*
|