nagient

AI Project Context

Этот файл предназначен не для конечного пользователя и не для маркетингового README. Он нужен другим AI-агентам и автоматизированным разработчикам, которые будут продолжать работу над проектом.

1. Намерение проекта

Nagient задуман как легковесный агент по типу OpenClaw-подхода, но без типичной ошибки “сначала соберём мозг, а потом как-нибудь задеплоим”. Здесь сначала поднимается delivery/control-plane слой, чтобы позже можно было спокойно собирать runtime, память, инструменты и пользовательские каналы без переделки системы доставки.

Пользовательский замысел проекта:

Иными словами: проект это не просто Python service, а будущая агентная платформа с унифицированной схемой распространения и обновления.

2. Что уже реализовано

На текущем этапе реализован infrastructure scaffold:

Это важно: кодовая база пока не реализует полноценного “умного” агента. Она реализует платформенный скелет, на который агент будет навешиваться дальше.

3. Структура репозитория

Корневые файлы

Код приложения

Delivery layer

Release metadata

Automation

Tests

4. Инварианты, которые нельзя ломать без причины

Есть несколько контрактов, которые для проекта критичнее, чем любая частная реализация.

4.1 Update center contract

Установщики и CLI завязаны на две сущности:

  1. channels/<channel>.json
  2. manifests/<version>.json

channels/<channel>.json должен указывать на актуальный release manifest канала.

manifests/<version>.json должен содержать:

Если AI-агент меняет schema или поля этих документов, он обязан одновременно:

4.2 Tag-driven delivery

Модель доставки основана на теге vX.Y.Z. Это не декоративное соглашение, а ядро release flow.

Тег должен соответствовать:

Если AI-агент меняет release flow, он не должен разрушать эту связность.

4.3 Centralized update logic

Обновление не должно определяться локальной магией инсталлятора. Источник правды должен оставаться централизованным. Это значит:

Не уводить проект в сторону “у каждого инсталлятора своя логика версий”.

5. Текущее CLI API

На сейчас доступны команды:

Это не финальный UX. Это служебная поверхность для scaffolding, тестирования delivery-слоя и дальнейшего роста.

6. Что сейчас тестируется

Набор тестов страхует именно инфраструктуру:

Это означает, что при добавлении новых систем нужно продолжать мыслить контрактами. Если добавляется:

7. Что ещё не реализовано

Ниже список крупных отсутствующих подсистем. Это реальный backlog, а не “может быть когда-нибудь”.

7.1 Agent core

Пока нет:

7.2 External surfaces

Пока нет:

7.3 Real migrations

Сейчас planner миграций существует, но реальные миграции состояния почти не реализованы. Пока это скорее proof of contract.

7.4 Real update notifications

Сейчас update center уже есть, но каналы доставки уведомлений пользователю ещё не построены.

8. Предпочтительный порядок дальнейшей разработки

Если AI-агенту нужно самостоятельно выбирать следующий полезный шаг, приоритет должен быть таким:

  1. ввести runtime state model
  2. ввести реальные persistent stores
  3. добавить provider abstraction
  4. реализовать task loop и agent execution cycle
  5. добавить tool registry и sandbox-aware execution layer
  6. затем уже внешние каналы и UI

Почему именно так: delivery infrastructure уже существует, а основной риск сейчас не в сборке, а в отсутствии реального агентного цикла.

9. Как безопасно вносить изменения

Другому AI-агенту лучше придерживаться таких правил:

Если меняется один из этих узлов, нужно проверить весь соседний контур:

10. Что важно помнить про домен и Pages

Update center должен в будущем быть доступен по стабильному публичному URL. Идеальная схема:

AI-агент не должен строить архитектуру так, будто обновления живут только внутри GitHub Releases. Releases полезны, но central update URL важнее.

11. Контекст по качеству и верификации

На момент подготовки scaffold локально были успешно пройдены:

Локально не были доступны docker и pwsh, поэтому соответствующие проверки в реальной среде ожидаются от CI.

12. Самый важный смысл проекта

Nagient не должен превратиться в “ещё один Python-скрипт с чат-командами”. Его сильная сторона должна быть в том, что:

Если AI-агент сомневается между “быстро зашить фичу локально” и “сохранить централизованный контракт доставки”, приоритет почти всегда за вторым вариантом.