P3-P5: SubAgent SDK, Telegram Channel, SQLite persistence, full pipeline

P3 - SubAgent SDK:
  - src/subagent.ts: researcher, coder, analyst, content-writer
  - Mind.runSubAgent() → SubAgentFactory.create() → execute()
  - Результаты сохраняются в long-term memory
  - Heartbeat.notify(subagent-complete) после завершения

P4 - SQLite persistence (5 таблиц, WAL):
  - src/database.ts: thoughts, notepads, self_observations, long_term, embeddings
  - memory.ts → Database (полная замена in-memory)
  - index.ts: dbPath → ~/.local/share/spark-mind/spark-mind.db

P5 - Telegram Channel Layer:
  - src/telegram.ts: https module (SNI fix), MAX Messenger API
  - mind.ts: sendReply() → Telegram + console fallback
  - index.ts: TelegramMessenger(config) → Mind

Fixes:
  - FK constraint: long_term INSERT → long_term_embeddings INSERT
  - JSON parse: nested objects, markdown fences
  - P5 telegram: graceful degradation on SSL error
This commit is contained in:
n1kt4r committed 2026-09-15 12:49:33 +05:00
1 parent a01f183680
commit bae171d6b4
9 files changed
+536 -58

No files matched your search

+45 -15
View File
@@ -18,9 +18,13 @@ Self-hosted автономный агент (MVP). Концепт позаимс
```
heartbeat.ts — ядро: 5 триггеров тика, состояния Cold/Warm
memory.ts — 4 слоя памяти (short/working/core self/long-term)
memory.ts — 4 слоя памяти (short/working/core self/long-term) + SQLite
persona.ts — 8 слоёв → системный промпт
mind.ts — оркестратор: heartbeat + memory + persona + Spark LLM
mind.ts — оркестратор: heartbeat + memory + persona + LLM
subagent.ts — SubAgent SDK: researcher, coder, analyst, content-writer
embedding.ts — bge-m3 embeddings (dim=1024), cosine similarity
database.ts — SQLite репозиторий: 5 таблиц, WAL-режим
telegram.ts — Telegram Channel Layer: MAX Messenger API
```
### Heartbeat (5 триггеров)
@@ -38,16 +42,18 @@ mind.ts — оркестратор: heartbeat + memory + persona + Spark L
| Слой | Хранение | Что держит |
|------|----------|-----------|
| short-term | SQLite | последние ~10 мыслей/опыт/сообщений |
| working | SQLite | notepad по контактам |
| core self | SQLite | самосознательность |
| long-term | LanceDB/Qdrant | факты/опыт/процедуры (векторный поиск) |
| short-term | SQLite (thoughts) | последние ~10 мыслей/опыт/сообщений |
| working | SQLite (notepads) | notepad по контактам |
| core self | SQLite (self_observations) | самосознательность |
| long-term | SQLite (long_term + embeddings) | факты/опыт/процедуры + bge-m3 векторы |
### Persona (8 слоёв)
### Sub-Agents
Existence Paradigm → Identity → Archetype → Dimensions → Traits → Values → Background → Review
Компилируется в системный промпт. `values` — safety-layer (границы для EXECUTE).
Поддерживаемые агенты:
- **researcher** — сбор и анализ информации (web_search, file_read, web_extract)
- **coder** — написание и ревью кода (file_write, terminal, code_review)
- **analyst** — анализ данных и ситуаций (data_query, spreadsheet, chart_generator)
- **content-writer** — создание веб-контента (template_search, seo_check, grammar_check)
## Запуск
@@ -60,12 +66,36 @@ npm start # node dist/index.js
Ornith-1.5-9B должен быть доступен по OpenAI-совместимому API (Ollama):
- Ollama: `http://localhost:11434` (модель `ornith-1.5-9b:latest`)
## Roadmap
### Настройка Telegram
- [x] SQLite-репозиторий вместо in-memory (персистентность) — отложено (P4)
- [x] LanceDB/Qdrant integration для long-term — bge-m3 embeddings локально (Ollama)
- [x] Channel layer (вывод) — console-заглушка, подключение Telegram/SMS (P5)
- [ ] Sub-agent SDK (делегирование Ornith-9B)
Для отправки ответов в Telegram добавьте в `index.ts`:
```typescript
import { TelegramMessenger } from './src/telegram.js';
const telegram = new TelegramMessenger({
botUrl: 'https://bot.qw4.ru/bot/nik_bot',
userId: '140245519',
});
```
> ⚠️ Примечание: если bot.qw4.ru недоступен (SSL-ошибка 'unrecognized name'),
> агент работает в console-only режиме.
## Статус P0–P5
| Priority | Компонент | Статус |
|----------|-----------|--------|
| P0 | heartbeat → mind wiring | ✅ |
| P1 | structured JSON output (parseSparkOutput) | ✅ |
| P2 | bge-m3 embeddings + cosine search | ✅ |
| P3 | SubAgent SDK (researcher, coder, analyst, content-writer) | ✅ |
| P4 | SQLite persistence (5 таблиц, WAL) | ✅ |
| P5 | Telegram Channel Layer (MAX API + fallback) | ✅ |
## Roadmap (P6+)
- [ ] Sleep & energy (циркадный ритм)
- [ ] Web UI (persona setup)
- [ ] Sleep & energy (циркадный ритм)
- [ ] Web UI (persona setup)