6b8989098a
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
41 lines
2.7 KiB
Markdown
41 lines
2.7 KiB
Markdown
---
|
||
tags: [архітектура, mcp]
|
||
created: 2026-07-14
|
||
---
|
||
|
||
# Огляд архітектури
|
||
|
||
## Стек
|
||
|
||
| Компонент | Рішення | Примітка |
|
||
|-----------|---------|----------|
|
||
| Рантайм | Node.js 22 + TypeScript | однорідно з наявним project-agent |
|
||
| MCP SDK | `@modelcontextprotocol/sdk` | Streamable HTTP транспорт з коробки |
|
||
| БД | **PostgreSQL 18 + pgvector — окремий контейнер у stack'у проекту** | образ `pgvector/pgvector:pg18`; база `ai_memory` |
|
||
| Пошук | гібридний: FTS (фаза 1) → FTS + vector (фаза 2) | embeddings відкладені до підключення Ollama |
|
||
| Embeddings | Ollama + `bge-m3` (1024 вим.) | окремий сервер, окремий воркфлоу — [[Гібридна схема з Ollama]] |
|
||
| Хостинг | TrueNAS + Portainer | [[Деплой на TrueNAS]] |
|
||
| Автентифікація | API-ключ у заголовку | єдиний механізм для всіх клієнтів |
|
||
|
||
## Ключові принципи
|
||
|
||
1. **Логіка проектів** — сервер підтримує проекти за аналогією з наявним `project-agent`: список проектів, стан сесій (summary, todo, changes, bugs, architecture notes) + подібний набір скілів для Claude Code.
|
||
2. **Пам'ять як граф** — записи пов'язані між собою (`memory_links`), що віддзеркалює `[[wiki-посилання]]` Obsidian: логіка сховища і логіка БД збігаються.
|
||
3. **Розширюваність** — схема інструментів покриває поточні потреби і не блокує майбутні (виконавці на локальних моделях, нові типи пам'яті).
|
||
4. **Відкладені embeddings** — абстракція `EmbeddingProvider`: фаза 1 працює без векторів (FTS-only, колонка `embedding` = NULL), фаза 2 додає Ollama і backfill без зміни API.
|
||
|
||
## Компоненти
|
||
|
||
```
|
||
Claude Code / інші ШІ-клієнти
|
||
│ MCP Streamable HTTP (+ API key)
|
||
▼
|
||
ai-memory-server (Node.js, контейнер у Portainer)
|
||
│ │
|
||
▼ ▼ (фаза 2)
|
||
PostgreSQL 18 + pgvector Ollama (окремий сервер)
|
||
(контейнер у тому ж stack'у) embeddings + локальні виконавці
|
||
```
|
||
|
||
Пов'язане: [[Модель даних]], [[MCP інструменти]], [[Roadmap]]
|