Этот файл предназначен не для конечного пользователя и не для маркетингового README. Он нужен другим AI-агентам и автоматизированным разработчикам, которые будут продолжать работу над проектом.
Nagient задуман как легковесный агент по типу OpenClaw-подхода, но без типичной ошибки “сначала соберём мозг, а потом как-нибудь задеплоим”. Здесь сначала поднимается delivery/control-plane слой, чтобы позже можно было спокойно собирать runtime, память, инструменты и пользовательские каналы без переделки системы доставки.
Пользовательский замысел проекта:
Иными словами: проект это не просто Python service, а будущая агентная платформа с унифицированной схемой распространения и обновления.
На текущем этапе реализован infrastructure scaffold:
nagient с CLIЭто важно: кодовая база пока не реализует полноценного “умного” агента. Она реализует платформенный скелет, на который агент будет навешиваться дальше.
Есть несколько контрактов, которые для проекта критичнее, чем любая частная реализация.
Установщики и CLI завязаны на две сущности:
channels/<channel>.jsonmanifests/<version>.jsonchannels/<channel>.json должен указывать на актуальный release manifest канала.
manifests/<version>.json должен содержать:
Если AI-агент меняет schema или поля этих документов, он обязан одновременно:
src/nagient/infrastructure/manifests.pysrc/nagient/cli.py и/или scripts/release/build_release_manifest.pyМодель доставки основана на теге vX.Y.Z. Это не декоративное соглашение, а ядро release flow.
Тег должен соответствовать:
Если AI-агент меняет release flow, он не должен разрушать эту связность.
Обновление не должно определяться локальной магией инсталлятора. Источник правды должен оставаться централизованным. Это значит:
Не уводить проект в сторону “у каждого инсталлятора своя логика версий”.
На сейчас доступны команды:
nagient versionnagient doctornagient serve --oncenagient update checknagient manifest rendernagient migrations planЭто не финальный UX. Это служебная поверхность для scaffolding, тестирования delivery-слоя и дальнейшего роста.
Набор тестов страхует именно инфраструктуру:
Это означает, что при добавлении новых систем нужно продолжать мыслить контрактами. Если добавляется:
Ниже список крупных отсутствующих подсистем. Это реальный backlog, а не “может быть когда-нибудь”.
Пока нет:
Пока нет:
Сейчас planner миграций существует, но реальные миграции состояния почти не реализованы. Пока это скорее proof of contract.
Сейчас update center уже есть, но каналы доставки уведомлений пользователю ещё не построены.
Если AI-агенту нужно самостоятельно выбирать следующий полезный шаг, приоритет должен быть таким:
Почему именно так: delivery infrastructure уже существует, а основной риск сейчас не в сборке, а в отсутствии реального агентного цикла.
Другому AI-агенту лучше придерживаться таких правил:
metadata/update-center ради локального удобстваЕсли меняется один из этих узлов, нужно проверить весь соседний контур:
Update center должен в будущем быть доступен по стабильному публичному URL. Идеальная схема:
updates.your-domain.tldAI-агент не должен строить архитектуру так, будто обновления живут только внутри GitHub Releases. Releases полезны, но central update URL важнее.
На момент подготовки scaffold локально были успешно пройдены:
unittestruffmypypython -m build --no-isolationЛокально не были доступны docker и pwsh, поэтому соответствующие проверки в реальной среде ожидаются от CI.
Nagient не должен превратиться в “ещё один Python-скрипт с чат-командами”. Его сильная сторона должна быть в том, что:
Если AI-агент сомневается между “быстро зашить фичу локально” и “сохранить централизованный контракт доставки”, приоритет почти всегда за вторым вариантом.