0fdc12695e
ci / JVM build + tests (push) Failing after 1m57s
- README.md в каждом подмодуле: для библиотек — описание проблемы, подключение через maven-central/caffeine, версии в gradle/libs.versions.toml. Для запускаемых модулей — команды запуска + переменные среды с дефолтами. - Корневой README.md переписан как навигационный хаб: что это, где клиенты, где серверы, как собрать, как опубликовать. - build.gradle.kts: per-module POM-description через единую карту в rootProject.extra (порядок важен — нужно ДО apply плагина KMP, поэтому beforeEvaluate в subprojects). - .gitea/workflows/ci.yml (новый): build + jvmTest + shadowJar на PR/push main. - .gitea/workflows/release.yml (обновлён): публикует библиотеки в caffeine Nexus + собирает 3 fatjar'а и крепит их к release как бинарные ассеты.
64 lines
2.5 KiB
Markdown
64 lines
2.5 KiB
Markdown
# :memory-md — `pw.binom.agentik.memory.md`
|
|
|
|
**Hermes-style реализация долговременной памяти поверх обычных markdown-файлов.**
|
|
По одной §-секции на заметку, в файлах `user.md` / `world.md` / `preference.md`.
|
|
Без внешних зависимостей, без эмбеддингов, без БД.
|
|
|
|
## Какую проблему решает
|
|
|
|
Минимально работающая память **без инфраструктуры**: открыл текстовый редактор —
|
|
посмотрел, поправил, удалил. Версионируется в git вместе с проектом, бэкапится
|
|
как обычные файлы. Полезно для дев-окружения, для одиночных пользователей,
|
|
для отладки vector-бэкенда.
|
|
|
|
## Формат файла
|
|
|
|
```markdown
|
|
# user.md
|
|
|
|
# agentik-note id=a3f1e2b7 created=2026-09-01 uses=3 last=2026-09-12
|
|
Пользователь предпочитает короткие ответы без эмодзи. Не любит вим.
|
|
|
|
# agentik-note id=b9c4d8e1 created=2026-09-10 uses=1 last=2026-09-12
|
|
Дедлайн релиза agentik — 25 сентября.
|
|
|
|
# preference.md
|
|
|
|
# agentik-note id=c1d2e3f4 created=2026-09-08 uses=0 last=never
|
|
Отвечать по-русски, без жаргона.
|
|
```
|
|
|
|
Заголовок с метаданными (`# agentik-note id=… created=… uses=… last=…`), пустая
|
|
строка, markdown-body. Curator (фоновая корутина) переименовывает «протухшие»
|
|
заметки (`useCount=0` и `last > 90 дней назад`) в `.archived.{ts}`.
|
|
|
|
## Подключение
|
|
|
|
```kotlin
|
|
commonMain {
|
|
implementation("pw.binom.agentik:memory-md:$version")
|
|
// транзитивно: :memory-api + kaml (для YAML-сериализации метаданных)
|
|
}
|
|
|
|
// Использование
|
|
val store = MemoryMdStore.fromDirectory(
|
|
dir = Path("~/.agentik/memory"),
|
|
clock = Clock.System,
|
|
)
|
|
val search = store.search(MemorySearchQuery(query = "любимый редактор", limit = 5))
|
|
```
|
|
|
|
## Где смотреть версии
|
|
|
|
- `version` из `gradle.properties` (`version=0.1.0`)
|
|
- релизы: `https://git.binom.pw/subochev/agentik/releases`
|
|
|
|
## Сборка
|
|
|
|
```bash
|
|
./gradlew :memory-md:build
|
|
```
|
|
|
|
KMP-таргеты — полный набор. Зависимости — `:memory-api` + `kaml` (YAML-парсинг
|
|
метаданных).
|