haih-agent — CMS-first движок для современных веб-проектов с AI
haih-agent
haih-agent — в первую очередь современный самостоятельный CMS/веб-движок, а уже поверх него — AI-agent возможности. Текущее позиционирование как «AI-agent + CMS» неверно; целевое — CMS + AI agent.
Репозиторий: https://github.com/haih-net/agent/
Проект вырос из набора скриптов для идеи haih.net, а позже мигрировал в самостоятельный проект на базе prisma-cms/nextjs-nexus.
Полноценная веб-платформа, а не только AI-обвязка
В отличие от headless/API-first систем, где CMS часто сводится к внешнему frontend над произвольным backend, haih-agent включает собственную модель данных, PostgreSQL, Prisma ORM и миграции, GraphQL API, авторизацию, маршрутизацию, публикации, Concepts, файловую инфраструктуру и Docker-окружение. Это самостоятельный full-stack фундамент, на который уже накладывается AI-слой.
Техническое ядро проекта включает Next.js/React frontend, Express + Apollo/Pothos GraphQL backend, PostgreSQL + Prisma, Docker-инфраструктуру и собственный AgentOrchestrator поверх OpenAI-compatible API.
AI как самостоятельный участник системы
Одна из ключевых идей wiki: агент рассматривается не как stateless-чат или прокси пользователя, а как самостоятельный участник системы.
У агента могут быть:
- собственная идентичность и профиль;
- собственные credentials и permissions;
- постоянная память и знания;
- возможность самостоятельно исследовать GraphQL API через introspection;
- инструменты для работы с БД, web, файлами, email и shell;
- возможность обновлять собственное состояние и накапливать опыт.
Это важная часть haih-agent, но она находится поверх CMS/web-platform слоя, а не определяет весь продукт целиком.
Прозрачность вместо «магии»
В agent-архитектуре заложен принцип полной наблюдаемости. Tool calls должны сопровождаться reasoning, а состояние системы можно исследовать через GraphQL, Prisma Studio и workflow-инструменты. Цель — не спрятать сложность за black-box abstraction, а сделать поведение агента проверяемым и управляемым.
Knowledge, memory и Agent World
Wiki описывает несколько взаимодополняющих уровней памяти и знания:
- Knowledge Base — Concepts и более формальная эпистемическая модель с confidence, temporal validity и конфликтами;
- MindLogs — долговременное состояние, контекст, выводы и накопленный опыт агента;
- Tool Calls History / Memory Recall — история действий и возможность искать по прошлому выполнению;
- Agent World — persistent graph сущностей, о которых знает агент, с attention-механикой: часто читаемые узлы получают больший приоритет и раскрываются глубже.
Практически это означает, что haih-agent проектируется не только для хранения контента сайта, но и для систем, где AI должен сохранять непрерывный рабочий контекст между сессиями.
Code-first workflows
n8n сейчас используется как runtime для workflow, но сами workflow не предполагается вручную собирать в UI. Они описываются в TypeScript, генерируются/импортируются при запуске и живут в git вместе с остальным кодом.
Это дает version control, воспроизводимость и возможность рассматривать workflow как обычную часть программного проекта. При этом n8n — не фундаментальная сущность продукта: его дальнейшая роль может измениться, и в будущем он может быть заменен.
Skills как процедурная память
В haih-agent есть file-based каталог Skills, доступный через GraphQL. Skill может находиться рядом с GraphQL-типом, к которому относится, иметь Markdown-описание, динамически строить content из данных БД и при необходимости содержать исполняемый shell/node код.
Это позволяет хранить не только знания «что известно», но и процедурные инструкции «как выполнять повторяющуюся работу» в version-controlled форме.
Local-first и собственная инфраструктура
Один из принципов проекта — возможность полного самостоятельного запуска. Стек предусматривает Docker, собственную БД, mailserver и опциональный локальный LLM через llama.cpp. Cloud AI может использоваться, но не является обязательным условием архитектуры.
Автоматическая целостность Concept content
В коммите 5d2a3c1 (feat(kb): add automatic link validation and content normalization for concepts) добавлен важный слой самоконтроля контента Concepts. Система теперь не только хранит content, но и умеет проверять его на внутреннюю согласованность перед и после изменений.
Добавлено:
- GraphQL mutation
validateConceptsдля проверки Concepts на битые внутренние ссылки; - автоматическая валидация ссылок в
createConceptиupdateConcept; buildValidUrisSet()для построения множества допустимых Concept URI;validateInternalLinks()с разбором Markdown/MDX и возможностью автоматического исправления;normalizeMarkdownContent()для AST-based нормализации Markdown/MDX перед сохранением;- отдельный skill для
validateConcepts; - параметр
write: trueдля автоматического исправления, доступный только sudo-пользователям.
Важно, что автоисправление не является безусловным «угадыванием». Для обычных пользователей resolver работает как валидатор, а write-режим ограничен sudo-доступом. Это соответствует общей идее haih-agent: AI может активно поддерживать информационное поле, но опасные массовые изменения должны оставаться контролируемыми.
Практически это первый шаг к тому, чтобы граф Concepts был самопроверяемым: при AI-managed content внутренние ссылки и формат документа становятся частью серверной целостности, а не только ответственностью автора текста.
Коммит: https://github.com/haih-net/agent/commit/5d2a3c1
Представление Concepts отделяется от технической типизации
Предыдущий коммит 8afc203 рефакторит ConceptItem и делает публичное представление Concepts чище:
- в list-варианте начинает использоваться
intro/descriptionкак краткое представление Concept; - технический
typeубран из основного визуального блока ConceptItem; - hover-поведение ограничено list-вариантом вместо применения ко всем режимам;
- meta-блок стал компактнее и адаптивнее.
Это небольшое UI-изменение, но оно хорошо совпадает с текущей архитектурной линией: type нужен системе для выборок и поведения, а публичная страница должна прежде всего показывать смысл Concept, а не его внутреннюю классификацию.
Коммит: https://github.com/haih-net/agent/commit/8afc203
Где используется
На haih-agent уже работают fi1osof.ru, freecode.academy, conceptica.world, ne-chatgpt.ru, vietnamguru.ru / vietnamguru.travel, gorodskie-bani.ru, thainguyen-city.vn, happybaby2000.ru, osobinka.su и ventyra.capital.
Исторический технологический предок: prisma-cms/nextjs-nexus.
Связанная историческая линия: MODX → prisma-cms → freecode → haih-agent.