Files
agentik/memory-md/README.md
T
subochev 0fdc12695e
ci / JVM build + tests (push) Failing after 1m57s
docs: per-module README + root navigation hub + CI/release workflows
- 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 как бинарные ассеты.
2026-09-16 16:24:03 +03:00

2.5 KiB

:memory-md — pw.binom.agentik.memory.md

Hermes-style реализация долговременной памяти поверх обычных markdown-файлов. По одной §-секции на заметку, в файлах user.md / world.md / preference.md. Без внешних зависимостей, без эмбеддингов, без БД.

Какую проблему решает

Минимально работающая память без инфраструктуры: открыл текстовый редактор — посмотрел, поправил, удалил. Версионируется в git вместе с проектом, бэкапится как обычные файлы. Полезно для дев-окружения, для одиночных пользователей, для отладки vector-бэкенда.

Формат файла

# 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}.

Подключение

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

Сборка

./gradlew :memory-md:build

KMP-таргеты — полный набор. Зависимости — :memory-api + kaml (YAML-парсинг метаданных).