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 как бинарные ассеты.
4.6 KiB
4.6 KiB
agentik
Self-contained multi-module Kotlin Multiplatform агент с долговременной памятью,
персоной, навыками и HTTP-фасадом под /agentik. Состоит из библиотечных модулей
(KMP, опубликованных в Nexus caffeine) и трёх запускаемых артефактов.
Запускаемые модули
| Модуль | Что делает | Артефакт | Таргеты |
|---|---|---|---|
:standalone |
HTTP-сервер со всеми транспортами (AG-UI / A2A / :proto), SQLite, памятью, скилами, SOUL, MCP |
standalone-all.jar (≈250 MB) |
JVM |
:agentik-cli |
REPL-клиент к /agentik со slash-командами |
agentik-cli-all.jar (≈8 MB) |
JVM |
:agentik-tui |
Compose-style TUI-клиент (Mosaic) к /agentik |
agentik-tui-all.jar (≈10 MB) |
JVM + macosX64/macosArm64/linuxX64/linuxArm64/mingwX64 |
Библиотеки
Все библиотеки — KMP (jvm + 8 native), опубликованы в Nexus-репо caffeine
под группой pw.binom.agentik.
Протокол и транспорт
:proto—Agent/Conversation/Message/Event, типы без сетевой логики. Stateful — клиент шлёт только новый message, агент владеет историей.:server— Ktor-фасад, экспонирующий:proto.Agentпод/agentik(HTTP+JSON+SSE).:client— Ktor-клиент, превращающий HTTP/agentikобратно вAgent/Conversation.
Память
:memory-api— контракт:MemoryStore,MemoryNote,MemoryPrefetcher,MemoryReviewer,MemoryTools.:memory-md— Hermes-style реализация поверх §-файлов (user.md/world.md/preference.md).:memory-vector— JVector (ANN) + SQLite + эмбеддинги (HTTP/SIGLIP on-device).
Хранилище
:storage-core—ConversationStore/MessageStore/WorkingMemoryStore/ReflectionStore.:storage-inmemory— in-memory реализация (для тестов и embedded).:storage-sqlite— SQLDelight реализация (прод-бэкенд).
Логика
:skills— opencode-styleSKILL.md/*.yamlпарсер + рендер в system prompt.:agent-toolsets— реестр тулов +enable_toolset/disable_toolsetдиспетчер.
Где смотреть версии
gradle.properties→version=0.1.0(текущая разрабатываемая)- Релизы:
https://git.binom.pw/subochev/agentik/releases - Опубликованные артефакты: Nexus-репозиторий
caffeine(http://nexus.xx/repository/caffeine/pw/binom/agentik/)
При подключении библиотек используйте одну и ту же version (VERSION в Gradle
зависимостях). Все артефакты синхронизированы и совместимы по ABI в пределах
одной версии.
Публикация (CI/CD)
.gitea/workflows/release.yml — публикует все KMP-таргеты всех модулей в
Nexus-репо caffeine при создании Gitea Release. Версия артефактов берётся из
имени тега (git tag v0.1.0 → pw.binom.agentik:*:0.1.0).
# Создать релиз:
git tag v0.1.0 && git push --tags
# → Gitea → Releases → New Release → выбрать тег → Publish
# → CI публикует в Nexus (нужны секреты BINOM_REPO_USER/BINOM_REPO_PASSWORD)
Сборка
# Всё
./gradlew build
# Только JVM-тесты всех модулей
./gradlew jvmTest
# Только fatjar запускаемых модулей
./gradlew :standalone:shadowJar :agentik-cli:shadowJar :agentik-tui:shadowJar
# Опубликовать локально в mavenLocal (~/.m2)
./gradlew publishToMavenLocal
# Опубликовать в Nexus (нужны креды)
./gradlew publish -Pversion=0.2.0 \
-Pbinom.repo.url=http://nexus.xx/repository/caffeine/ \
-Pbinom.repo.user=USER -Pbinom.repo.password=PASS
Лицензия
Apache-2.0 — см. LICENSE (если есть).