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

8.6 KiB
Raw Permalink Blame History

Бэклог общего развития

Задачи по развитию инфраструктуры, инструментов и возможностей системы. Не привязаны к конкретным проектам.


🤖 Агенты

[ ] 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