Initial spark-mind: heartbeat + memory + persona + mind on Spark X2.5-4B
This commit is contained in:
commit
709d7ce17d
10 files changed
+991
No files matched your search
@@ -0,0 +1,75 @@
|
||||
# spark-mind
|
||||
|
||||
Self-hosted автономный агент (MVP). Концепт позаимствован из
|
||||
[Animus](https://github.com/Craigtut/animus) (Craigtut): heartbeat,
|
||||
4 слоя памяти, persona в 8 слоёв. Движок — **Spark X2.5-4B** (локально, self-hosted).
|
||||
|
||||
## Почему Spark X2.5-4B
|
||||
|
||||
- Локальный inference (llama.cpp / Ollama), никаких облачных ключей
|
||||
- Нативная поддержка agent-инструментов (tool-calling) — саб-агенты
|
||||
- 1M контекст (для heartbeat держим 4K-16K + внешняя память)
|
||||
- ~59 t/s на Q4_K_M (RTX A2000 12GB)
|
||||
|
||||
> ⚠️ 4B — это слабость для сложного reasoning. Стратегия:
|
||||
> heartbeat-мысли на Spark (быстро/дёшево), саб-агенты на Ornith-9B (качественнее).
|
||||
|
||||
## Архитектура
|
||||
|
||||
```
|
||||
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 триггеров)
|
||||
|
||||
1. **Interval** — idle-мысли по таймеру (default 5 мин)
|
||||
2. **Message** — сообщение от known-контакта
|
||||
3. **Task** — scheduled-задача (cron)
|
||||
4. **SubAgent-Complete** — завершение саб-агента
|
||||
5. **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).
|
||||
|
||||
## Запуск
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm run build # tsc -p tsconfig.json (проверка типов)
|
||||
npm start # node dist/index.js
|
||||
```
|
||||
|
||||
Spark X2.5-4B должен быть доступен по OpenAI-совместимому API:
|
||||
- Ollama: `http://localhost:11434`
|
||||
- llama.cpp: `http://localhost:8080/v1`
|
||||
|
||||
## Roadmap
|
||||
|
||||
- [ ] SQLite-репозиторий вместо in-memory (персистентность)
|
||||
- [ ] LanceDB/Qdrant integration для long-term
|
||||
- [ ] Channel layer (web/SMS/Discord)
|
||||
- [ ] Sub-agent SDK (делегирование Ornith-9B)
|
||||
- [ ] Sleep & energy (циркадный ритм)
|
||||
- [ ] Web UI (persona setup)
|
||||
|
||||
## License
|
||||
|
||||
MIT — концепт вдохновлён Animus (MIT, Craig Tuttle).
|
||||
Reference in new issue
Block a user