Кнопка ИИ-консультанта: архитектура единого интерфейса
Технический разбор модели интерфейса Fractera на базе интентов. Узнайте, как один клиентский виджет координирует работу демона оркестровки Hermes и памяти LightRAG, заменяя устаревшие навигационные порталы прямыми циклами выполнения.
Fractera ставит интерактивное взаимодействие с данными в качестве приоритетной функции системы. Традиционные корпоративные порталы неэффективны по своей природе. Они заставляют пользователей перемещаться по разветвленным многоуровневым меню и ждать рендеринга тяжелых компонентов страниц просто ради того, чтобы найти одну точку данных или выполнить рутинное обновление.
Сложность устаревших интерфейсов вынуждает разработчиков и конечных пользователей глубоко изучать структуру приложений только для того, чтобы перемещать данные по пошаговым конвейерам транзакций. Это узкое место в проектировании создает ненужное операционное сопротивление. Наша архитектура устраняет эту сложность, обрабатывая действия пользователя через прямую валидацию его намерений (интентов).
Протокол интерфейса, подробно описанный ниже, упрощает взаимодействие с системой на публичном, авторизованном и административном уровнях. Цель состоит в том, чтобы перестроить всю навигацию по воркспейсу в единый поток ввода:
- Прямое обнаружение макетов: Анонимные посетители заходят на маршрут и делают запросы на естественном языке, чтобы мгновенно найти нужные страницы и узлы индексации.
- Управление компонентами представления: Пользователи настраивают параметры тем, переключают режимы чтения или обновляют локализованные языки интерфейса полностью через выражения своих намерений.
- Запросы авторизованных аккаунтов: Вошедшие в систему пользователи напрямую запрашивают системные записи, выгружают историю счетов или создают и отправляют запросы транзакций на бэкэнд-таргеты.
- Административные мутации архитектуры: Администраторы проекта выполняют команды на естественном языке для объявления новых бэкэнд-сервисов, создавая страницы и инструменты воркспейса в реальном времени.
Эта спецификация сфокусирована на базовом слое интеграции — подробном описании того, как обмен данными остается защищенным, изолированным в песочнице и оптимизированным для ваших локальных баз данных и слоев кэша Redis.
“Единый виджет чата, открывающий доступ к изолированным серверам инструментов Model Context Protocol (MCP) под управлением движка оркестровки Hermes и постоянной базы знаний LightRAG. Система оценивает и связывает эти элементы в тот самый момент, когда инструкция попадает на API-эндпоинт.”
Выполнение инфраструктуры: границы сервера и клиента
Платформа поставляется с минимальным, но достаточным клиентским виджетом, который подключается к эндпоинтам вашей инфраструктуры сразу после деплоя. Такая схема позволяет манипулировать слоем представления прямо из коробки.
Изоляция системы опирается на строгое правило выполнения: интеллектуальный слой работает на сервере, а развертывание действий обрабатывается браузером. Сервер оценивает доступные схемы инструментов, сверяется с состояниями конфигурации и предлагает мутации макета, но он не может напрямую манипулировать открытой вкладкой браузера. Конкретные настройки представления (языковые состояния, темы оформления, пути навигации) выполняются внутри браузерного клиента, обеспечивая мгновенное обновление интерфейса без полной перезагрузки страниц.
Чтобы сохранить эту границу, серверная процедура, обновляющая глобальный конфигурационный файл, изменяет только базовую линию репозитория на диске. Уже открытые вкладки браузера остаются изолированными, поскольку у сервера нет прямого дескриптора для активных веб-представлений, а клиент управляет состоянием своего макета с помощью структур локального хранилища.
Иерархическое разделение уровней доступа
Безопасность системы обеспечивается вложением индивидуальных возможностей инструментов в три строгие группы доступа: `public ⊆ user ⊆ owner`. Уровни доступа определяются на стороне сервера на основе состояния сессии и никогда не проверяются на основе клиентских запросов.
- public: Гостевой доступ, не требующий активной сессии. Операции ограничены локальными конфигурациями слоя представления, поисковыми запросами и навигацией по страницам.
- user: Авторизованные сессии клиентов. Предоставляют доступ к изолированным личным записям, логам транзакций и изменениям профиля, связанным с их конкретной личностью.
- owner: Администратор системы. Предоставляет полные разрешения на изменение общих состояний конфигурации, обновление глобальных настроек по умолчанию и выполнение генерации кода репозитория.
Следующий скрипт иллюстрирует, как эндпоинт определяет права доступа, считывая сессионные куки на стороне сервера:
// lib/consultant/tier.ts (Архитектурный обзор)
async function resolveTier(req) {
const session = await getSession(req) // Чтение валидированной сессии аутентификации
if (!session) return 'public' // Базовая линия анонимного гостя
if (session.roles.includes('architect')) return 'owner'
return 'user' // Авторизованный стандартный аккаунт
}Точка входа: клиентский виджет
Интерфейс монтируется глобально как фиксированный, ненавязчивый контейнер в области просмотра. Виджет проверяет пути подключения перед рендерингом — если фоновый демон сервера находится в оффлайне, элемент интерфейса остается неактивным, чтобы предотвратить появление неработающих состояний UI.
// Виджет проверяет доступность фонового демона перед монтированием
const { available, tier, keyConfigured } = await fetch('/api/consultant').then(r => r.json())
if (!available) return null // Демон недоступен → скрыть элемент макета
// Рендеринг активного узла ввода, содержащего индикаторы текущего контекста проверкиВыполнение на клиенте: конверты отложенных действий
Мутации представления структурированы как инструменты, которые сервер предлагает, но браузерный клиент выполняет. Логика маршрутизации на стороне сервера избегает прямых изменений файлов, возвращая легкий пакет метаданных отложенного действия, который клиентский интерфейс сопоставляет с нативными обработчиками.
// Эндпоинт сервера передает структурированный блок метаданных вместо прямого кода:
{ "__client_action__": true, "tool": "public_view_set_locale", "args": { "locale": "fr" } }
// Клиентский движок направляет входящие инструкции строго через белый список:
function runAction(action) {
switch (action.tool) {
case 'public_view_navigate_page': return router.push(action.args.to)
case 'public_view_set_locale': return router.replace(`/${action.args.locale}/...`)
case 'public_view_set_theme': return setTheme(action.args.mode)
case 'public_view_set_width': return setWidth(action.args.width)
}
}Это разделение формирует строгую границу безопасности на стороне клиента. Браузер отклоняет незарегистрированные команды из потока данных, парся аргументы исключительно по четким правилам валидации. Взаимодействие пользователя с созданным элементом действия служит триггером подтверждения, устраняя навязчивые модальные окна верификации.
Изоляция публичных процессов в песочнице
Публичный доступ к данным работает внутри изолированного фонового процесса, полностью отделенного от административной среды владельца. Описания его инструментов представляют собой минимальное подмножество кода, которое полностью исключает административную логику, предотвращая вредоносный доступ за счет отсутствия базовых эндпоинтов выполнения. Вторичное ограничение среды ограничивает потолок процесса стандартным пользовательским уровнем.
# Запуск публичного демона под строгими лимитами разрешений и в изолированных корневых директориях
HERMES_HOME=/root/.hermes-public FRACTERA_AGENT_MAX_TIER=user hermes dashboard --port 9129
# Индексы конфигурации ограничивают видимость строго схемами публичных инструментовДемон привязывается исключительно к локальным портам loopback. Входящие запросы пользователей проходят через поверхностный серверный эндпоинт, который безопасно обрабатывает аутентификацию токенов API, гарантируя, что анонимный трафик не сможет исчерпать ключи разработчика или вычислительные бюджеты.
Выполнение шага на едином эндпоинте
Интерфейс сопоставляет все коммуникации с одним бэкэнд-эндпоинтом: `/api/consultant`. Этот узел маршрутизации оценивает входящие токены сессии, передает текстовые данные в процесс песочницы и возвращает чистый структурированный ответ, содержащий текст ответа и любые схемы отложенных действий.
// POST /api/consultant → Выполнение одного шага на основе данных
{
"text": "Локали системы ограничены EN, DE и FR. Выбранный язык не сопоставлен — выберите альтернативу:",
"actions": [
{ "tool": "public_view_set_locale", "args": { "locale": "fr" }, "label": "Français" },
{ "tool": "public_view_set_locale", "args": { "locale": "de" }, "label": "Deutsch" }
]
}Протоколы эскалации аутентификации
Когда намерение пользователя требует уровня доступа выше, чем текущие разрешения сессии, система блокирует выполнение без вывода общих ошибок. Оркестратор определяет необходимую цель безопасности и обновляет интерфейс целевыми инструкциями вместе со ссылкой на авторизацию:
- Приватные области данных: Запросы, нацеленные на конкретные базы данных пользователей, вызывают запрос на аутентификацию. После входа в систему обновленная пользовательская сессия открывает соответствующие инструменты личных данных.
- Ограничения ролевых возможностей: Запросы, выходящие за рамки стандартных учетных записей, информируют пользователя о том, что для выполнения операции требуются повышенные разрешения разработчика или административный доступ.
Оба события перенаправляют пользователей через стандартные маршруты аутентификации перед возвращением их в прежнее состояние приложения, позволяя повторно запустить интент без потери контекста выполнения.
Расширение возможностей с помощью естественного языка
Расширение системных возможностей является встроенной функцией архитектуры. Чтобы зарегистрировать новые наборы инструментов или функциональные навыки, разработчики используют административное представление управления по адресу [ваш-домен]/ai-draft-settings. Этот интерфейс обрабатывает описания в свободной форме для генерации новых MCP-серверов, назначая точные уровни доступа (public, user или owner) на начальном этапе проектирования. Специализированный фоновый агент оценивает запрос и встраивает инструмент в воркспейс.
Макет черновика фиксирует все необходимые операционные конфигурации: целевой уровень безопасности, является ли инструмент доступным только для чтения или изменяет состояние бэкэнда, а также предварительный просмотр его функциональных соглашений об именах, применяя схемы безопасности с момента создания.
Если требуется дополнительная кастомизация, инженеры переходят в интегрированные терминальные среды платформы или управляют расширениями с помощью локальных инструментов разработки. Инфраструктура поставляется с полным исходным кодом для поддержки пользовательских требований к масштабированию.
- Развертывание инфраструктуры: Разверните базовый пакет, чтобы мгновенно смонтировать рабочий макет, содержащий активный виджет ввода.
- Тестирование интентов: Базовые манипуляции с представлением и запросы индексации страниц выполняются прямо из коробки.
- Проектирование возможностей: Определите пользовательские наборы инструментов внутри панели конфигурации, назначьте им уровни доступа и позвольте агенту скомпилировать их.
- Абсолютное расширение: Используйте терминал или локальные текстовые редакторы для изменения основных файлов. Ваша команда сохраняет полное право собственности на код.
Функциональное руководство: выполнение локали
- Контейнер ввода оценивает состояния фонового подключения и рендерит окно чата при взаимодействии с пользователем.
- Бэкэнд-эндпоинт парсит текущие сессионные куки, определяет уровень доступа public и передает ввод демону песочницы.
- Демон считывает файлы конфигурации вашего проекта, проверяет доступные языковые определения и выводит список активных локалей.
- Система сопоставляет соответствующие полезные нагрузки действий с доступными параметрами языка, возвращая конверт отложенного действия.
- Интерфейс отображает результирующий блок сообщения вместе с прямыми вариантами навигации.
- Пользователь активирует целевой вариант языка; клиент проверяет параметры по своим правилам и выполняет чистое изменение пути на стороне клиента.
Вся последовательность задействует нативную маршрутизацию на стороне клиента. Бэкэнд-инфраструктура поддерживает границы данных и предлагает изменения, в то время как браузерный движок выполняет обновление макета.
Ключевые преимущества архитектуры
- Навигация на основе интентов: Пользователи заявляют четкие цели обработки данных, а фоновые модели находят точный путь к активу, устраняя необходимость запоминать плотные деревья меню.
- Консолидированный объем интерфейса: Один узел интерфейса вмещает расширяющуюся библиотеку подключений к инструментам MCP, сохраняя визуальные макеты чистыми по мере роста сложности бэкэнда.
- Постоянная память проекта: LightRAG интегрирует графовые модели долговременной памяти напрямую в воркспейс, гарантируя, что контекст ассистента становится острее от задачи к задаче.
- Суверенная изоляция исходного кода: Платформа выполняется полностью на вашем собственном виртуальном железе, исключая зависимости от непрозрачных сторонних облачных провайдеров.
- Изолированные базовые линии безопасности: Гостевые разрешения не могут скомпрометировать серверы административных инструментов, поскольку соответствующие маршруты физически отсутствуют в публичном процессе.
Возможности инструментов, сопоставленные с уровнями доступа
Виджет ввода отвечает строго через возможности, явно определенные в манифестах вашего проекта. Доступные операции полностью зависят от текущих состояний валидации сессии. Этот список динамически масштабируется по мере регистрации новых серверов инструментов MCP.
Публичная область (Анонимный гостевой доступ)
- Управление темой: Переключение макетов приложения между светлыми, темными или системными предпочтениями в активной области просмотра.
- Изменение локали: Обновление текущего текста интерфейса в соответствии с любым предварительно скомпилированным языковым файлом.
- Ограничения макета: Изменение ширины просмотра между узкими или широкими границами трекинга для улучшения читаемости.
- Навигация по активам: Выполнение мгновенных переходов на стороне клиента к конкретным внутренним путям, таким как списки продуктов или страницы цен.
- Индексация поверхностей: Запрос структуры локального каталога для определения публичных разделов приложения.
Пользовательская область (Авторизованный доступ к личной учетной записи)
После валидации сессии движок открывает защищенные инструменты, нацеленные на записи базы данных вашей личной учетной записи, изолируя запросы от смежных пользовательских областей. Попытка выполнить эти действия из анонимного состояния отображает карточку аутентификации. Доступные возможности включают: отслеживание заказов и историю транзакций, скачивание счетов, корректировку состояния подписки и просмотр логов аккаунта.
Область владельца (Административный доступ к инфраструктуре)
Авторизованные системные администраторы управляют глобальными векторами конфигурации, настраивают дефолтные параметры платформы, объявляют новые маршруты эндпоинтов и компилируют кастомные цепочки инструментов внутри панели конфигурации. Публичный процесс полностью исключает эти возможности, перенаправляя неаутентифицированные запросы на ваши защищенные представления логина.
- Регистрация задач архитектуры: Добавление новых записей базы данных на дашборд макета системы для отслеживания изменений маршрутов или объявления новых эндпоинтов. Обрабатывается инструментом `owner_arch_create_record`.
- Консолидация цепочек сборки: Перемещение ожидающих логов разработки в активные шаги сборки внутри вашего дашборда управления со сбросом временных записей задач. Обрабатывается инструментом `owner_arch_send_to_steps`.
- Генерация новых MCP-серверов: Проектирование кастомных возможностей агентов внутри панели конфигурации с установкой их целевых уровней доступа и компиляцией в продакшн. Обрабатывается инструментом `owner_draft_send_to_steps`.
- Маршрутизация запросов на сервисы: Сегментация любого желания «хочу сервис / инструмент / автоматизацию» на публичные страницы продукта либо приватный проектный уровень (автоматизации, управление страницами, личные сервисы) до запуска любого конвейера; при неявном запросе задаётся один уточняющий вопрос, и маршрут фиксируется только после вашего явного подтверждения. Обрабатывается инструментом `owner_projects_route_request`.
- Опрос потребностей автоматизации: Сбор намерений по задачам расписания (cron) и требований к внешним интеграциям приватного проекта в виде простого чек-листа с нормализацией каждой интеграции в необходимые проекту env-ключи API. Обрабатывается инструментом `owner_projects_survey_automation_needs`.
- Декомпозиция проекта до сборки: Превращение подтверждённого приватного проекта в валидированный граф маленьких узлов с материализацией ВСЕЙ очереди разработки на диск до единой строки кода — обзорный README проекта (зачем / как работает / эффективность / переиспользование / результат), исчерпывающий шаг-спецификация на каждый узел и отдельный шаг передачи кодеру; неполная спецификация отклоняется, полный наряд-заказ сначала подтверждаете вы, а граф больше десяти узлов получает рекомендацию MVP. Обрабатывается инструментом `owner_projects_orchestrate_decomposition`.
- Перенос внешней документации: Доставка документации, от которой зависит автоматизация (справочник API, руководство SDK), из интернета на диск рабочего пространства и в Память компании — только после вашего согласия — чтобы кодинг-агенты, обычно не имеющие доступа в интернет, находили её локально; тело документа не проходит через модель, возвращаются только путь, размер и оглавление. Обрабатывается инструментом `owner_docs_transfer_external_documentation`.
Границы хранения знаний
Этот справочный документ служит общим обзором функций интерфейса. Он нацелен на базовые концепции системы и намеренные разделения безопасности, сохраняя технический текст легковесным.
Для детальной инспекции архитектуры сделайте запрос к директории векторного графа LightRAG вашего воркспейса. Доступ к этому слою долговременной памяти осуществляется путем вызова демона Hermes внутри вашего защищенного административного дашборда, что позволяет извлекать точные схемы системы и трассировки макетов репозитория по требованию.
Частые вопросы
- Какие конкретно операции неаутентифицированный посетитель может запустить через виджет чата?
- Анонимные гостевые сессии ограничены настройками слоя представления. Они могут изменять макеты интерфейса, переключать локализованные текстовые треки, менять ширину страниц и перемещаться по публичным маршрутам приложения. Эти операции выполняются чисто внутри клиентского браузера и генерируют ноль изменений в вашей глобальной базе данных.
- Как виджет интерфейса проверяет, какие бэкэнд-инструменты безопасно отображать?
- Виджет запрашивает ваш реестр возможностей, управляемый внутри административной панели контента. Каждый зарегистрированный сервер инструментов сопоставляется с явным уровнем доступа (public, user или owner). Если интент требует повышенных разрешений, оркестратор обновляет вид чата ссылкой на аутентификацию вместо выполнения фоновой логики.
- Может ли публичный запрос пользователя изменить общие базовые линии конфигурации или повлиять на другие живые сессии?
- Нет. Мутации представления остаются изолированными в контексте локального браузера пользователя. Глобальные административные задачи — такие как обновление дефолтных системных тем или компиляция новых путей репозитория — полностью исключены из публичного демона песочницы, гарантируя, что публичные взаимодействия не смогут пересечь защищенные границы.