3.2 KiB
3.2 KiB
spark-mind
Self-hosted автономный агент (MVP). Концепт позаимствован из Animus (Craigtut): heartbeat, 4 слоя памяти, persona в 8 слоёв. Движок — Ornith-1.5-9B (локально, self-hosted, Ollama).
Почему Ornith-1.5-9B
- Локальный inference (Ollama), никаких облачных ключей
- Нативная поддержка tool-calling (саб-агенты) + thinking
- 262K контекст (для heartbeat держим 4K-16K + внешняя память)
- ~40-60 t/s на Q6_K
⚠️ Spark X2.5-4B не грузится в Ollama (unknown architecture 'spark2_5'). Ornith-9B — рабочая замена: thinking + tools, дефицитный ресурс.
Архитектура
heartbeat.ts — ядро: 5 триггеров тика, состояния Cold/Warm
memory.ts — 4 слоя памяти (short/working/core self/long-term)
persona.ts — 8 слоёв → системный промпт
mind.ts — оркестратор: heartbeat + memory + persona + Spark LLM
Heartbeat (5 триггеров)
- Interval — idle-мысли по таймеру (default 5 мин)
- Message — сообщение от known-контакта
- Task — scheduled-задача (cron)
- SubAgent-Complete — завершение саб-агента
- Plugin — внешний триггер (HomeKit, сенсор и т.д.)
Таймер сбрасывается после любого тика. Warmth-окно 15 мин — сессия переиспользуется, иначе cold-start.
Memory (4 слоя)
| Слой | Хранение | Что держит |
|---|---|---|
| short-term | SQLite | последние ~10 мыслей/опыт/сообщений |
| working | SQLite | notepad по контактам |
| core self | SQLite | самосознательность |
| long-term | LanceDB/Qdrant | факты/опыт/процедуры (векторный поиск) |
Persona (8 слоёв)
Existence Paradigm → Identity → Archetype → Dimensions → Traits → Values → Background → Review
Компилируется в системный промпт. values — safety-layer (границы для EXECUTE).
Запуск
npm install
npm run build # tsc -p tsconfig.json (проверка типов)
npm start # node dist/index.js
Ornith-1.5-9B должен быть доступен по OpenAI-совместимому API (Ollama):
- Ollama:
http://localhost:11434(модельornith-1.5-9b:latest)
Roadmap
- SQLite-репозиторий вместо in-memory (персистентность) — отложено (P4)
- LanceDB/Qdrant integration для long-term — bge-m3 embeddings локально (Ollama)
- Channel layer (вывод) — console-заглушка, подключение Telegram/SMS (P5)
- Sub-agent SDK (делегирование Ornith-9B)
- Sleep & energy (циркадный ритм)
- Web UI (persona setup)
License
MIT — концепт вдохновлён Animus (MIT, Craig Tuttle).