89 lines
4.7 KiB
Markdown
89 lines
4.7 KiB
Markdown
# agentik
|
|
|
|
Self-contained multi-module Kotlin Multiplatform агент с долговременной памятью,
|
|
персоной, навыками и HTTP-фасадом под `/agentik`. Состоит из библиотечных модулей
|
|
(KMP, опубликованных в Nexus `caffeine`) и трёх запускаемых артефактов.
|
|
|
|
## Запускаемые модули
|
|
|
|
| Модуль | Что делает | Артефакт | Таргеты |
|
|
|---|---|---|---|
|
|
| [`:standalone`](standalone/README.md) | HTTP-сервер со всеми транспортами (AG-UI / A2A / `:proto`), SQLite, памятью, скилами, SOUL, MCP | `standalone-all.jar` (≈250 MB) | JVM |
|
|
| [`:agentik-cli`](agentik-cli/README.md) | REPL-клиент к `/agentik` со slash-командами | `agentik-cli-all.jar` (≈8 MB) | JVM |
|
|
| [`:agentik-tui`](agentik-tui/README.md) | 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`](proto/README.md) — `Agent` / `Conversation` / `Message` / `Event`, типы без сетевой логики. **Stateful** — клиент шлёт только новый message, агент владеет историей.
|
|
- [`:server`](server/README.md) — Ktor-фасад, экспонирующий `:proto.Agent` под `/agentik` (HTTP+JSON+SSE).
|
|
- [`:client`](client/README.md) — Ktor-клиент, превращающий HTTP `/agentik` обратно в `Agent`/`Conversation`.
|
|
|
|
### Память
|
|
- [`:memory-api`](memory-api/README.md) — контракт: `MemoryStore`, `MemoryNote`, `MemoryPrefetcher`, `MemoryReviewer`, `MemoryTools`.
|
|
- [`:memory-md`](memory-md/README.md) — Hermes-style реализация поверх §-файлов (`user.md`/`world.md`/`preference.md`).
|
|
- [`:memory-vector`](memory-vector/README.md) — JVector (ANN) + SQLite + эмбеддинги (HTTP/SIGLIP on-device).
|
|
|
|
### Хранилище
|
|
- [`:storage-core`](storage-core/README.md) — `ConversationStore` / `MessageStore` / `WorkingMemoryStore` / `ReflectionStore`.
|
|
- [`:storage-inmemory`](storage-inmemory/README.md) — in-memory реализация (для тестов и embedded).
|
|
- [`:storage-sqlite`](storage-sqlite/README.md) — SQLDelight реализация (прод-бэкенд).
|
|
|
|
### Логика
|
|
- [`:skills`](skills/README.md) — opencode-style `SKILL.md` / `*.yaml` парсер + рендер в system prompt.
|
|
- [`:agent-toolsets`](agent-toolsets/README.md) — реестр тулов + `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`).
|
|
|
|
```bash
|
|
# Создать релиз:
|
|
git tag v0.1.0 && git push --tags
|
|
# → Gitea → Releases → New Release → выбрать тег → Publish
|
|
# → CI публикует в Nexus (нужны секреты BINOM_REPO_USER/BINOM_REPO_PASSWORD)
|
|
```
|
|
|
|
## Сборка
|
|
|
|
```bash
|
|
# Всё
|
|
./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](LICENSE) (если есть).
|
|
|
|
<!-- trigger CI for CICD setup verification 1789578869 -->
|