4.6 KiB
4.6 KiB
spark-mind — Оставшиеся TODO
Статус: P0–P5 завершены (heartbeat→mind, JSON output, embeddings, sub-agents, SQLite, Telegram). Ниже — реально незакрытые пункты, проверенные по коду (2026-09-15). Порядок — по приоритету.
P6 — Функциональная полнота
- Sleep & energy (циркадный ритм). Сейчас heartbeat тикает всегда с фиксированным интервалом 5 мин. Нужно: окна активности/сна, накопление «энергии», снижение частоты тиков в пассивные периоды.
- Планировщик задач (cron). Тип триггера
{ type: 'task' }объявлен вheartbeat.ts, но ничто его не эмитит — планировщика нет (scheduleNext— это idle-таймер, не cron). Нужен движок отложенных задач. - Рабочая память (notepads) в цикле mind. Таблица
notepadsи методыupdateNotepad()/getNotepad()реализованы, но вне memory.ts не вызываются — слой не участвует вhandleTick. - Core self (self_observations) в цикле mind. Аналогично:
addSelfObservation()/getAllSelfObservations()реализованы, но из mind не вызываются. Самосознательность не накапливается автоматически. - Реальное исполнение инструментов под-агентов.
subagent.tsобъявляет список tools (web_search, terminal, file_write…), но это строки-декларации — исполнения нет. Нужен tool-runtime для под-агентов.
P7 — Инфраструктура
- Web UI (persona setup). Настройка 8 слоёв persona через интерфейс
вместо
DEFAULT_PERSONAв коде. - Конфиг / .env. URL-ы Ollama (
localhost:11434), dbPath, Telegram захардкожены вindex.ts. Вынести в конфиг/.env. - Retry + timeout для LLM-запросов.
fetchвmind.tsиembedding.tsбез retry и безAbortController— один сетевой сбой роняет тик. - Тесты. Их нет вообще. Минимум: unit на
parseSparkOutput(nested JSON, fences, fallback), наDatabaseCRUD, на cosine-поиск.
Каналы вывода
- Telegram: обход SSL-проблемы bot.qw4.ru. Сервер отдаёт
tlsv1 unrecognized name(SSL alert 112) при TLS-handshake — проблема на стороне сервера, не клиента (проверено curl-ом и Node https). Агент сейчас работает в console-only fallback. Варианты: починить SNI/сертификат на qw4.ru, поднять локальный MAX-релей, или другой канал (Telegram Bot API напрямую).
Движок
- Spark X2.5-4B. Не грузится в текущей Ollama:
error loading model: unknown model architecture: 'spark2_5'. Варианты: собрать совместимый GGUF, поднять через llama.cpp напрямую (OpenAI-сервер на :8080), или оставить Ornith-1.5-9B как основной движок. Важно: локальные модели пумолкают (пустой ответ), еслиsubAgentприсутствует в JSON-схеме structured output — учитывать при правках промпта.
Косметика
- Устаревший doc-комментарий в
mind.ts: классSparkLLMClientвсё ещё описан как «Реальный LLM-клиент для Spark X2.5-4B. В MVP — заглушка», хотя работает с Ornith-9B и без заглушки. - Дефолтное имя модели в конструкторе
SparkLLMClient='spark-x2.5-4b'(index.ts переопределяет наornith-1.5-9b:latest, но дефолт вводит в заблуждение).
Проверено grep-ом по коду: dead-code слои, отсутствие cron/retry/tests/.env, SSL-ошибка Telegram.